Browse Source

graphQl tasks

serg155alternate 2 years ago
parent
commit
5f26e40154
1 changed files with 69 additions and 0 deletions
  1. 69 0
      HW16 REST and GraphQL/script.js

+ 69 - 0
HW16 REST and GraphQL/script.js

@@ -0,0 +1,69 @@
+const getGQL = url =>
+    (query, variables) => fetch(url, {
+        //метод
+        method: 'POST',
+        headers: {
+            //заголовок content-type
+            "Content-Type": "application/json"
+        },
+        body: JSON.stringify({query, variables})
+        //body с ключами query и variables
+        
+    }).then(res => res.json()).then(data => {
+        console.log(data)
+        if (data){
+             return Object.values(data.data) 
+        } else throw new Error('No data found')
+       
+    }).catch(e => console.log(e));
+
+
+const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql');
+
+
+(async () => 
+ await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`,
+ {login: 'tst', password: '123'}).then(res => console.log(res)))();
+
+ 
+// написать тестовых запросов:
+// логин, регистрация, категории все, категория по id, товар по id
+
+const caterory = `query categ{CategoryFind(query: "[{}]"){name image {url}}}`;
+
+(async () => 
+ await gql(caterory).then(res => res[0].map(item => console.log(item))))();
+
+
+
+const login  = `query login($login:String, $password:String){login(login:$login, password: $password)}`;
+
+const userLogin =  {
+                "login": "Serg155",
+                "password": "00000000",
+                "nick": "Serg155"
+                }
+(async () => await gql(login, userLogin).then(item => console.log(item)))();
+
+
+ let newUser =  {
+            "login": "Serg",
+            "password": "0000007777700",
+            "nick": "Serg102"
+        }
+
+
+const register = `mutation register($login:String, $password: String){
+    UserUpsert(user:{login:$login, password:$password, nick:$login}){
+       _id login
+   }`;
+
+
+(async () => await gql(register, newUser).then(item => console.log(item)))();
+
+
+// function gqlLogin(login, password){
+//     return gql(`запрос на логин с $переменными`, {login, password})
+// 
+
+//console.log((await gql(`query NameForMe1($login:String, $password:String){login(login:$login, password:$password)}`, {login: 'tst', password: '123'})))