69 lines
2.2 KiB
JavaScript
Executable File
69 lines
2.2 KiB
JavaScript
Executable File
class Api {
|
|
static send(request_method = "POST", url, header, body = {}, callback, server = Api.server, type) {
|
|
// Api.defaultHeader['X-ACAI-CODE'] = Api.token
|
|
url = server + url;
|
|
var xhr = new XMLHttpRequest();
|
|
|
|
xhr.addEventListener("readystatechange", function() {
|
|
if (this.readyState === 4) {
|
|
try {
|
|
callback(JSON.parse(this.responseText));
|
|
} catch (error) {
|
|
callback(this.responseText);
|
|
}
|
|
}
|
|
});
|
|
|
|
xhr.open(request_method, url);
|
|
for (const key in Api.defaultHeader) {
|
|
xhr.setRequestHeader(key, Api.defaultHeader[key]);
|
|
}
|
|
|
|
if (header) {
|
|
for (const key in header) {
|
|
xhr.setRequestHeader(key, header[key]);
|
|
}
|
|
}
|
|
xhr.send(JSON.stringify(body));
|
|
}
|
|
static suscribeStripeMarketeina(selection) {
|
|
return new Promise((resolve, reject) => {
|
|
if (!Api.token) {
|
|
reject(new Error("No hay token"));
|
|
return false;
|
|
}
|
|
Api.send(
|
|
"POST",
|
|
"/api/pay/",
|
|
{
|
|
Authorization: "Bearer " + Api.token
|
|
},
|
|
{
|
|
method: "POST",
|
|
action: "suscribeMarketeina",
|
|
selection: selection
|
|
},
|
|
response => {
|
|
if (!response.success) {
|
|
if (JSON.parse(response).code == 403) {
|
|
alert("Acceso a la aplicacion denegado, esto puede ocurrir por inactividad, vuelva a loguearse");
|
|
localStorage.removeItem("COCOOKIE");
|
|
localStorage.removeItem("COCOUSERNUM");
|
|
window.location.reload();
|
|
}
|
|
}
|
|
resolve(response);
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
}
|
|
Api.user = null;
|
|
Api.usernum = null;
|
|
Api.token = null;
|
|
Api.server = "https://ws.cocosolution.com";
|
|
Api.defaultHeader = {
|
|
"Content-type": "application/json"
|
|
};
|
|
|