Js-HW15.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. let gql = (url, query, variables={}) =>
  2. fetch(url, {
  3. method: 'POST',
  4. headers:{
  5. Accept: 'application/json',
  6. "Content-Type": 'application/json'
  7. },
  8. body: JSON.stringify({query, variables})
  9. }).then(res => res.json())
  10. // используя функцию gql, понаделать функций с параметрами для разных запросов: категории, категория по id с товарами, товар по id с картинками и описанием, логин, регистрация.
  11. // например:
  12. let idd = 123456
  13. // `\\"_id\\":\\"${id}\\"`
  14. console.log(JSON.parse("[{\"_id\":\"123456\"}]"))
  15. const url = 'http://shop-roles.node.ed.asmer.org.ua/graphql'
  16. const gqlCategoriesList = () => {
  17. return gql(url, `query cats{
  18. CategoryFind(query: "[{}]"){
  19. _id, name,
  20. }
  21. }`, {}
  22. )
  23. }
  24. const gqlRegister = (login, password) => {
  25. return gql(url, `mutation register($login: String, $password: String){
  26. UserUpsert(user: {login: $login, password: $password}){
  27. _id, login, createdAt
  28. }
  29. }`, {login, password})
  30. }
  31. const gqlLogin = (login, password) =>
  32. gql(url,
  33. `query login($login:String, $password: String){
  34. login(login:$login, password: $password)
  35. }`, {login, password})
  36. const gqlCategories = () => {
  37. return gql(url,
  38. ` query categories{
  39. CategoryFind(query:"[{}]"){
  40. _id name goods {
  41. _id
  42. name
  43. price
  44. description
  45. }
  46. }
  47. }`
  48. );
  49. }
  50. const productSearchById = (id) => {
  51. let jsn = JSON.stringify({_id: id})
  52. return gql(
  53. url,
  54. `query searchById{
  55. GoodFind(query: ${JSON.stringify(`[${jsn}]`)}){
  56. name description images {
  57. _id
  58. createdAt
  59. text
  60. url
  61. originalFileName
  62. }
  63. }
  64. }`,
  65. );
  66. };
  67. (async function callAll() {
  68. console.log(await gqlCategoriesList());
  69. console.log(await gqlRegister("Vlada Simonova", "123456"));
  70. console.log(await gqlLogin("Vlada Simonova", "123456"));
  71. console.log(await gqlCategories());
  72. console.log(await productSearchById("62c9472cb74e1f5f2ec1a0d3"));
  73. })();