You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/utils/api/request/apolloApi.js

42 lines
694 B

import apollo from "@Global/utils/api/init/apollo";
export default class apolloApi {
constructor(urlObj) {
this.staticMethods = ["query", "mutate"];
this.method = urlObj.method;
this.gql = urlObj.gql;
this.variables = urlObj.data;
}
init() {
if (this.checkMethod()) {
return this[this.method]();
}
}
checkMethod() {
return this.staticMethods.includes(this.method);
}
query() {
let query = this.gql;
let variables = this.variables;
return apollo.query({
query,
variables
});
}
mutate() {
const mutation = this.gql;
const variables = this.variables;
return apollo.mutate({
mutation,
variables
});
}
}