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, 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 }], }, ]), } ); };