@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.
- package/core/esm2020/lib/services/api-requester/koala.api-requester.base.mjs +27 -6
- package/core/esm2020/lib/services/api-requester/koala.api-requester.cache.mjs +20 -0
- package/core/fesm2015/koalarx-ui-core.mjs +43 -4
- package/core/fesm2015/koalarx-ui-core.mjs.map +1 -1
- package/core/fesm2020/koalarx-ui-core.mjs +42 -4
- package/core/fesm2020/koalarx-ui-core.mjs.map +1 -1
- package/core/lib/services/api-requester/koala.api-requester.base.d.ts +11 -8
- package/core/lib/services/api-requester/koala.api-requester.cache.d.ts +10 -0
- package/list/esm2020/lib/koala.list-config.interface.mjs +1 -1
- package/list/esm2020/lib/list-builder/list.builder.mjs +9 -1
- package/list/esm2020/lib/list.abstract.mjs +2 -5
- package/list/esm2020/lib/list.component.mjs +2 -1
- package/list/fesm2015/koalarx-ui-list.mjs +12 -5
- package/list/fesm2015/koalarx-ui-list.mjs.map +1 -1
- package/list/fesm2020/koalarx-ui-list.mjs +10 -4
- package/list/fesm2020/koalarx-ui-list.mjs.map +1 -1
- package/list/lib/koala.list-config.interface.d.ts +1 -0
- package/list/lib/list-builder/list.builder.d.ts +2 -0
- package/package.json +1 -1
|
@@ -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.
|
|
15
|
+
return this.request('get', this.endpoint, this.getParams(filter));
|
|
13
16
|
}
|
|
14
17
|
getById(id) {
|
|
15
|
-
return this.
|
|
18
|
+
return this.request('get', this.endpoint + '/' + id);
|
|
16
19
|
}
|
|
17
20
|
getBySomething(something) {
|
|
18
|
-
return this.
|
|
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,
|
|
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.
|
|
1306
|
+
return this.request('get', this.endpoint, this.getParams(filter));
|
|
1286
1307
|
}
|
|
1287
1308
|
getById(id) {
|
|
1288
|
-
return this.
|
|
1309
|
+
return this.request('get', this.endpoint + '/' + id);
|
|
1289
1310
|
}
|
|
1290
1311
|
getBySomething(something) {
|
|
1291
|
-
return this.
|
|
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 {
|