import { gql } from "./gql"; export const log = async(login, password) => { let query = `query login($login:String!, $password:String!) { login(login: $login, password: $password) }` let variables = {"login":login, "password":password} let token = await gql(query, variables) localStorage.authToken = token.data.login console.log(token) return token.data.login }; export const reg = async(login, password) => { let query = `mutation reg($login:String!, $password:String!) { createUser( login: $login, password: $password ){ _id }}` let variables = {"login":login, "password":password} let res = await gql(query, variables) return res }; export const imgFind = async () => { return await gql(`query imgFind{ ImageFind(query:"[{}]"){ url owner{ nick } } }`); }; export const userFind = (_id) => { return gql( `query userOne($query:String) { UserFindOne(query:$query){ _id avatar{ url } } }`, { query: JSON.stringify([{ _id }]) } ); }; export const setAva = async (idUser, id) => { let query = `mutation setAvatar($idUser:String , $idAvatar:ID){ UserUpsert(user:{_id: $idUser, avatar: {_id: $idAvatar}}){ _id, avatar{ url } } }` let variables = { idUser: idUser, idAvatar: id } let res = await gql(query, variables) return res }; export const snippetAdd = async (title, description, files , idSnippet) => { let query = `mutation newSnippet($snippet:SnippetInput) { SnippetUpsert(snippet:$snippet){ _id } }`; let qVariables = { snippet: { title, description, files, _id: idSnippet } }; let res = await gql(query, qVariables); return res; }; export const snippetById = async(id) => { let query = `query snippetFind($query:String){ SnippetFind(query:$query){ owner{ _id } title description _id files { type text name } } }` let variables = {query: JSON.stringify([{_id: id }])} let res = gql(query, variables) return res }; export const snippetByOwner = async (id) => { let query = `query snippetFind($query:String){ SnippetFind(query:$query){ owner{ _id } title description _id files { type text name } } }` let variables = {query: JSON.stringify([{owner: id } , {sort:[{_id: -1}]}])} let res = gql(query, variables) return res }; export const search = async (string) => { return gql( `query snippetFind($query:String){ SnippetFind(query:$query){ owner { _id login } title description _id files { type text name } } }`, { query: JSON.stringify([ { $or: [{title: `/${string.trim().split(" ").join('|')}/`},{description: `/${string.trim().split(" ").join('|')}/`}] }, { sort: [{title: 1}]}]) } ) };