Класс API
class API {
constructor(token = '') {
this.hasToken = token === '' ? false : true;
this.token = token;
}
async makeQuery(url, nextAction, method = 'GET', data = {}) {
try {
if(this.hasToken) data.token = this.token;
let options = {
method: method,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
}
/*
* Если POST запрос, тогда мы переводим данные в x-www-form-urlencoded и добавляем св-во body
* */
if (method === 'POST') {
let formBody = [];
for (let property in data) {
let encodedKey = encodeURIComponent(property);
let encodedValue = encodeURIComponent(data[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
options.body = formBody;
}
const recieveddata = await fetch(url, options);
const result = await recieveddata.json();
return nextAction(result);
}catch (error) {
return this.ShowError({
message: error
});
}
}
ShowError(data = {}) {
Object.keys(data).map(function(message, index) {
var value = data[message];
alert(value);
});
}
}