@eleva-io/erp-sdk
Version:
SDK oficial para el ERP de Eleva
48 lines • 1.78 kB
JavaScript
import { CRUD } from '../../../../utils/crud';
import { requireField } from '../../../../utils/guards';
import { CommonAreaReservesAPI } from './reserve';
export class CommonAreasAPI {
_httpClient;
_baseUrl;
_commonAreaId;
_crud;
constructor(_httpClient, _baseUrl, _commonAreaId) {
this._httpClient = _httpClient;
this._baseUrl = _baseUrl;
this._commonAreaId = _commonAreaId;
this._crud = new CRUD(_httpClient, {
basePath: _baseUrl,
id: _commonAreaId,
});
}
async find(query) {
return this._crud.find(query);
}
async create(data) {
const { translations, ...rest } = data;
const request = {
...rest,
...(translations ? { translations: JSON.stringify(translations) } : {}),
};
return this._httpClient.form(this._baseUrl, request);
}
async update(id, data) {
const { reserve, routeTracking, translations, communities, ...rest } = data;
const request = {
...rest,
...(reserve ? { reserve: JSON.stringify(reserve) } : {}),
...(routeTracking ? { routeTracking: JSON.stringify(routeTracking) } : {}),
...(translations ? { translations: JSON.stringify(translations) } : {}),
...(communities ? { communities: JSON.stringify(communities) } : {}),
};
return this._httpClient.form(`${this._baseUrl}/${id}`, request, 'PUT');
}
async delete(id) {
return this._crud.delete(id);
}
reserves() {
requireField('commonAreaId', this._commonAreaId);
return new CommonAreaReservesAPI(this._httpClient, `${this._baseUrl}/${this._commonAreaId}/reserves`);
}
}
//# sourceMappingURL=common_area.js.map