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.
42 lines
694 B
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
|
|
});
|
|
}
|
|
}
|