ivar_n il y a 2 ans
Parent
commit
d6560167d4
2 fichiers modifiés avec 90 ajouts et 13 suppressions
  1. 84 8
      js/14_async-await/gq req/app.js
  2. 6 5
      js/14_async-await/tasks/index.js

+ 84 - 8
js/14_async-await/gq req/app.js

@@ -1,19 +1,22 @@
 
-//fetch(адрес, {method, headers: {}, body: JSON.stringify({query, variables})})
-//method: POST
-//content-type: application/json
-//body: json с query - строка и variables - объект с вложенными параметрами
+// gqReq1()
+function gqReq1() {
 
-const gql = (url, query, variables) => fetch(url, {
+   //fetch(адрес, {method, headers: {}, body: JSON.stringify({query, variables})})
+   //method: POST
+   //content-type: application/json
+   //body: json с query - строка и variables - объект с вложенными параметрами
+
+   const gql = (url, query, variables) => fetch(url, {
       method: 'POST',   
-      headers: {'content-type': 'application/json'}, 
+      headers: {'Content-Type': 'application/json'}, 
       body: JSON.stringify({query, variables}),
    })
    // .then(response => response.json())
    // .then(result => console.log(result))
    ;
 
-(async function() {
+   (async function() {
    let response = await gql("http://shop-roles.asmer.fs.a-level.com.ua/graphql", `query cats($q:String) {
       CategoryFind(query:$q){
          name goods{
@@ -24,6 +27,79 @@ const gql = (url, query, variables) => fetch(url, {
       }
    }`, {q: "[{}]"}); //должно приехать { data: {CategoryFind: [........]}}
    let result = await response.json();
-})()
+   })()
+}
+
+
+
+// gqReq2()
+function gqReq2() {
+
+   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)
+         //расковырять data, если все ок - отдать data.login или data.CategoryFindOne, или шо там еще
+         //если есть errors, то выбросить исключение и тем самым зареджектить промис
+         return data
+      });
+
+
+   (async function() {
+      const gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
+      console.log((await gql(`
+         query NameForMe1($login:String, $password:String){
+            login(login:$login, password:$password)
+         }
+      `, {login: 'tst', password: '123'})).data.login)
+   })()
+}
+
+// const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOnsiaWQiOiI2MWE0ZGIyOWM3NTBjMTJiYTZiYTQwMjIiLCJsb2dpbiI6ImVxd2VxZXdldyIsImFjbCI6WyI2MWE0ZGIyOWM3NTBjMTJiYTZiYTQwMjIiLCJ1c2VyIl19LCJpYXQiOjE2MzgxOTQ1NzZ9.Pi1GO6x7wdNrIrUKCQT-32-SsqmgFY-oFDrrXmw74-8'
+// JSON.parse(atob(token.split('.')[1]))
+
+
+// let qqq = 'fdhfakfalfjskgfsdadasdasdasdasdadfsdfkarieqfowerdaesfa'
+
+// function checkSum(str) {
+//    let res = 0
+//    for (let letter of str) {
+//       res += letter.charCodeAt()
+//    }
+//    return res
+// }
+// console.log(checkSum(qqq))
+
+// function sign(data, salt) {
+//    const json = JSON.stringify(data)
+//    const sum = checkSum(json + salt)
+//    return json + sum
+// }
+
+// function verify(signed, salt) {
+//    const json = signed.slice(0, signed.lastIndexOf('}') + 1)
+//    const tokenSum = + signed.slice(signed.lastIndexOf('}') + 1)
+//    const sum = checkSum(json + salt)
+
+//    console.log(json, tokenSum, sum)
+//    return sum === tokenSum
+// }
+
+
 
 
+localStorage.authToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOnsiaWQiOiI2MWE0ZGIyOWM3NTBjMTJiYTZiYTQwMjIiLCJsb2dpbiI6ImVxd2VxZXdldyIsImFjbCI6WyI2MWE0ZGIyOWM3NTBjMTJiYTZiYTQwMjIiLCJ1c2VyIl19LCJpYXQiOjE2MzgxOTk4NDl9.wzpQZ3KjywbNSfCt0Z_dua2AIrADL-ID-4Rs2cVnq0Q" 
+const originalFetch = fetch;
+fetch = (url, params={headers:{}}) => { 
+    params.headers.Authorization = "Bearer " + localStorage.authToken
+    return originalFetch(url, params)
+}

+ 6 - 5
js/14_async-await/tasks/index.js

@@ -111,8 +111,6 @@ function pedestrianTrafficLightWrapp() {
          return new Promise(function(resolve, reject) {
             let listener = function (event) {
                element.removeEventListener(eventName, listener)
-               element.setAttribute("disabled", "disabled")
-               delay(4000).then(() => element.removeAttribute("disabled", "disabled"))
                resolve(event) 
             }
             element.addEventListener(eventName, listener)
@@ -124,11 +122,12 @@ function pedestrianTrafficLightWrapp() {
          await delay(greenTime)
             turnOff(green)
             turnOn(red, 'red')
-         await Promise.race([domEventPromise(knopka, 'click'), delay(redTime)])
+         await delay(redTime/2)
+         await Promise.race([domEventPromise(knopka, 'click'), delay(redTime/2)])
             turnOff(red)
       }
    }
-   trafficLight2(container1, 3000, 3000)
+   trafficLight2(container1, 6000, 6000)
 
 }
 
@@ -179,4 +178,6 @@ function speedTestWrapp() {
       // parallelDuration: 100 // 100 запросов за 10000 миллисекунд
       speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5)
 
-}
+}
+
+