@koalarx/ui
Version:
Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.
87 lines • 12.1 kB
JavaScript
import { koala } from "@koalarx/utils";
import { BehaviorSubject } from "rxjs";
import { KoalaEnvironment } from "../../environments/koalaEnvironment";
import { KoalaApiRequesterCache } from "./koala.api-requester.cache";
import { map } from "rxjs/operators";
export class KoalaApiRequesterBase {
constructor(koalaService, endpoint, statusCache = false, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
this.koalaService = koalaService;
this.endpoint = endpoint;
this.statusCache = statusCache;
koalaService.apiUrl = KoalaEnvironment.environment?.[environmentNameToEndpointApi];
koalaService.isMockup = isMockup;
}
getAll(filter) {
return this.request('get', this.endpoint, this.getParams(filter));
}
getById(id) {
return this.request('get', this.endpoint + '/' + id);
}
getBySomething(something) {
return this.request('get', this.endpoint + '/' + something);
}
save(data, id) {
return this.koalaService.request((id ? 'put' : 'post'), `${this.endpoint}${(id ? `/${id}` : '')}`, data);
}
delete(id) {
return this.koalaService.request('delete', this.endpoint + '/' + id);
}
async cancelRequests() {
await this.koalaService.cancelRequests();
}
async getParams(params) {
let filter = {};
if (params instanceof BehaviorSubject) {
Object.assign(filter, params?.getValue() ?? {});
}
else {
Object.assign(filter, params ?? {});
}
if (filter &&
filter.hasOwnProperty('sort') &&
filter.hasOwnProperty('order') &&
filter.hasOwnProperty('limit') &&
filter.hasOwnProperty('page') &&
filter.hasOwnProperty('params')) {
Object.keys(filter.params).forEach(indexName => {
if (`${filter.params[indexName]}` === 'NaN' ||
filter.params[indexName] === null) {
filter.params[indexName] = '';
}
});
return koala({})
.object()
.merge(filter.params)
.merge({
sort: filter.sort,
order: filter.order,
limit: filter.limit,
page: filter.page
})
.getValue();
}
return filter ?? null;
}
request(method, url, data = {}) {
if (this.statusCache) {
if (KoalaApiRequesterCache.hasCache(url)) {
return KoalaApiRequesterCache.getCacheAsObservable(url);
}
KoalaApiRequesterCache.createCache(url);
}
return this.koalaService
.request(method, url, data)
.pipe(map(response => {
if (this.statusCache)
KoalaApiRequesterCache.setDataInCache(url, response);
return response;
}));
}
enableCache() {
this.statusCache = true;
}
disableCache() {
this.statusCache = false;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQWdCLHFCQUFxQjtJQUV6QyxZQUNZLFlBQXNDLEVBQ3RDLFFBQWdCLEVBQ2hCLGNBQXVCLEtBQUssRUFDdEMsNEJBQTRCLEdBQUcsYUFBYSxFQUM1QyxRQUFRLEdBQUcsS0FBSztRQUpOLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUl0QyxZQUFZLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbkYsWUFBWSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFtQztRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxjQUFjLENBQU8sU0FBYztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQU8sS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBYyxFQUFFLEVBQVc7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3JCLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFDekMsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBeUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFTSxLQUFLLENBQUMsY0FBYztRQUN6QixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBbUM7UUFDeEQsSUFBSSxNQUFNLEdBQUcsRUFBUyxDQUFDO1FBQ3ZCLElBQUksTUFBTSxZQUFZLGVBQWUsRUFBRTtZQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDakQ7YUFBTTtZQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUNELElBQ0UsTUFBTTtZQUNOLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQy9CO1lBQ0EsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QyxJQUNFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEtBQUs7b0JBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUNqQztvQkFDQSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztpQkFDL0I7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztpQkFDYixNQUFNLEVBQUU7aUJBQ1IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7aUJBQ3BCLEtBQUssQ0FBQztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7YUFDbEIsQ0FBQztpQkFDRCxRQUFRLEVBQUUsQ0FBQztTQUNmO1FBRUQsT0FBTyxNQUFNLElBQUksSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxPQUFPLENBQUksTUFBd0IsRUFBRSxHQUFXLEVBQUUsT0FBWSxFQUFFO1FBQ3JFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEMsT0FBTyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6RDtZQUNELHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVk7YUFDWixPQUFPLENBQUksTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXO2dCQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0UsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFwaVJlcXVlc3RlclR5cGUsIEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgS29hbGFSZXNwb25zZUludGVyZmFjZSB9IGZyb20gXCIuL2hlbHBlcnMvZXJyb3Iva29hbGEuZXJyb3JzLmhlbHBlclwiO1xuaW1wb3J0IHsgS29hbGFFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9lbnZpcm9ubWVudHMva29hbGFFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGVcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS29hbGFBcGlSZXF1ZXN0ZXJCYXNlPEVudGl0eVR5cGUsIEdldEFsbFR5cGUsIERhdGFUeXBlPiB7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBrb2FsYVNlcnZpY2U6IEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgc3RhdHVzQ2FjaGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBlbnZpcm9ubWVudE5hbWVUb0VuZHBvaW50QXBpID0gJ2VuZHBvaW50QXBpJyxcbiAgICBpc01vY2t1cCA9IGZhbHNlXG4gICkge1xuICAgIGtvYWxhU2VydmljZS5hcGlVcmwgPSBLb2FsYUVudmlyb25tZW50LmVudmlyb25tZW50Py5bZW52aXJvbm1lbnROYW1lVG9FbmRwb2ludEFwaV07XG4gICAga29hbGFTZXJ2aWNlLmlzTW9ja3VwID0gaXNNb2NrdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsKGZpbHRlcj86IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxHZXRBbGxUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCwgdGhpcy5nZXRQYXJhbXMoZmlsdGVyKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QnlJZChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxFbnRpdHlUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeVNvbWV0aGluZzxUeXBlPihzb21ldGhpbmc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VHlwZT4oJ2dldCcsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBzb21ldGhpbmcpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoZGF0YTogRGF0YVR5cGUsIGlkPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oXG4gICAgICAoaWQgPyAncHV0JyA6ICdwb3N0JyksXG4gICAgICBgJHt0aGlzLmVuZHBvaW50fSR7KGlkID8gYC8ke2lkfWAgOiAnJyl9YCxcbiAgICAgIGRhdGFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oJ2RlbGV0ZScsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBpZClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxSZXF1ZXN0cygpIHtcbiAgICBhd2FpdCB0aGlzLmtvYWxhU2VydmljZS5jYW5jZWxSZXF1ZXN0cygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBhcmFtcyhwYXJhbXM/OiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IGFueSkge1xuICAgIGxldCBmaWx0ZXIgPSB7fSBhcyBhbnk7XG4gICAgaWYgKHBhcmFtcyBpbnN0YW5jZW9mIEJlaGF2aW9yU3ViamVjdCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihmaWx0ZXIsIHBhcmFtcz8uZ2V0VmFsdWUoKSA/PyB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyLCBwYXJhbXMgPz8ge30pO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWx0ZXIgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnc29ydCcpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ29yZGVyJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnbGltaXQnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdwYWdlJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgncGFyYW1zJylcbiAgICApIHtcbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlci5wYXJhbXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGAke2ZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXX1gID09PSAnTmFOJyB8fFxuICAgICAgICAgIGZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV0gPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ga29hbGEoe30pXG4gICAgICAgIC5vYmplY3QoKVxuICAgICAgICAubWVyZ2UoZmlsdGVyLnBhcmFtcylcbiAgICAgICAgLm1lcmdlKHtcbiAgICAgICAgICBzb3J0OiBmaWx0ZXIuc29ydCxcbiAgICAgICAgICBvcmRlcjogZmlsdGVyLm9yZGVyLFxuICAgICAgICAgIGxpbWl0OiBmaWx0ZXIubGltaXQsXG4gICAgICAgICAgcGFnZTogZmlsdGVyLnBhZ2VcbiAgICAgICAgfSlcbiAgICAgICAgLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlciA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3Q8VD4obWV0aG9kOiBBcGlSZXF1ZXN0ZXJUeXBlLCB1cmw6IHN0cmluZywgZGF0YTogYW55ID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAodGhpcy5zdGF0dXNDYWNoZSkge1xuICAgICAgaWYgKEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUuaGFzQ2FjaGUodXJsKSkge1xuICAgICAgICByZXR1cm4gS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5nZXRDYWNoZUFzT2JzZXJ2YWJsZSh1cmwpO1xuICAgICAgfVxuICAgICAgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5jcmVhdGVDYWNoZSh1cmwpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZVxuICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIGRhdGEpXG4gICAgICAgICAgICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0dXNDYWNoZSkgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5zZXREYXRhSW5DYWNoZSh1cmwsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUNhY2hlKCkge1xuICAgIHRoaXMuc3RhdHVzQ2FjaGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVDYWNoZSgpIHtcbiAgICB0aGlzLnN0YXR1c0NhY2hlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==