// let gql = (url, query, variables={}) => // fetch(url, { // method: 'POST', // headers:{ // Accept: 'application/json', // "Content-Type": 'application/json' // }, // body: JSON.stringify({query, variables}) // }).then(res => res.json()) // используя функцию gql, понаделать функций с параметрами для разных запросов: категории, категория по id с товарами, // товар по id с картинками и описанием, логин, регистрация. // например: // const gqlLogin = (login, password) => // gql('http://shop-roles.node.ed.asmer.org.ua/graphql', `query login($login:String, $password: String){ // login(login:$loagin, password: $password) // }`, {login, password}) let gql = (url, query, variables = {}) => fetch(url, { method: 'POST', headers: { Accept: 'application/json', "Content-Type": 'application/json' }, body: JSON.stringify({ query, variables }) }).then(res => res.json()) const url = 'http://shop-roles.node.ed.asmer.org.ua/graphql' // категории const gqlCategoriesList = () => { return gql(url, `query cats{ CategoryFind(query: "[{}]"){ _id, name } }`, {}) } // категория по id с товарами const productSearchById = (id) => { let jsn = JSON.stringify({ _id: id }) return gql( url, `query searchById{ GoodFind(query: ${JSON.stringify(`[${jsn}]`)}){ name description images { _id createdAt text url originalFileName } } }` ); }; // товар по id с картинками и описанием const gqlCategories = () => { return gql(url, ` query categories{ CategoryFind(query:"[{}]"){ _id name goods { _id name price description } } }` ); } // логин const gqlLogin = (login, password) => { gql(url, `query login($login:String, $password: String){ login(login:$login, password: $password) }`, { login, password }) } // регистрация const gqlRegister = (login, password) => { return gql(url, `mutation register($login: String, $password: String){ UserUpsert(user: {login: $login, password: $password}){ _id, login, createdAt } }`, { login, password }) } (async function call() { console.log(await gqlCategoriesList()); console.log(await gqlRegister("Dmytro Suslov", "qwerty")); console.log(await gqlLogin("Dmytro Suslov", "qwerty")); console.log(await gqlCategories()); console.log(await productSearchById("62d5ca00b74e1f5f2ec1a156")); })();