|
@@ -0,0 +1,81 @@
|
|
|
+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 с картинками и описанием, логин, регистрация.
|
|
|
+// например:
|
|
|
+let idd = 123456
|
|
|
+// `\\"_id\\":\\"${id}\\"`
|
|
|
+console.log(JSON.parse("[{\"_id\":\"123456\"}]"))
|
|
|
+const url = 'http://shop-roles.node.ed.asmer.org.ua/graphql'
|
|
|
+const gqlCategoriesList = () => {
|
|
|
+ return gql(url, `query cats{
|
|
|
+ CategoryFind(query: "[{}]"){
|
|
|
+ _id, name,
|
|
|
+ }
|
|
|
+}`, {}
|
|
|
+ )
|
|
|
+}
|
|
|
+
|
|
|
+const gqlRegister = (login, password) => {
|
|
|
+ return gql(url, `mutation register($login: String, $password: String){
|
|
|
+ UserUpsert(user: {login: $login, password: $password}){
|
|
|
+ _id, login, createdAt
|
|
|
+ }
|
|
|
+}`, {login, password})
|
|
|
+}
|
|
|
+
|
|
|
+const gqlLogin = (login, password) =>
|
|
|
+ gql(url,
|
|
|
+ `query login($login:String, $password: String){
|
|
|
+ login(login:$login, password: $password)
|
|
|
+ }`, {login, password})
|
|
|
+
|
|
|
+const gqlCategories = () => {
|
|
|
+ return gql(url,
|
|
|
+ ` query categories{
|
|
|
+ CategoryFind(query:"[{}]"){
|
|
|
+ _id name goods {
|
|
|
+ _id
|
|
|
+ name
|
|
|
+ price
|
|
|
+ description
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`
|
|
|
+ );
|
|
|
+}
|
|
|
+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
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`,
|
|
|
+ );
|
|
|
+};
|
|
|
+
|
|
|
+(async function callAll() {
|
|
|
+ console.log(await gqlCategoriesList());
|
|
|
+ console.log(await gqlRegister("Vlada Simonova", "123456"));
|
|
|
+ console.log(await gqlLogin("Vlada Simonova", "123456"));
|
|
|
+ console.log(await gqlCategories());
|
|
|
+ console.log(await productSearchById("62c9472cb74e1f5f2ec1a0d3"));
|
|
|
+})();
|
|
|
+
|
|
|
+
|
|
|
+
|