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; } }