main.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const originalFetch = fetch;
  2. fetch = (url, params = { headers: {} }) => {
  3. params.headers.Authorization = "Bearer " + localStorage.authToken
  4. return originalFetch(url, params)
  5. };
  6. const graphiQL = "http://shop-roles.node.ed.asmer.org.ua/graphql";
  7. let gql = (url, query, variables = {}) =>
  8. fetch(url, {
  9. method: "POST",
  10. headers: {
  11. Accept: "application/json",
  12. "Content-Type": "application/json",
  13. },
  14. body: JSON.stringify({ query, variables }),
  15. }).then((res) => res.json());
  16. const categoryFind = () =>
  17. gql(
  18. graphiQL,
  19. `
  20. query catz{
  21. CategoryFind(query:"[{}]") {
  22. name
  23. }
  24. }
  25. `
  26. );
  27. const registerUser = (login, password) =>
  28. gql(
  29. graphiQL,
  30. `
  31. mutation register($login:String, $password:String){
  32. UserUpsert(user: {login:$login, password:$password}){
  33. _id login createdAt
  34. }
  35. }
  36. `,
  37. { login, password }
  38. );
  39. const login = (login, password) =>
  40. gql(
  41. graphiQL,
  42. `
  43. query login($login:String, $password:String){
  44. login(login:$login, password:$password)
  45. }
  46. `,
  47. { login, password }
  48. );
  49. const categories = () =>
  50. gql(
  51. graphiQL,
  52. `
  53. query categoryFind{
  54. CategoryFind(query:"[{}]"){
  55. _id name goods {
  56. _id
  57. createdAt
  58. name
  59. description
  60. price
  61. }
  62. }
  63. }`
  64. );
  65. (async () => {
  66. console.log("all category:", await categoryFind());
  67. console.log(
  68. "register user:",
  69. await registerUser("antonPyvovarov", "qwerty12345")
  70. );
  71. console.log(
  72. "user login:",
  73. await login("antonPyvovarov", "qwerty12345")
  74. );
  75. console.log(
  76. "category by id with products:",
  77. await categories()
  78. );
  79. })();