script.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. const getGQL = url =>
  2. (query, variables) => fetch(url, {
  3. method: 'POST',
  4. headers: {
  5. "Content-Type": "application/json",
  6. ...(localStorage.authToken ? {"Authorization": "Bearer " + localStorage.authToken} : {})
  7. },
  8. body: JSON.stringify({query, variables})
  9. }).then(res => res.json()).then(data => {
  10. if (data){
  11. return Object.values(data.data)
  12. } else throw new Error('No data found')
  13. }).catch(e => console.log(e));
  14. const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql');
  15. const login = `query login($login:String, $password:String){login(login:$login, password: $password)}`;
  16. const userLogin = {
  17. "login": "Serg155",
  18. "password": "00000000",
  19. "nick": "Serg155"
  20. };
  21. (async () => await gql(login, userLogin)
  22. //.then(tok => (tok[0].split('.')[2]))
  23. .then(token => localStorage.authToken = token))()
  24. // (async () => await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`,
  25. // {login: 'serg155000', password: '123777'}).then(res => console.log(res)))();
  26. // написать тестовых запросов:
  27. // логин, регистрация, категории все, категория по id, товар по id
  28. const caterory = `query categ{CategoryFind(query: "[{}]"){name image {url}}}`;
  29. (async () =>
  30. await gql(caterory).then(res => res[0].map(item => console.log(item))))();
  31. // добавить в getGQL все что надо, и еще проверку на localStorage.authToken. если токен есть, добавлять header Authorization.
  32. // let newUser = {
  33. // "login": "Serg",
  34. // "password": "0000007777700",
  35. // "nick": "Serg102"
  36. // }
  37. // const register = `mutation register($login:String, $password: String){
  38. // UserUpsert(user:{login:$login, password:$password, nick:$login}){
  39. // _id login
  40. // }`;
  41. // (async () => await gql(register, newUser).then(item => console.log(item)))();
  42. const createOrder = `mutation newOrder($o:OrderInput){OrderUpsert(order:$o){ _id total }}`;
  43. const goods = `{
  44. "login": "Serg155",
  45. "password": "00000000",
  46. "o": {
  47. "orderGoods": [
  48. {
  49. "count": 3,
  50. "good": {
  51. "_id": "5e1f396856d8f720513e6cae"
  52. }
  53. }
  54. ]
  55. }
  56. }`;
  57. (async () => await gql(createOrder,goods).then(res => console.log(res)))();
  58. // function gqlLogin(login, password){
  59. // return gql(`запрос на логин с $переменными`, {login, password})
  60. // console.log((await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`, {login: 'tst', password: '123'})))
  61. console.log(localStorage)
  62. // const originalFetch = fetch;
  63. // fetch = (url, params={headers:{}}) => {
  64. // params.headers.Authorization = "Bearer " + localStorage.authToken
  65. // return originalFetch(url, params)
  66. // };
  67. // console.log({
  68. // method: 'POST',
  69. // headers: {
  70. // "Content-Type": "application/json",
  71. // ...(localStorage.authToken ? {"Authorization": "Bearer " + localStorage.authToken} : {})
  72. // }})