|
@@ -0,0 +1,240 @@
|
|
|
+const getGQL = url => {
|
|
|
+ return function(query, variables) {
|
|
|
+ return fetch(url,
|
|
|
+ {
|
|
|
+ method: "POST",
|
|
|
+ headers: {"Content-Type": "application/json"},
|
|
|
+ body: JSON.stringify({query, variables})
|
|
|
+ }).then(resp => resp.json()).then(data => {
|
|
|
+ if ("errors" in data) {
|
|
|
+ throw new Error('ашипка, угадывай што не так')
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return data.data[Object.keys(variables)[0]]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+let gql = getGQL('http://shop-roles.asmer.fs.a-level.com.ua/graphql')
|
|
|
+
|
|
|
+//запросики
|
|
|
+//categories
|
|
|
+async function getCategoriesCount() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ CategoryCount(query: $query)
|
|
|
+ }`, {CategoryCount: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findAllCategories() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ CategoryFind(query: $query) {
|
|
|
+ _id
|
|
|
+ name
|
|
|
+ image {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ goods {
|
|
|
+ _id name description price images {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, {CategoryFind: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findCategoryById(categoryId) {
|
|
|
+ let id = `[{"_id":"${categoryId}"}]`
|
|
|
+ let result = await gql(`
|
|
|
+ query ($id:String){
|
|
|
+ CategoryFindOne(query: $id){
|
|
|
+ name
|
|
|
+ image {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ goods {
|
|
|
+ _id name description price images {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { CategoryFindOne: '', id })
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findSubCategories(categoryId) {
|
|
|
+ let id = `[{"_id":"${categoryId}"}]`
|
|
|
+ let result = await gql(`
|
|
|
+ query($id:String){
|
|
|
+ CategoryFindOne(query: $id){
|
|
|
+ subCategories {
|
|
|
+ _id
|
|
|
+ name
|
|
|
+ image {
|
|
|
+ _id text url originalFileName
|
|
|
+ }
|
|
|
+ goods {
|
|
|
+ _id name description price images {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { CategoryFindOne: '', id })
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//goods
|
|
|
+async function getGoodsCount() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ GoodCount(query: $query)
|
|
|
+ }`, {GoodCount: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findAllGoods() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ GoodFind(query: $query) {
|
|
|
+ _id name description price images {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ categories {
|
|
|
+ _id name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, {GoodFind: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findGoodById(goodId) {
|
|
|
+ let id = `[{"_id":"${goodId}"}]`
|
|
|
+ let result = await gql(`
|
|
|
+ query good($id:String){
|
|
|
+ GoodFindOne(query: $id) {
|
|
|
+ name description price images {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ categories {
|
|
|
+ _id name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { GoodFindOne: '', id })
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//users
|
|
|
+async function getUsersCount() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ UserCount(query: $query)
|
|
|
+ }`, {UserCount: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findAllUsers() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ UserFind(query: $query){
|
|
|
+ _id createdAt login nick acl avatar {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, {UserFind: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findUserById(userId) {
|
|
|
+ let id = `[{"_id":"${userId}"}]`
|
|
|
+ let result = await gql(`
|
|
|
+ query ($id:String){
|
|
|
+ UserFindOne(query: $id){
|
|
|
+ _id createdAt login nick acl avatar {
|
|
|
+ _id text url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { UserFindOne: '', id })
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//images
|
|
|
+async function getImagesCount() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ ImageCount(query: $query)
|
|
|
+ }`, {ImageCount: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findAllImages() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String){
|
|
|
+ ImageFind(query: $query) {
|
|
|
+ _id createdAt text url originalFileName
|
|
|
+ }
|
|
|
+ }`, {ImageFind: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//orders
|
|
|
+async function findAllOrders() {
|
|
|
+ let result = await gql(`
|
|
|
+ query ($query:String) {
|
|
|
+ OrderFind(query: $query){
|
|
|
+ _id
|
|
|
+ createdAt
|
|
|
+ total
|
|
|
+ orderGoods {
|
|
|
+ _id count price good {
|
|
|
+ _id name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ owner {
|
|
|
+ _id login acl
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, {OrderFind: '', query: "[{}]"})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+async function findOrderById(orderId) {
|
|
|
+ let id = `[{"_id":"${orderId}"}]`
|
|
|
+ let result = await gql(`
|
|
|
+ query ($id:String){
|
|
|
+ OrderFindOne(query: $id){
|
|
|
+ _id
|
|
|
+ createdAt
|
|
|
+ total
|
|
|
+ orderGoods {
|
|
|
+ _id count price good {
|
|
|
+ _id name
|
|
|
+ }
|
|
|
+ }
|
|
|
+ owner {
|
|
|
+ _id login acl
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, { OrderFindOne: '', id })
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//reg
|
|
|
+async function registerUser(login, password) {
|
|
|
+ let result = await gql(`
|
|
|
+ mutation ($login:String, $password:String) {
|
|
|
+ UserUpsert(user:{
|
|
|
+ login:$login, password:$password
|
|
|
+ }) {
|
|
|
+ _id
|
|
|
+ login
|
|
|
+ }
|
|
|
+ }`, {UserUpsert: '', login, password})
|
|
|
+ return result
|
|
|
+}
|
|
|
+
|
|
|
+//всё, хватит..........
|