|
@@ -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)
|
|
|
+}
|