Files
livetrail/src/scripts/api.js
T
2026-04-25 23:55:11 +02:00

40 lines
872 B
JavaScript

export default class Api {
constructor({server, processPage, timezone, errorCode, lang}) {
this.server = server;
this.processPage = processPage;
this.timezone = timezone;
this.errorCode = errorCode;
this.lang = lang;
}
async get(action, params = {}) {
const requestParams = {
...params,
a: action,
t: this.timezone
};
const url = new URL(this.processPage, this.server);
url.search = new URLSearchParams(requestParams).toString();
const request = await fetch(url, {
method: 'GET',
headers: {'Content-Type': 'application/json'}
});
if(!request.ok) {
throw new Error('Error HTTP ' + request.status + ': ' + request.statusText);
}
const response = await request.json();
response.desc = this.lang.parse(response.desc);
if(response.result == this.errorCode) {
throw response.desc;
}
return response.data;
}
}