gql-queries-backurl.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. export const getGQL = url =>
  2. async (query, variables = {}) => {
  3. let obj = await fetch(url, {
  4. method: 'POST',
  5. headers: {
  6. "Content-Type": "application/json",
  7. Authorization: localStorage.authToken ? 'Bearer ' + localStorage.authToken : {},
  8. },
  9. body: JSON.stringify({ query, variables })
  10. })
  11. let a = await obj.json()
  12. if (!a.data && a.errors)
  13. throw new Error(JSON.stringify(a.errors))
  14. return a.data[Object.keys(a.data)[0]]
  15. }
  16. export const backURL = 'http://player.asmer.fs.a-level.com.ua'
  17. export const gql = getGQL(backURL + '/graphql');
  18. export const queries = {
  19. "/user/:_id": match => ({name: 'playlistFindByUser',
  20. query: `query playlistFindByUser ($q: String) {
  21. PlaylistFind(query: $q) {
  22. _id name owner {login}
  23. }
  24. }`, variables: { q: JSON.stringify([{ ___owner: match.params._id }]) } }),
  25. "/myPlaylist/:_id": match => ({name: 'playlistById',
  26. query: `query playlistById($q: String){
  27. PlaylistFindOne(query: $q){
  28. _id name owner {login} tracks {_id url originalFileName}
  29. }
  30. }`, variables:{ q: JSON.stringify([{ _id: match.params._id }]) } }),
  31. "/userPlaylist/:_id": match => ({name: 'playlistById',
  32. query: `query playlistById($q: String){
  33. PlaylistFindOne(query: $q){
  34. _id name owner {login} tracks {_id url originalFileName}
  35. }
  36. }`, variables:{ q: JSON.stringify([{ _id: match.params._id }]) } }),
  37. }