Browse Source

HW15 done

AntonPyvovarov 1 year ago
parent
commit
d77e844793
2 changed files with 103 additions and 0 deletions
  1. 12 0
      HW15/index.html
  2. 91 0
      HW15/main.js

+ 12 - 0
HW15/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>HW15</title>
+</head>
+<body>
+    <script src="main.js"></script>
+</body>
+</html>

+ 91 - 0
HW15/main.js

@@ -0,0 +1,91 @@
+
+const originalFetch = fetch;
+fetch = (url, params = { headers: {} }) => {
+    params.headers.Authorization = "Bearer " + localStorage.authToken
+    return originalFetch(url, params)
+};
+
+const graphiQL = "http://shop-roles.node.ed.asmer.org.ua/graphql";
+
+let gql = (url, query, variables = {}) =>
+    fetch(url, {
+        method: "POST",
+        headers: {
+            Accept: "application/json",
+            "Content-Type": "application/json",
+        },
+        body: JSON.stringify({ query, variables }),
+    }).then((res) => res.json());
+
+const categoryFind = () =>
+    gql(
+        graphiQL,
+        `
+            query catz{
+                CategoryFind(query:"[{}]") {
+                    name
+                }
+            }
+            `
+    );
+
+const registerUser = (login, password) =>
+    gql(
+        graphiQL,
+        `
+            mutation register($login:String, $password:String){
+                UserUpsert(user: {login:$login, password:$password}){
+                    _id login createdAt
+                }
+            }
+        `,
+        { login, password }
+    );
+
+const login = (login, password) =>
+    gql(
+        graphiQL,
+        `
+            query login($login:String, $password:String){
+                login(login:$login, password:$password)
+            }
+        `,
+        { login, password }
+    );
+
+const categories = () =>
+    gql(
+        graphiQL,
+        `
+                query categoryFind{
+                    CategoryFind(query:"[{}]"){
+                    _id name goods {
+                        _id
+                        createdAt
+                        name
+                        description
+                        price
+                    }
+                }
+            }`
+    );
+
+
+(async () => {
+    console.log("all category:", await categoryFind());
+    console.log(
+        "register user:",
+        await registerUser("antonPyvovarov", "qwerty12345")
+    );
+    console.log(
+        "user login:",
+        await login("antonPyvovarov", "qwerty12345")
+    );
+    console.log(
+        "category by id with products:",
+        await categories()
+    );
+})();
+
+
+