Sfoglia il codice sorgente

HW YB2NKR8B2LL done

Varvara Huza 3 anni fa
parent
commit
9340e8856b
1 ha cambiato i file con 240 aggiunte e 0 eliminazioni
  1. 240 0
      Homework_16/main.js

+ 240 - 0
Homework_16/main.js

@@ -0,0 +1,240 @@
+const getGQL = url => {
+    return function(query, variables) {
+        return fetch(url, 
+        {
+            method: "POST",
+            headers: {"Content-Type": "application/json"},
+            body: JSON.stringify({query, variables})
+        }).then(resp => resp.json()).then(data => {
+            if ("errors" in data) {
+                throw new Error('ашипка, угадывай што не так')
+            }
+            else {
+                return data.data[Object.keys(variables)[0]]
+            }
+        })
+    }
+}
+
+let gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
+
+//запросики
+//categories
+async function getCategoriesCount() {
+    let result = await gql(`
+    query ($query:String){
+        CategoryCount(query: $query)
+      }`, {CategoryCount: '', query: "[{}]"})
+    return result
+}
+
+async function findAllCategories() {
+    let result = await gql(`
+    query ($query:String){
+        CategoryFind(query: $query) {
+          _id 
+          name 
+          image {
+            _id text url 
+          }
+          goods {
+            _id name description price images {
+              _id text url
+            }
+          }
+        }
+      }`, {CategoryFind: '', query: "[{}]"})
+    return result
+}
+
+async function findCategoryById(categoryId) {
+    let id = `[{"_id":"${categoryId}"}]`
+    let result = await gql(`
+    query ($id:String){
+        CategoryFindOne(query: $id){
+          name 
+          image {
+            _id text url 
+          }
+          goods {
+            _id name description price images {
+              _id text url
+            }
+          }
+        }
+    }`, { CategoryFindOne: '', id })
+    return result
+}
+
+async function findSubCategories(categoryId) {
+    let id = `[{"_id":"${categoryId}"}]`
+    let result = await gql(`
+    query($id:String){
+        CategoryFindOne(query: $id){
+          subCategories {
+            _id 
+            name 
+            image {
+              _id text url originalFileName
+            }
+            goods {
+                _id name description price images {
+                  _id text url
+                }
+              }
+          }
+        }
+    }`, { CategoryFindOne: '', id })
+    return result
+}
+
+//goods
+async function getGoodsCount() {
+    let result = await gql(`
+    query ($query:String){
+        GoodCount(query: $query)
+      }`, {GoodCount: '', query: "[{}]"})
+    return result
+}
+
+async function findAllGoods() {
+    let result = await gql(`
+    query ($query:String){
+        GoodFind(query: $query) {
+          _id name description price images {
+            _id text url
+          }
+          categories {
+            _id name
+          }
+        }
+      }`, {GoodFind: '', query: "[{}]"})
+    return result
+}
+
+async function findGoodById(goodId) {
+    let id = `[{"_id":"${goodId}"}]`
+    let result = await gql(`
+    query good($id:String){
+        GoodFindOne(query: $id) {
+          name description price images {
+            _id text url
+          }
+          categories {
+            _id name
+          }
+        }
+    }`, { GoodFindOne: '', id })
+    return result
+}
+
+//users 
+async function getUsersCount() {
+    let result = await gql(`
+    query ($query:String){
+        UserCount(query: $query)
+      }`, {UserCount: '', query: "[{}]"})
+    return result
+}
+
+async function findAllUsers() {
+    let result = await gql(`
+    query ($query:String){
+        UserFind(query: $query){
+          _id createdAt login nick acl avatar {
+            _id text url
+          }
+        }
+      }`, {UserFind: '', query: "[{}]"})
+    return result
+}
+
+async function findUserById(userId) {
+    let id = `[{"_id":"${userId}"}]`
+    let result = await gql(`
+    query ($id:String){
+        UserFindOne(query: $id){
+          _id createdAt login nick acl avatar {
+            _id text url
+          }
+        }
+    }`, { UserFindOne: '', id })
+    return result
+}
+
+//images
+async function getImagesCount() {
+    let result = await gql(`
+    query ($query:String){
+        ImageCount(query: $query)
+      }`, {ImageCount: '', query: "[{}]"})
+    return result
+}
+
+async function findAllImages() {
+    let result = await gql(`
+    query ($query:String){
+        ImageFind(query: $query) {
+          _id createdAt text url originalFileName 
+        }
+      }`, {ImageFind: '', query: "[{}]"})
+    return result
+}
+
+//orders
+async function findAllOrders() {
+    let result = await gql(`
+    query ($query:String) {
+        OrderFind(query: $query){
+          _id 
+        createdAt 
+        total 
+        orderGoods {
+          _id count price good {
+            _id name
+          }
+        }
+        owner {
+            _id login acl
+          }
+        }
+      }`, {OrderFind: '', query: "[{}]"})
+    return result
+}
+
+async function findOrderById(orderId) {
+    let id = `[{"_id":"${orderId}"}]`
+    let result = await gql(`
+    query ($id:String){
+        OrderFindOne(query: $id){
+            _id 
+          createdAt 
+          total 
+          orderGoods {
+            _id count price good {
+              _id name
+            }
+          }
+          owner {
+              _id login acl
+            }
+          }
+    }`, { OrderFindOne: '', id })
+    return result
+}
+
+//reg
+async function registerUser(login, password) {
+  let result = await gql(`
+  mutation ($login:String, $password:String) {
+    UserUpsert(user:{
+      login:$login, password:$password
+    }) {
+      _id
+      login
+    }
+  }`, {UserUpsert: '', login, password})
+  return result
+}
+
+//всё, хватит..........