@koalarx/ui 13.2.2 → 13.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,24 @@
1
1
  import { koala } from "@koalarx/utils";
2
- import { BehaviorSubject } from "rxjs";
2
+ import { BehaviorSubject, Observable } from "rxjs";
3
3
  import { KoalaEnvironment } from "../../environments/koalaEnvironment";
4
+ import { KoalaApiRequesterCache } from "./koala.api-requester.cache";
5
+ import { map } from "rxjs/operators";
4
6
  export class KoalaApiRequesterBase {
5
- constructor(koalaService, endpoint, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
7
+ constructor(koalaService, endpoint, enableCache = false, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
6
8
  this.koalaService = koalaService;
7
9
  this.endpoint = endpoint;
10
+ this.enableCache = enableCache;
8
11
  koalaService.apiUrl = KoalaEnvironment.environment?.[environmentNameToEndpointApi];
9
12
  koalaService.isMockup = isMockup;
10
13
  }
11
14
  getAll(filter) {
12
- return this.koalaService.request('get', this.endpoint, this.getParams(filter));
15
+ return this.request('get', this.endpoint, this.getParams(filter));
13
16
  }
14
17
  getById(id) {
15
- return this.koalaService.request('get', this.endpoint + '/' + id);
18
+ return this.request('get', this.endpoint + '/' + id);
16
19
  }
17
20
  getBySomething(something) {
18
- return this.koalaService.request('get', this.endpoint + '/' + something);
21
+ return this.request('get', this.endpoint + '/' + something);
19
22
  }
20
23
  save(data, id) {
21
24
  return this.koalaService.request((id ? 'put' : 'post'), `${this.endpoint}${(id ? `/${id}` : '')}`, data);
@@ -59,5 +62,23 @@ export class KoalaApiRequesterBase {
59
62
  }
60
63
  return filter ?? null;
61
64
  }
65
+ request(method, url, data = {}) {
66
+ this.startCache(url);
67
+ return this.koalaService
68
+ .request(method, url, data)
69
+ .pipe(map(response => {
70
+ if (this.enableCache)
71
+ KoalaApiRequesterCache.setInCache({ name: url, data: response });
72
+ return response;
73
+ }));
74
+ }
75
+ startCache(endpoint) {
76
+ if (this.enableCache && KoalaApiRequesterCache.hasCache(endpoint)) {
77
+ return new Observable(observe => {
78
+ observe.next(KoalaApiRequesterCache.getCache(endpoint));
79
+ observe.complete();
80
+ });
81
+ }
82
+ }
62
83
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXZFLE1BQU0sT0FBZ0IscUJBQXFCO0lBRXpDLFlBQ1ksWUFBc0MsRUFDdEMsUUFBZ0IsRUFDMUIsNEJBQTRCLEdBQUcsYUFBYSxFQUM1QyxRQUFRLEdBQUcsS0FBSztRQUhOLGlCQUFZLEdBQVosWUFBWSxDQUEwQjtRQUN0QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBSTFCLFlBQVksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNuRixZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQW1DO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQWEsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFTSxPQUFPLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFhLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sY0FBYyxDQUFPLFNBQWM7UUFDeEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBTyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFjLEVBQUUsRUFBVztRQUNyQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUM5QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDckIsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUN6QyxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUF5QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFtQztRQUN4RCxJQUFJLE1BQU0sR0FBRyxFQUFTLENBQUM7UUFDdkIsSUFBSSxNQUFNLFlBQVksZUFBZSxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFDRSxNQUFNO1lBQ04sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFDL0I7WUFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzdDLElBQ0UsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssS0FBSztvQkFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQ2pDO29CQUNBLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO2lCQUMvQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNiLE1BQU0sRUFBRTtpQkFDUixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDcEIsS0FBSyxDQUFDO2dCQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTthQUNsQixDQUFDO2lCQUNELFFBQVEsRUFBRSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsga29hbGEgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHNcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBLb2FsYUFwaVJlcXVlc3RlclNlcnZpY2UgfSBmcm9tIFwiLi9rb2FsYS5hcGktcmVxdWVzdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEtvYWxhUmVzcG9uc2VJbnRlcmZhY2UgfSBmcm9tIFwiLi9oZWxwZXJzL2Vycm9yL2tvYWxhLmVycm9ycy5oZWxwZXJcIjtcbmltcG9ydCB7IEtvYWxhRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vZW52aXJvbm1lbnRzL2tvYWxhRW52aXJvbm1lbnRcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEtvYWxhQXBpUmVxdWVzdGVyQmFzZTxFbnRpdHlUeXBlLCBHZXRBbGxUeXBlLCBEYXRhVHlwZT4ge1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQga29hbGFTZXJ2aWNlOiBLb2FsYUFwaVJlcXVlc3RlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVuZHBvaW50OiBzdHJpbmcsXG4gICAgZW52aXJvbm1lbnROYW1lVG9FbmRwb2ludEFwaSA9ICdlbmRwb2ludEFwaScsXG4gICAgaXNNb2NrdXAgPSBmYWxzZVxuICApIHtcbiAgICBrb2FsYVNlcnZpY2UuYXBpVXJsID0gS29hbGFFbnZpcm9ubWVudC5lbnZpcm9ubWVudD8uW2Vudmlyb25tZW50TmFtZVRvRW5kcG9pbnRBcGldO1xuICAgIGtvYWxhU2VydmljZS5pc01vY2t1cCA9IGlzTW9ja3VwO1xuICB9XG5cbiAgcHVibGljIGdldEFsbChmaWx0ZXI/OiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IGFueSkge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEdldEFsbFR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50LCB0aGlzLmdldFBhcmFtcyhmaWx0ZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeUlkKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5rb2FsYVNlcnZpY2UucmVxdWVzdDxFbnRpdHlUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeVNvbWV0aGluZzxUeXBlPihzb21ldGhpbmc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PFR5cGU+KCdnZXQnLCB0aGlzLmVuZHBvaW50ICsgJy8nICsgc29tZXRoaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKGRhdGE6IERhdGFUeXBlLCBpZD86IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEtvYWxhUmVzcG9uc2VJbnRlcmZhY2U+KFxuICAgICAgKGlkID8gJ3B1dCcgOiAncG9zdCcpLFxuICAgICAgYCR7dGhpcy5lbmRwb2ludH0keyhpZCA/IGAvJHtpZH1gIDogJycpfWAsXG4gICAgICBkYXRhXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmtvYWxhU2VydmljZS5yZXF1ZXN0PEtvYWxhUmVzcG9uc2VJbnRlcmZhY2U+KCdkZWxldGUnLCB0aGlzLmVuZHBvaW50ICsgJy8nICsgaWQpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsUmVxdWVzdHMoKSB7XG4gICAgYXdhaXQgdGhpcy5rb2FsYVNlcnZpY2UuY2FuY2VsUmVxdWVzdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRQYXJhbXMocGFyYW1zPzogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCBhbnkpIHtcbiAgICBsZXQgZmlsdGVyID0ge30gYXMgYW55O1xuICAgIGlmIChwYXJhbXMgaW5zdGFuY2VvZiBCZWhhdmlvclN1YmplY3QpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyLCBwYXJhbXM/LmdldFZhbHVlKCkgPz8ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKGZpbHRlciwgcGFyYW1zID8/IHt9KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgZmlsdGVyICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ3NvcnQnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdvcmRlcicpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ2xpbWl0JykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgncGFnZScpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ3BhcmFtcycpXG4gICAgKSB7XG4gICAgICBPYmplY3Qua2V5cyhmaWx0ZXIucGFyYW1zKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBgJHtmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV19YCA9PT0gJ05hTicgfHxcbiAgICAgICAgICBmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV0gPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmlsdGVyLnBhcmFtc1tpbmRleE5hbWVdID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGtvYWxhKHt9KVxuICAgICAgICAub2JqZWN0KClcbiAgICAgICAgLm1lcmdlKGZpbHRlci5wYXJhbXMpXG4gICAgICAgIC5tZXJnZSh7XG4gICAgICAgICAgc29ydDogZmlsdGVyLnNvcnQsXG4gICAgICAgICAgb3JkZXI6IGZpbHRlci5vcmRlcixcbiAgICAgICAgICBsaW1pdDogZmlsdGVyLmxpbWl0LFxuICAgICAgICAgIHBhZ2U6IGZpbHRlci5wYWdlXG4gICAgICAgIH0pXG4gICAgICAgIC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXIgPz8gbnVsbDtcbiAgfVxufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2FwaS1yZXF1ZXN0ZXIva29hbGEuYXBpLXJlcXVlc3Rlci5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxPQUFnQixxQkFBcUI7SUFFekMsWUFDWSxZQUFzQyxFQUN0QyxRQUFnQixFQUNoQixjQUF1QixLQUFLLEVBQ3RDLDRCQUE0QixHQUFHLGFBQWEsRUFDNUMsUUFBUSxHQUFHLEtBQUs7UUFKTixpQkFBWSxHQUFaLFlBQVksQ0FBMEI7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFJdEMsWUFBWSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ25GLFlBQVksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBbUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFhLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRU0sT0FBTyxDQUFDLEVBQVU7UUFDdkIsT0FBTyxJQUFJ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QUFPLENBQUksTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7YUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxXQUFXO2dCQUFFLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7WUFDckYsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU8sVUFBVSxDQUFDLFFBQWdCO1FBQ2pDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakUsT0FBTyxJQUFJLFVBQVUsQ0FBYSxPQUFPLENBQUMsRUFBRTtnQkFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFwaVJlcXVlc3RlclR5cGUsIEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgS29hbGFSZXNwb25zZUludGVyZmFjZSB9IGZyb20gXCIuL2hlbHBlcnMvZXJyb3Iva29hbGEuZXJyb3JzLmhlbHBlclwiO1xuaW1wb3J0IHsgS29hbGFFbnZpcm9ubWVudCB9IGZyb20gXCIuLi8uLi9lbnZpcm9ubWVudHMva29hbGFFbnZpcm9ubWVudFwiO1xuaW1wb3J0IHsgS29hbGFBcGlSZXF1ZXN0ZXJDYWNoZSB9IGZyb20gXCIuL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGVcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgS29hbGFBcGlSZXF1ZXN0ZXJCYXNlPEVudGl0eVR5cGUsIEdldEFsbFR5cGUsIERhdGFUeXBlPiB7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBrb2FsYVNlcnZpY2U6IEtvYWxhQXBpUmVxdWVzdGVyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgZW5hYmxlQ2FjaGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBlbnZpcm9ubWVudE5hbWVUb0VuZHBvaW50QXBpID0gJ2VuZHBvaW50QXBpJyxcbiAgICBpc01vY2t1cCA9IGZhbHNlXG4gICkge1xuICAgIGtvYWxhU2VydmljZS5hcGlVcmwgPSBLb2FsYUVudmlyb25tZW50LmVudmlyb25tZW50Py5bZW52aXJvbm1lbnROYW1lVG9FbmRwb2ludEFwaV07XG4gICAga29hbGFTZXJ2aWNlLmlzTW9ja3VwID0gaXNNb2NrdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsKGZpbHRlcj86IEJlaGF2aW9yU3ViamVjdDxhbnk+IHwgYW55KSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxHZXRBbGxUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCwgdGhpcy5nZXRQYXJhbXMoZmlsdGVyKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QnlJZChpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxFbnRpdHlUeXBlPignZ2V0JywgdGhpcy5lbmRwb2ludCArICcvJyArIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRCeVNvbWV0aGluZzxUeXBlPihzb21ldGhpbmc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8VHlwZT4oJ2dldCcsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBzb21ldGhpbmcpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoZGF0YTogRGF0YVR5cGUsIGlkPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oXG4gICAgICAoaWQgPyAncHV0JyA6ICdwb3N0JyksXG4gICAgICBgJHt0aGlzLmVuZHBvaW50fSR7KGlkID8gYC8ke2lkfWAgOiAnJyl9YCxcbiAgICAgIGRhdGFcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMua29hbGFTZXJ2aWNlLnJlcXVlc3Q8S29hbGFSZXNwb25zZUludGVyZmFjZT4oJ2RlbGV0ZScsIHRoaXMuZW5kcG9pbnQgKyAnLycgKyBpZClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxSZXF1ZXN0cygpIHtcbiAgICBhd2FpdCB0aGlzLmtvYWxhU2VydmljZS5jYW5jZWxSZXF1ZXN0cygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBhcmFtcyhwYXJhbXM/OiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IGFueSkge1xuICAgIGxldCBmaWx0ZXIgPSB7fSBhcyBhbnk7XG4gICAgaWYgKHBhcmFtcyBpbnN0YW5jZW9mIEJlaGF2aW9yU3ViamVjdCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihmaWx0ZXIsIHBhcmFtcz8uZ2V0VmFsdWUoKSA/PyB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oZmlsdGVyLCBwYXJhbXMgPz8ge30pO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBmaWx0ZXIgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnc29ydCcpICYmXG4gICAgICBmaWx0ZXIuaGFzT3duUHJvcGVydHkoJ29yZGVyJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgnbGltaXQnKSAmJlxuICAgICAgZmlsdGVyLmhhc093blByb3BlcnR5KCdwYWdlJykgJiZcbiAgICAgIGZpbHRlci5oYXNPd25Qcm9wZXJ0eSgncGFyYW1zJylcbiAgICApIHtcbiAgICAgIE9iamVjdC5rZXlzKGZpbHRlci5wYXJhbXMpLmZvckVhY2goaW5kZXhOYW1lID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGAke2ZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXX1gID09PSAnTmFOJyB8fFxuICAgICAgICAgIGZpbHRlci5wYXJhbXNbaW5kZXhOYW1lXSA9PT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBmaWx0ZXIucGFyYW1zW2luZGV4TmFtZV0gPSAnJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ga29hbGEoe30pXG4gICAgICAgIC5vYmplY3QoKVxuICAgICAgICAubWVyZ2UoZmlsdGVyLnBhcmFtcylcbiAgICAgICAgLm1lcmdlKHtcbiAgICAgICAgICBzb3J0OiBmaWx0ZXIuc29ydCxcbiAgICAgICAgICBvcmRlcjogZmlsdGVyLm9yZGVyLFxuICAgICAgICAgIGxpbWl0OiBmaWx0ZXIubGltaXQsXG4gICAgICAgICAgcGFnZTogZmlsdGVyLnBhZ2VcbiAgICAgICAgfSlcbiAgICAgICAgLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlciA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3Q8VD4obWV0aG9kOiBBcGlSZXF1ZXN0ZXJUeXBlLCB1cmw6IHN0cmluZywgZGF0YTogYW55ID0ge30pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLnN0YXJ0Q2FjaGUodXJsKTtcbiAgICByZXR1cm4gdGhpcy5rb2FsYVNlcnZpY2VcbiAgICAgICAgICAgICAgIC5yZXF1ZXN0PFQ+KG1ldGhvZCwgdXJsLCBkYXRhKVxuICAgICAgICAgICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ2FjaGUpIEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUuc2V0SW5DYWNoZSh7bmFtZTogdXJsLCBkYXRhOiByZXNwb25zZX0pO1xuICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0Q2FjaGUoZW5kcG9pbnQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmVuYWJsZUNhY2hlICYmIEtvYWxhQXBpUmVxdWVzdGVyQ2FjaGUuaGFzQ2FjaGUoZW5kcG9pbnQpKSB7XG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8R2V0QWxsVHlwZT4ob2JzZXJ2ZSA9PiB7XG4gICAgICAgIG9ic2VydmUubmV4dChLb2FsYUFwaVJlcXVlc3RlckNhY2hlLmdldENhY2hlKGVuZHBvaW50KSk7XG4gICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { koala } from "@koalarx/utils";
2
+ export class KoalaApiRequesterCache {
3
+ static setInCache(cache) {
4
+ const index = koala(this.cache).array().getIndex('name', cache.name);
5
+ if (index >= 0) {
6
+ this.cache[index] = cache;
7
+ }
8
+ else {
9
+ this.cache.push(cache);
10
+ }
11
+ }
12
+ static getCache(name) {
13
+ return this.cache.find(item => item.name === name)?.data;
14
+ }
15
+ static hasCache(name) {
16
+ return !!this.getCache(name);
17
+ }
18
+ }
19
+ KoalaApiRequesterCache.cache = [];
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEuYXBpLXJlcXVlc3Rlci5jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9hcGktcmVxdWVzdGVyL2tvYWxhLmFwaS1yZXF1ZXN0ZXIuY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3ZDLE1BQU0sT0FBTyxzQkFBc0I7SUFHMUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFxQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJFLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFJLElBQVk7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDakMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOztBQWxCYyw0QkFBSyxHQUFxQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtvYWxhQ2FjaGVEYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkYXRhOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBLb2FsYUFwaVJlcXVlc3RlckNhY2hlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGU6IEtvYWxhQ2FjaGVEYXRhW10gPSBbXTtcblxuICBwdWJsaWMgc3RhdGljIHNldEluQ2FjaGUoY2FjaGU6IEtvYWxhQ2FjaGVEYXRhKSB7XG4gICAgY29uc3QgaW5kZXggPSBrb2FsYSh0aGlzLmNhY2hlKS5hcnJheSgpLmdldEluZGV4KCduYW1lJywgY2FjaGUubmFtZSk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5jYWNoZVtpbmRleF0gPSBjYWNoZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWNoZS5wdXNoKGNhY2hlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldENhY2hlPFQ+KG5hbWU6IHN0cmluZyk6IFQge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IG5hbWUpPy5kYXRhO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNDYWNoZShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldENhY2hlKG5hbWUpO1xuICB9XG59XG4iXX0=
@@ -1273,22 +1273,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1273
1273
  args: [{ providedIn: "root" }]
1274
1274
  }], ctorParameters: function () { return [{ type: i1$2.HttpClient }, { type: KoalaOAuth2Service }]; } });
