UNPKG

@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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxNQUFNLE9BQWdCLHFCQUFxQjtJQUV6QyxZQUNZLFlBQXNDLEVBQ3RDLFFBQWdCLEVBQ2hCLGNBQXVCLEtBQUssRUFDdEMsNEJBQTRCLEdBQUcsYUFBYSxFQUM1QyxRQUFRLEdBQUcsS0FBSztRQUpOLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUl0QyxZQUFZLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbkYsWUFBWSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFtQztRQUMvQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFP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eEMsT0FBTyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6RDtZQUNELHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVk7YUFDWixPQUFPLENBQUksTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXO2dCQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDM0UsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFwaVJlcXVlc3RlclR5cGUsIEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgS29hbGFSZXNwb25zZUludGVyZmFjZSB9IGZyb20gXCIuL2hlbHBlcnMvZXJyb3Iva29hbGEuZXJyb3JzLmhlbHBlclwiO1xuaW1wb3J0IHsgS29hbGFFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9lbnZpcm9ubWVudHMva29hbGFFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGVcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS29hbGFBcGlSZXF1ZXN0ZXJCYXNlPEVudGl0eVR5cGUsIEdldEFsbFR5cGUsIERhdGFUeXBlPiB7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBrb2FsYVNlcnZpY2U6IEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgc3RhdHVzQ2FjaGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBlbnZpcm9ubWVudE5hbWVUb0VuZHBvaW50QXBpID0gJ2VuZHBvaW50QXBpJyxcbiAgICBpc01vY2t1cCA9IGZhbHNlXG4gICkge1xuICAgIGtvYWxhU2VydmljZS5hcGlVcmwgPSBLb2FsYUVudmlyb25tZW50LmVudmlyb25tZW50Py5bZW52aXJvbm1lbnROYW1lVG9FbmRwb2ludEFwaV07XG4gICAga29hbGFTZXJ2aWNlLmlzTW9ja3VwID0gaXNNb2NrdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsKGZpbHRlcj86IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxHZXRBbGxUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCwgdGhpcy5nZXRQYXJhbXMoZmlsdGVyKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QnlJZChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxFbnRpdHlUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeVNvbWV0aGluZzxUeXBlPihzb21ldGhpbmc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VHlwZT4oJ2dldCcsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBzb21ldGhpbmcpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoZGF0YTogRGF0YVR5cGUsIGlkPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oXG4gICAgICAoaWQgPyAncHV0JyA6ICdwb3N0JyksXG4gICAgICBgJHt0aGlzLmVuZHBvaW50fSR7KGlkID8gYC8ke2lkfWAgOiAnJyl9YCxcbiAgICAgIGRhdGFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oJ2RlbGV0ZScsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBpZClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxSZXF1ZXN0cygpIHtcbiAgICBhd2FpdCB0aGlzLmtvYWxhU2VydmljZS5jYW5jZWxSZXF1ZXN0cygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBhcmFtcyhwYXJhbXM/OiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IGFueSkge1xuICAgIGxldCBmaWx0ZXIgPSB7fSBhcyBhbnk7XG4gICAgaWYgKHBhcmFtcyBpbnN0YW5jZW9mIEJlaGF2aW9yU3ViamVjdCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihmaWx0ZXIsIHBhcmFtcz8uZ2V0VmFsdWUoKSA/PyB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyLCBwYXJhbXMgPz8ge30pO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWx0ZXIgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnc29ydCcpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ29yZGVyJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnbGltaXQnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdwYWdlJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgncGFyYW1zJylcbiAgICApIHtcbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlci5wYXJhbXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGAke2ZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXX1gID09PSAnTmFOJyB8fFxuICAgICAgICAgIGZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV0gPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ga29hbGEoe30pXG4gICAgICAgIC5vYmplY3QoKVxuICAgICAgICAubWVyZ2UoZmlsdGVyLnBhcmFtcylcbiAgICAgICAgLm1lcmdlKHtcbiAgICAgICAgICBzb3J0OiBmaWx0ZXIuc29ydCxcbiAgICAgICAgICBvcmRlcjogZmlsdGVyLm9yZGVyLFxuICAgICAgICAgIGxpbWl0OiBmaWx0ZXIubGltaXQsXG4gICAgICAgICAgcGFnZTogZmlsdGVyLnBhZ2VcbiAgICAgICAgfSlcbiAgICAgICAgLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlciA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3Q8VD4obWV0aG9kOiBBcGlSZXF1ZXN0ZXJUeXBlLCB1cmw6IHN0cmluZywgZGF0YTogYW55ID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAodGhpcy5zdGF0dXNDYWNoZSkge1xuICAgICAgaWYgKEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUuaGFzQ2FjaGUodXJsKSkge1xuICAgICAgICByZXR1cm4gS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5nZXRDYWNoZUFzT2JzZXJ2YWJsZSh1cmwpO1xuICAgICAgfVxuICAgICAgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5jcmVhdGVDYWNoZSh1cmwpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZVxuICAgICAgICAgICAgICAgLnJlcXVlc3Q8VD4obWV0aG9kLCB1cmwsIGRhdGEpXG4gICAgICAgICAgICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0dXNDYWNoZSkgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZS5zZXREYXRhSW5DYWNoZSh1cmwsIHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgfSkpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUNhY2hlKCkge1xuICAgIHRoaXMuc3RhdHVzQ2FjaGUgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVDYWNoZSgpIHtcbiAgICB0aGlzLnN0YXR1c0NhY2hlID0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==