xcoobee-cookie-kit-core
Version:
GDPR / CCPA Easy Cookie, Script, and Fingerprint Consent Management for Websites
53 lines (44 loc) • 1.26 kB
JavaScript
import fetch from "isomorphic-fetch";
import NotAuthorizedError from "./NotAuthorizedError";
import { xbApiUrl } from "./configs";
function graphQLRequest(query, variables, token) {
const init = {
method: "post",
mode: "cors",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: token,
},
body: JSON.stringify({
query,
variables,
}),
};
return fetch(`${xbApiUrl}/graphql`, init)
.then((response) => {
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response);
}
if (response.status === 401) {
return Promise.reject(new NotAuthorizedError());
}
return Promise.reject(response);
})
.then(data => data.json())
.then((data) => {
if (!data) {
// eslint-disable-next-line
return Promise.reject([new Error("No data")]);
}
if (data.error) {
// eslint-disable-next-line
return Promise.reject([data.error]);
}
if (data.errors) {
return Promise.reject(data.errors);
}
return Promise.resolve(data.data);
});
}
export default graphQLRequest;