1275
1275
 
1276
+ class KoalaApiRequesterCache {
1277
+ static setInCache(cache) {
1278
+ const index = koala(this.cache).array().getIndex('name', cache.name);
1279
+ if (index >= 0) {
1280
+ this.cache[index] = cache;
1281
+ }
1282
+ else {
1283
+ this.cache.push(cache);
1284
+ }
1285
+ }
1286
+ static getCache(name) {
1287
+ var _a;
1288
+ return (_a = this.cache.find(item => item.name === name)) === null || _a === void 0 ? void 0 : _a.data;
1289
+ }
1290
+ static hasCache(name) {
1291
+ return !!this.getCache(name);
1292
+ }
1293
+ }
1294
+ KoalaApiRequesterCache.cache = [];
1295
+
1276
1296
  class KoalaApiRequesterBase {
1277
- constructor(koalaService, endpoint, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
1297
+ constructor(koalaService, endpoint, enableCache = false, environmentNameToEndpointApi = 'endpointApi', isMockup = false) {
1278
1298
  var _a;
1279
1299
  this.koalaService = koalaService;
1280
1300
  this.endpoint = endpoint;
1301
+ this.enableCache = enableCache;
1281
1302
  koalaService.apiUrl = (_a = KoalaEnvironment.environment) === null || _a === void 0 ? void 0 : _a[environmentNameToEndpointApi];
1282
1303
  koalaService.isMockup = isMockup;
1283
1304
  }
1284
1305
  getAll(filter) {
1285
- return this.koalaService.request('get', this.endpoint, this.getParams(filter));
1306
+ return this.request('get', this.endpoint, this.getParams(filter));
1286
1307
  }
1287
1308
  getById(id) {
1288
- return this.koalaService.request('get', this.endpoint + '/' + id);
1309
+ return this.request('get', this.endpoint + '/' + id);
1289
1310
  }
1290
1311
  getBySomething(something) {
1291
- return this.koalaService.request('get', this.endpoint + '/' + something);
1312
+ return this.request('get', this.endpoint + '/' + something);
1292
1313
  }
1293
1314
  save(data, id) {
1294
1315
  return this.koalaService.request((id ? 'put' : 'post'), `${this.endpoint}${(id ? `/${id}` : '')}`, data);
@@ -1337,6 +1358,24 @@ class KoalaApiRequesterBase {
1337
1358
  return filter !== null && filter !== void 0 ? filter : null;
1338
1359
  });
1339
1360
  }
1361
+ request(method, url, data = {}) {
1362
+ this.startCache(url);
1363
+ return this.koalaService
1364
+ .request(method, url, data)
1365
+ .pipe(map(response => {
1366
+ if (this.enableCache)
1367
+ KoalaApiRequesterCache.setInCache({ name: url, data: response });
1368
+ return response;
1369
+ }));
1370
+ }
1371
+ startCache(endpoint) {
1372
+ if (this.enableCache && KoalaApiRequesterCache.hasCache(endpoint)) {
1373
+ return new Observable(observe => {
1374
+ observe.next(KoalaApiRequesterCache.getCache(endpoint));
1375
+ observe.complete();
1376
+ });
1377
+ }
1378
+ }
1340
1379
  }
1341
1380
 
1342
1381
  class KoalaRequestService {