|
@@ -0,0 +1,81 @@
|
|
|
+async function getGQL(url) {
|
|
|
+ return async (query, variables) => {
|
|
|
+ let options = {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ body: JSON.stringify({ query, variables })
|
|
|
+ }
|
|
|
+
|
|
|
+ if(localStorage.authToken) {
|
|
|
+ options.headers.Authorization = `Bearer ${localStorage.authToken}`
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(options.headers)
|
|
|
+
|
|
|
+ try {
|
|
|
+ let response = await fetch(url, options)
|
|
|
+ let { data } = await response.json()
|
|
|
+ console.log('data reseved', data)
|
|
|
+ return data[Object.keys(data)[0]]
|
|
|
+ } catch (e) {
|
|
|
+ console.warn('an eror occured', e)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+(async () => {
|
|
|
+ const gql2 = await getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
|
|
|
+ console.log('from getGQL: ', (await gql2(`
|
|
|
+ query cats{
|
|
|
+ CategoryFind(query:"[{}]"){
|
|
|
+ name goods{
|
|
|
+ name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`
|
|
|
+ , { login: 'tst', password: '123' })))
|
|
|
+})()
|
|
|
+
|
|
|
+let _id = "61a762f9c750c12ba6ba40aa"
|
|
|
+
|
|
|
+async function catById(_id) {
|
|
|
+ let gql = await getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
|
|
|
+ let data = await gql(`query catById($query:String){
|
|
|
+ CategoryFindOne(query:$query){
|
|
|
+ name goods{
|
|
|
+ _id name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { query: JSON.stringify([{ _id }]) })
|
|
|
+ return data
|
|
|
+}
|
|
|
+
|
|
|
+async function loginAndToken(log, pass) {
|
|
|
+ let gql = await getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
|
|
|
+ let data = await gql(`
|
|
|
+ query log($login:String, $password:String) {
|
|
|
+ login(login: $login, password: $password)
|
|
|
+ }`, {login: log, password: pass})
|
|
|
+ return data
|
|
|
+}
|
|
|
+
|
|
|
+async function registerUser(obj) {
|
|
|
+ let gql = await getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
|
|
|
+ let data = await gql(`
|
|
|
+ mutation register($login:String, $password:String, $nick:String) {
|
|
|
+ UserUpsert(
|
|
|
+ user: { login: $login, password: $password }){
|
|
|
+ login _id
|
|
|
+ }
|
|
|
+ }`, {user: obj})
|
|
|
+ return data
|
|
|
+}
|
|
|
+
|
|
|
+(async () => {
|
|
|
+ localStorage.authToken = await loginAndToken("OLDBOY228", "3321")
|
|
|
+ console.log('info token', localStorage.authToken)
|
|
|
+ console.log('idis', await catById(_id))
|
|
|
+ console.log('New user', await registerUser({login:"123F11F", password:"123"}))
|
|
|
+})()
|