소스 검색

HW<17> done

Евгения Акиншина 3 년 전
부모
커밋
9367675866
3개의 변경된 파일126개의 추가작업 그리고 107개의 파일을 삭제
  1. 0 106
      js16/js/main.js
  2. 1 1
      js16/index.html
  3. 125 0
      js17/js/main.js

+ 0 - 106
js16/js/main.js

@@ -1,106 +0,0 @@
-const getGQL = url => 
-    (query, variables) =>
-        fetch(url , {
-            method: 'POST',
-            headers: {
-                "content-type": "application/json"
-            },
-            body: JSON.stringify({query, variables})
-        }).then(res => res.json())
-
-let gql = getGQL("http://shop-roles.asmer.fs.a-level.com.ua/graphql")
-
-async function categoryById(id) {
-    let query = `query CategoryFind($id:String) {
-        CategoryFind(query: $id) {
-            name goods {
-            name
-            price
-            description
-            images {url}
-            }
-        }
-    }`
-  
-    let variables =  {"id": JSON.stringify([{ "_id": id }])}    //or {"id": "[{\"_id\":\"id\"}]"}
-    
-    let res = await gql(query, variables)
-    console.log(res)
-    return res 
-}
-
-categoryById("5dc458985df9d670df48cc47")
-
-async function goodById(id) {
-    let query = `query GoodFind($id:String) {
-        GoodFind(query: $id) {
-            categories {
-                _id
-                name
-            }
-            name
-            price
-            description
-            createdAt
-            images {url}
-        }
-    }`
-
-    let variables =  {"id": JSON.stringify([{ "_id": id }])}    //or {"id": "[{\"_id\":\"id\"}]"}
-      
-
-    let res = await gql(query, variables)
-    console.log(res)
-    return res 
-}
-
-goodById("5e203b5456d8f720513e6cba")
-
-async function goodFind() {
-    let query = `query GoodFind($q:String) {
-        GoodFind(query: $q) {
-            categories {
-                _id
-                name
-            }
-            name
-            price
-            description
-            createdAt
-            images {url}
-            
-        }
-    }`
-  
-    let variables =   {"q": JSON.stringify([{}])}    //or {"q": "[{}]"}
-    
-    let res = await gql(query, variables)
-    console.log(res)
-    return res 
-}
-
-goodFind()
-
-async function categoryFind() {
-    let query = `query CategoryFind($q:String) {
-        CategoryFind(query: $q) {
-            _id
-            name
-            createdAt
-            goods {
-                _id 
-                name 
-                price
-                createdAt
-            }
-        }
-    }`
-  
-    let variables =   {"q": JSON.stringify([{}])}    //or {"q": "[{}]"}
-    
-    let res = await gql(query, variables)
-    console.log(res)
-    return res 
-}
-
-categoryFind()

+ 1 - 1
js16/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=\, initial-scale=1.0">
     <link rel="stylesheet" href="css/style.css">
-    <title>HW16</title>
+    <title>HW17</title>
 </head>
 <body>
     <script src='js/main.js'></script>

+ 125 - 0
js17/js/main.js

@@ -0,0 +1,125 @@
+const getGQL = url => 
+    (query, variables) =>
+        fetch(url , {
+            method: 'POST',
+            headers: {
+                "content-type": "application/json",
+                ...(localStorage.authToken ? { Authorization: "Bearer " + localStorage.authToken } : {})
+            },
+            body: JSON.stringify({query, variables})
+        }).then(res => res.json())
+
+let gql = getGQL("http://shop-roles.asmer.fs.a-level.com.ua/graphql")
+
+//регистрация
+let reg = async(login, password) => {
+    let query = `mutation reg($login:String, $password:String) {
+        UserUpsert(user:{
+            login: $login,
+            password: $password
+
+        }){
+           _id
+        }
+    }`
+
+    let variables = {"login":login, "password":password}
+
+    let res = await gql(query, variables)
+    console.log(res)
+    return res
+}
+
+//логин
+let login = async(login, password) => {
+    let query = `query login($login:String, $password:String) {
+        login(login: $login, password: $password)
+    }`
+
+    let variables = {"login":login, "password":password}
+
+    let token = await gql(query, variables)
+    console.log(token)
+    localStorage.authToken = token.data.login
+}
+
+//отправка заказа
+let newOrder = async(obj) => {
+    let option = Object.entries(obj)
+    let orderGoods = []
+  
+    for (let key of option) {
+        let i = {
+            "count": key[1],
+            "good": {"_id": key[0]}
+        }
+        orderGoods.push(i)
+    }
+  
+    let query = `mutation newOrder($order:OrderInput) {
+       OrderUpsert(order:$order) {
+         _id 
+       }
+     }`
+  
+    let variables = {
+        "order": {"orderGoods": orderGoods}
+    }
+  
+    let res = await gql(query, variables)
+    console.log(res)
+    return res
+}
+  
+//получениe всех заказов
+let getOrders = async() => {
+    let query = `query orders {
+      OrderFind(query:"[{}]") {
+        _id total 
+        orderGoods {
+          good {
+            _id
+            name
+          }
+          count 
+          price
+          total
+        }
+      }
+    }`
+  
+    let res = await gql(query)
+    console.log(res)
+    return res
+}
+  
+//получениe одного заказа по его _id
+  let orderById = async(id) => {
+      let query = `query orderId($id:String) {
+        OrderFind(query:$id) {
+        createdAt total
+        orderGoods {
+          good {
+            _id
+            name
+          }
+          count total price
+        } 
+      }
+    }`
+  
+    let variables = {
+        "id": JSON.stringify([{ "_id": id }])
+    }
+  
+    let res = await gql(query, variables)
+    console.log(res)
+    return res
+}
+
+
+
+
+
+
+