@mediusinc/mng-commons-data-api-class 5.0.0-rc.0
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/README.md +16 -0
- package/esm2022/index.mjs +9 -0
- package/esm2022/lib/models/query-result.model.mjs +24 -0
- package/esm2022/lib/serder/object-serializer.mjs +184 -0
- package/esm2022/lib/services/api.abstract.service.mjs +55 -0
- package/esm2022/lib/services/crud-api.abstract.service.mjs +82 -0
- package/esm2022/lib/services/get-all-api.abstract.service.mjs +49 -0
- package/esm2022/mediusinc-mng-commons-data-api-class.mjs +5 -0
- package/esm2022/tableview/index.mjs +3 -0
- package/esm2022/tableview/mediusinc-mng-commons-data-api-class-tableview.mjs +5 -0
- package/esm2022/tableview/tableview-crud-create.mjs +40 -0
- package/esm2022/tableview/tableview-crud.data-provider.mjs +50 -0
- package/esm2022/v1/helpers/query-param-convert.mjs +103 -0
- package/esm2022/v1/helpers/tableview-crud-create.mjs +21 -0
- package/esm2022/v1/index.mjs +21 -0
- package/esm2022/v1/mediusinc-mng-commons-data-api-class-v1.mjs +5 -0
- package/esm2022/v1/models/builders/query-param.builder.mjs +83 -0
- package/esm2022/v1/models/filter-match-type.model.mjs +27 -0
- package/esm2022/v1/models/filter-param.model.mjs +33 -0
- package/esm2022/v1/models/query-mode.model.mjs +18 -0
- package/esm2022/v1/models/query-param.model.mjs +68 -0
- package/esm2022/v1/models/query-result.model.mjs +24 -0
- package/esm2022/v1/provide.mjs +40 -0
- package/esm2022/v1/services/api.abstract.service.mjs +70 -0
- package/esm2022/v1/services/crud-api.abstract.service.mjs +83 -0
- package/esm2022/v1/services/get-all-api.abstract.service.mjs +38 -0
- package/esm2022/v1/tableview/tableview-crud.data-provider.mjs +50 -0
- package/esm2022/v1/utils/query-param-map.util.mjs +57 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs +95 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-tableview.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs +698 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class-v1.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class.mjs +396 -0
- package/fesm2022/mediusinc-mng-commons-data-api-class.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/models/query-result.model.d.ts +13 -0
- package/lib/serder/object-serializer.d.ts +26 -0
- package/lib/services/api.abstract.service.d.ts +22 -0
- package/lib/services/crud-api.abstract.service.d.ts +25 -0
- package/lib/services/get-all-api.abstract.service.d.ts +14 -0
- package/openapi/model.mustache +83 -0
- package/openapi/models.mustache +6 -0
- package/package.json +41 -0
- package/tableview/README.md +10 -0
- package/tableview/index.d.ts +2 -0
- package/tableview/tableview-crud-create.d.ts +40 -0
- package/tableview/tableview-crud.data-provider.d.ts +16 -0
- package/v1/README.md +12 -0
- package/v1/helpers/query-param-convert.d.ts +23 -0
- package/v1/helpers/tableview-crud-create.d.ts +23 -0
- package/v1/index.d.ts +14 -0
- package/v1/models/builders/query-param.builder.d.ts +36 -0
- package/v1/models/filter-match-type.model.d.ts +25 -0
- package/v1/models/filter-param.model.d.ts +23 -0
- package/v1/models/query-mode.model.d.ts +16 -0
- package/v1/models/query-param.model.d.ts +31 -0
- package/v1/models/query-result.model.d.ts +24 -0
- package/v1/provide.d.ts +9 -0
- package/v1/services/api.abstract.service.d.ts +36 -0
- package/v1/services/crud-api.abstract.service.d.ts +37 -0
- package/v1/services/get-all-api.abstract.service.d.ts +30 -0
- package/v1/tableview/tableview-crud.data-provider.d.ts +29 -0
- package/v1/utils/query-param-map.util.d.ts +22 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { ObjectSerializer } from '@mediusinc/mng-commons-data-api-class';
|
|
4
|
+
/**
|
|
5
|
+
* This is an abstract class that provides base functionality for API services.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated
|
|
8
|
+
*/
|
|
9
|
+
export class ACommonsBaseV1ApiService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.objectSerializer = ObjectSerializer.get();
|
|
12
|
+
this.http = inject(HttpClient);
|
|
13
|
+
}
|
|
14
|
+
getUrl(...pathSegments) {
|
|
15
|
+
let baseUrl = this.getBasePath();
|
|
16
|
+
if (baseUrl.endsWith('/')) {
|
|
17
|
+
baseUrl = baseUrl.substring(0, baseUrl.length - 1);
|
|
18
|
+
}
|
|
19
|
+
const serviceBasePath = this.getServiceBasePath();
|
|
20
|
+
let path = [serviceBasePath, ...pathSegments].filter(s => s && s.length).join('/');
|
|
21
|
+
// omit first and last '/'
|
|
22
|
+
if (path.startsWith('/')) {
|
|
23
|
+
path = path.substring(1);
|
|
24
|
+
}
|
|
25
|
+
if (path.endsWith('/')) {
|
|
26
|
+
path = path.substring(0, path.length - 1);
|
|
27
|
+
}
|
|
28
|
+
// replace any double '//' from path that could come from joining paths
|
|
29
|
+
path = path.replace('//', '/');
|
|
30
|
+
return `${baseUrl}/${path}`;
|
|
31
|
+
}
|
|
32
|
+
serializeQueryParam(queryParam, type = 'QueryParam') {
|
|
33
|
+
return this.objectSerializer.serialize(queryParam, type);
|
|
34
|
+
}
|
|
35
|
+
deserializeQueryResult(item, qrType) {
|
|
36
|
+
return this.deserializeClass(item, qrType);
|
|
37
|
+
}
|
|
38
|
+
deserializeClass(item, type) {
|
|
39
|
+
return this.objectSerializer.deserializeClass(item, type);
|
|
40
|
+
}
|
|
41
|
+
deserializeClassArray(item, type) {
|
|
42
|
+
return this.objectSerializer.deserializeClassArray(item, type);
|
|
43
|
+
}
|
|
44
|
+
serializeClass(item, type) {
|
|
45
|
+
return this.objectSerializer.serializeClass(item, type);
|
|
46
|
+
}
|
|
47
|
+
serializeClassArray(item, type) {
|
|
48
|
+
return this.objectSerializer.serializeClassArray(item, type);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Represents an abstract base class for the ACommonsV1ApiService.
|
|
53
|
+
*
|
|
54
|
+
* @typeparam T The main type of data to be handled by the service.
|
|
55
|
+
*
|
|
56
|
+
* @deprecated
|
|
57
|
+
*/
|
|
58
|
+
export class ACommonsV1ApiService extends ACommonsBaseV1ApiService {
|
|
59
|
+
constructor(type) {
|
|
60
|
+
super();
|
|
61
|
+
this.type = type;
|
|
62
|
+
}
|
|
63
|
+
deserialize(item) {
|
|
64
|
+
return this.deserializeClass(item, this.type);
|
|
65
|
+
}
|
|
66
|
+
serialize(item) {
|
|
67
|
+
return this.serializeClass(item, this.type);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmFic3RyYWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92MS9zcmMvc2VydmljZXMvYXBpLmFic3RyYWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFLdkU7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0Isd0JBQXdCO0lBSTFDO1FBSG1CLHFCQUFnQixHQUFxQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUkzRSxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBTVMsTUFBTSxDQUFDLEdBQUcsWUFBMkI7UUFDM0MsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN0RDtRQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xELElBQUksSUFBSSxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkYsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELHVFQUF1RTtRQUN2RSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsVUFBNEIsRUFBRSxJQUFJLEdBQUcsWUFBWTtRQUMzRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxzQkFBc0IsQ0FBSyxJQUFTLEVBQUUsTUFBcUI7UUFDakUsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFUyxnQkFBZ0IsQ0FBSSxJQUFTLEVBQUUsSUFBa0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFUyxxQkFBcUIsQ0FBSSxJQUFTLEVBQUUsSUFBa0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFUyxjQUFjLENBQUksSUFBTyxFQUFFLElBQWtCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVTLG1CQUFtQixDQUFJLElBQWMsRUFBRSxJQUFrQjtRQUMvRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNKO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFnQixvQkFBd0IsU0FBUSx3QkFBd0I7SUFDMUUsWUFBZ0MsSUFBa0I7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEb0IsU0FBSSxHQUFKLElBQUksQ0FBYztJQUVsRCxDQUFDO0lBRVMsV0FBVyxDQUFDLElBQVM7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMsU0FBUyxDQUFDLElBQU87UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JqZWN0U2VyaWFsaXplcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy1kYXRhLWFwaS1jbGFzcyc7XG5pbXBvcnQge0NsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcGFyYW0ubW9kZWwnO1xuXG4vKipcbiAqIFRoaXMgaXMgYW4gYWJzdHJhY3QgY2xhc3MgdGhhdCBwcm92aWRlcyBiYXNlIGZ1bmN0aW9uYWxpdHkgZm9yIEFQSSBzZXJ2aWNlcy5cbiAqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQUNvbW1vbnNCYXNlVjFBcGlTZXJ2aWNlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb2JqZWN0U2VyaWFsaXplcjogT2JqZWN0U2VyaWFsaXplciA9IE9iamVjdFNlcmlhbGl6ZXIuZ2V0KCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQ7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QmFzZVBhdGgoKTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldFNlcnZpY2VCYXNlUGF0aCgpOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgcHJvdGVjdGVkIGdldFVybCguLi5wYXRoU2VnbWVudHM6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcge1xuICAgICAgICBsZXQgYmFzZVVybCA9IHRoaXMuZ2V0QmFzZVBhdGgoKTtcbiAgICAgICAgaWYgKGJhc2VVcmwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgYmFzZVVybCA9IGJhc2VVcmwuc3Vic3RyaW5nKDAsIGJhc2VVcmwubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VydmljZUJhc2VQYXRoID0gdGhpcy5nZXRTZXJ2aWNlQmFzZVBhdGgoKTtcbiAgICAgICAgbGV0IHBhdGggPSBbc2VydmljZUJhc2VQYXRoLCAuLi5wYXRoU2VnbWVudHNdLmZpbHRlcihzID0+IHMgJiYgcy5sZW5ndGgpLmpvaW4oJy8nKTtcbiAgICAgICAgLy8gb21pdCBmaXJzdCBhbmQgbGFzdCAnLydcbiAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGguZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHBhdGgubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmVwbGFjZSBhbnkgZG91YmxlICcvLycgZnJvbSBwYXRoIHRoYXQgY291bGQgY29tZSBmcm9tIGpvaW5pbmcgcGF0aHNcbiAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnLy8nLCAnLycpO1xuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0vJHtwYXRofWA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZVF1ZXJ5UGFyYW0ocXVlcnlQYXJhbTogTWVkaXVzUXVlcnlQYXJhbSwgdHlwZSA9ICdRdWVyeVBhcmFtJykge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJpYWxpemVyLnNlcmlhbGl6ZShxdWVyeVBhcmFtLCB0eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVRdWVyeVJlc3VsdDxRUj4oaXRlbTogYW55LCBxclR5cGU6IENsYXNzVHlwZTxRUj4pOiBRUiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgcXJUeXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVDbGFzczxDPihpdGVtOiBhbnksIHR5cGU6IENsYXNzVHlwZTxDPik6IEMge1xuICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RTZXJpYWxpemVyLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplQ2xhc3NBcnJheTxDPihpdGVtOiBhbnksIHR5cGU6IENsYXNzVHlwZTxDPik6IEFycmF5PEM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0U2VyaWFsaXplci5kZXNlcmlhbGl6ZUNsYXNzQXJyYXkoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZUNsYXNzPEM+KGl0ZW06IEMsIHR5cGU6IENsYXNzVHlwZTxDPik6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplQ2xhc3MoaXRlbSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNlcmlhbGl6ZUNsYXNzQXJyYXk8Qz4oaXRlbTogQXJyYXk8Qz4sIHR5cGU6IENsYXNzVHlwZTxDPik6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdFNlcmlhbGl6ZXIuc2VyaWFsaXplQ2xhc3NBcnJheShpdGVtLCB0eXBlKTtcbiAgICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgQUNvbW1vbnNWMUFwaVNlcnZpY2UuXG4gKlxuICogQHR5cGVwYXJhbSBUIFRoZSBtYWluIHR5cGUgb2YgZGF0YSB0byBiZSBoYW5kbGVkIGJ5IHRoZSBzZXJ2aWNlLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc1YxQXBpU2VydmljZTxUPiBleHRlbmRzIEFDb21tb25zQmFzZVYxQXBpU2VydmljZSB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0eXBlOiBDbGFzc1R5cGU8VD4pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemUoaXRlbTogYW55KTogVCB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2VyaWFsaXplQ2xhc3MoaXRlbSwgdGhpcy50eXBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplKGl0ZW06IFQpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVDbGFzcyhpdGVtLCB0aGlzLnR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { ACommonsGetAllV1ApiService } from './get-all-api.abstract.service';
|
|
4
|
+
/**
|
|
5
|
+
* Abstract class for creating CRUD API service implementation.
|
|
6
|
+
*
|
|
7
|
+
* @typeparam T The type of the entity.
|
|
8
|
+
* @typeparam QRT The type of the query result.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated
|
|
11
|
+
*/
|
|
12
|
+
export class ACommonsCrudV1ApiService extends ACommonsGetAllV1ApiService {
|
|
13
|
+
constructor(type, queryResultType) {
|
|
14
|
+
super(type, queryResultType);
|
|
15
|
+
}
|
|
16
|
+
createPost(item, params) {
|
|
17
|
+
const url = this.getUrl(this.getCreatePostPath(item));
|
|
18
|
+
return this.http
|
|
19
|
+
.post(url, this.serialize(item), {
|
|
20
|
+
withCredentials: true,
|
|
21
|
+
observe: 'body',
|
|
22
|
+
reportProgress: false,
|
|
23
|
+
params: params
|
|
24
|
+
})
|
|
25
|
+
.pipe(map(res => this.deserialize(res)));
|
|
26
|
+
}
|
|
27
|
+
getByIdGet(id, params, locale) {
|
|
28
|
+
const url = this.getUrl(this.getGetByIdGetPath(id));
|
|
29
|
+
if (params && locale) {
|
|
30
|
+
params = params.set('lang', locale);
|
|
31
|
+
}
|
|
32
|
+
else if (locale) {
|
|
33
|
+
params = new HttpParams().set('lang', locale);
|
|
34
|
+
}
|
|
35
|
+
return this.http
|
|
36
|
+
.get(url, {
|
|
37
|
+
withCredentials: true,
|
|
38
|
+
observe: 'body',
|
|
39
|
+
reportProgress: false,
|
|
40
|
+
params: params
|
|
41
|
+
})
|
|
42
|
+
.pipe(map(res => this.deserialize(res)));
|
|
43
|
+
}
|
|
44
|
+
updatePut(id, item, params) {
|
|
45
|
+
const url = this.getUrl(this.getUpdatePutPath(id, item));
|
|
46
|
+
return this.http
|
|
47
|
+
.put(url, this.serialize(item), {
|
|
48
|
+
withCredentials: true,
|
|
49
|
+
observe: 'body',
|
|
50
|
+
reportProgress: false,
|
|
51
|
+
params: params
|
|
52
|
+
})
|
|
53
|
+
.pipe(map(res => this.deserialize(res)));
|
|
54
|
+
}
|
|
55
|
+
removeDelete(id, item, params) {
|
|
56
|
+
const url = this.getUrl(this.getRemoveDeletePath(id, item));
|
|
57
|
+
return this.http
|
|
58
|
+
.request('delete', url, {
|
|
59
|
+
withCredentials: true,
|
|
60
|
+
observe: 'body',
|
|
61
|
+
reportProgress: false,
|
|
62
|
+
body: item ? this.serialize(item) : undefined,
|
|
63
|
+
params: params
|
|
64
|
+
})
|
|
65
|
+
.pipe(map(res => (res ? this.deserialize(res) : null)));
|
|
66
|
+
}
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
68
|
+
getCreatePostPath(item) {
|
|
69
|
+
return '';
|
|
70
|
+
}
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
72
|
+
getUpdatePutPath(id, item) {
|
|
73
|
+
return `/${id}`;
|
|
74
|
+
}
|
|
75
|
+
getGetByIdGetPath(id) {
|
|
76
|
+
return `/${id}`;
|
|
77
|
+
}
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
79
|
+
getRemoveDeletePath(id, item) {
|
|
80
|
+
return `/${id}`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy9zZXJ2aWNlcy9jcnVkLWFwaS5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLbkMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFtQjFFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQWdCLHdCQUFnRSxTQUFRLDBCQUFrQztJQUM1SCxZQUFzQixJQUFrQixFQUFFLGVBQStCO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFPLEVBQUUsTUFBbUI7UUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsSUFBSSxDQUFVLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sVUFBVSxDQUFDLEVBQVUsRUFBRSxNQUFtQixFQUFFLE1BQWU7UUFDOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FB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XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0NsYXNzVHlwZSwgSWRUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7QUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2V9IGZyb20gJy4vZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIGludGVyZmFjZSBmb3IgQ1JVRCBvcGVyYXRpb24gb24gYSByZXNvdXJjZS5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgVGhlIG1haW4gdHlwZSBvZiBkYXRhIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHNlcnZpY2UuXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8VD4ge1xuICAgIGNyZWF0ZVBvc3Q/KGl0ZW06IFQsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+O1xuXG4gICAgZ2V0QnlJZEdldD8oaWQ6IElkVHlwZSwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPjtcblxuICAgIHVwZGF0ZVB1dD8oaWQ6IElkVHlwZSwgaXRlbTogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD47XG5cbiAgICByZW1vdmVEZWxldGU/KGlkOiBJZFR5cGUsIGl0ZW0/OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD47XG59XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGNyZWF0aW5nIENSVUQgQVBJIHNlcnZpY2UgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHR5cGVwYXJhbSBUIFRoZSB0eXBlIG9mIHRoZSBlbnRpdHkuXG4gKiBAdHlwZXBhcmFtIFFSVCBUaGUgdHlwZSBvZiB0aGUgcXVlcnkgcmVzdWx0LlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8VCwgUVJUIGV4dGVuZHMgTWVkaXVzUXVlcnlSZXN1bHQ8YW55Pj4gZXh0ZW5kcyBBQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxULCBRUlQ+IGltcGxlbWVudHMgSUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlPFQ+IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IodHlwZTogQ2xhc3NUeXBlPFQ+LCBxdWVyeVJlc3VsdFR5cGU6IENsYXNzVHlwZTxRUlQ+KSB7XG4gICAgICAgIHN1cGVyKHR5cGUsIHF1ZXJ5UmVzdWx0VHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZVBvc3QoaXRlbTogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmdldFVybCh0aGlzLmdldENyZWF0ZVBvc3RQYXRoKGl0ZW0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3Q8dW5rbm93bj4odXJsLCB0aGlzLnNlcmlhbGl6ZShpdGVtKSwge1xuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUobWFwKHJlcyA9PiB0aGlzLmRlc2VyaWFsaXplKHJlcykpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnlJZEdldChpZDogSWRUeXBlLCBwYXJhbXM/OiBIdHRwUGFyYW1zLCBsb2NhbGU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRCeUlkR2V0UGF0aChpZCkpO1xuICAgICAgICBpZiAocGFyYW1zICYmIGxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH0gZWxzZSBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnbGFuZycsIGxvY2FsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDx1bmtub3duPih1cmwsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVB1dChpZDogSWRUeXBlLCBpdGVtOiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0VXJsKHRoaXMuZ2V0VXBkYXRlUHV0UGF0aChpZCwgaXRlbSkpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucHV0PHVua25vd24+KHVybCwgdGhpcy5zZXJpYWxpemUoaXRlbSksIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZShyZXMpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZURlbGV0ZShpZDogSWRUeXBlLCBpdGVtPzogVCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRSZW1vdmVEZWxldGVQYXRoKGlkLCBpdGVtKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5yZXF1ZXN0PHVua25vd24+KCdkZWxldGUnLCB1cmwsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib2R5OiBpdGVtID8gdGhpcy5zZXJpYWxpemUoaXRlbSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShtYXAocmVzID0+IChyZXMgPyB0aGlzLmRlc2VyaWFsaXplKHJlcykgOiBudWxsKSkpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgZ2V0Q3JlYXRlUG9zdFBhdGgoaXRlbTogVCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIGdldFVwZGF0ZVB1dFBhdGgoaWQ6IElkVHlwZSwgaXRlbTogVCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgLyR7aWR9YDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0R2V0QnlJZEdldFBhdGgoaWQ6IElkVHlwZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgLyR7aWR9YDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIGdldFJlbW92ZURlbGV0ZVBhdGgoaWQ6IElkVHlwZSwgaXRlbT86IFQpIHtcbiAgICAgICAgcmV0dXJuIGAvJHtpZH1gO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { ACommonsV1ApiService } from './api.abstract.service';
|
|
4
|
+
/**
|
|
5
|
+
* An abstract class representing a service for retrieving all obsolete entities.
|
|
6
|
+
*
|
|
7
|
+
* @typeparam T The main type of data to be handled by the service.
|
|
8
|
+
* @typeparam QRT The type of the query result in get all operation.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated
|
|
11
|
+
*/
|
|
12
|
+
export class ACommonsGetAllV1ApiService extends ACommonsV1ApiService {
|
|
13
|
+
constructor(type, queryResultType) {
|
|
14
|
+
super(type);
|
|
15
|
+
this.queryResultType = queryResultType;
|
|
16
|
+
}
|
|
17
|
+
getAllPost(queryParamBody, params, locale) {
|
|
18
|
+
const url = this.getUrl(this.getGetAllPostPath());
|
|
19
|
+
if (params && locale) {
|
|
20
|
+
params = params.set('lang', locale);
|
|
21
|
+
}
|
|
22
|
+
else if (locale) {
|
|
23
|
+
params = new HttpParams().set('lang', locale);
|
|
24
|
+
}
|
|
25
|
+
return this.http
|
|
26
|
+
.post(url, queryParamBody ? this.serializeQueryParam(queryParamBody) : undefined, {
|
|
27
|
+
withCredentials: true,
|
|
28
|
+
observe: 'body',
|
|
29
|
+
reportProgress: false,
|
|
30
|
+
params: params
|
|
31
|
+
})
|
|
32
|
+
.pipe(map(res => this.deserializeQueryResult(res, this.queryResultType)));
|
|
33
|
+
}
|
|
34
|
+
getGetAllPostPath() {
|
|
35
|
+
return '/get-all';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1hcGkuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy9zZXJ2aWNlcy9nZXQtYWxsLWFwaS5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFhNUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBZ0IsMEJBQWtFLFNBQVEsb0JBQXVCO0lBQ25ILFlBQ0ksSUFBa0IsRUFDUixlQUErQjtRQUV6QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFGRixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7SUFHN0MsQ0FBQztJQUVNLFVBQVUsQ0FBQyxjQUFpQyxFQUFFLE1BQW1CLEVBQUUsTUFBZTtRQUNyRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN2QzthQUFNLElBQUksTUFBTSxFQUFFO1lBQ2YsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxJQUFJLENBQU0sR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDbkYsZUFBZSxFQUFFLElBQUk7WUFDckIsT0FBTyxFQUFFLE1BQU07WUFDZixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmltcG9ydCB7TWVkaXVzUXVlcnlQYXJhbX0gZnJvbSAnLi4vbW9kZWxzL3F1ZXJ5LXBhcmFtLm1vZGVsJztcbmltcG9ydCB7TWVkaXVzUXVlcnlSZXN1bHR9IGZyb20gJy4uL21vZGVscy9xdWVyeS1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtBQ29tbW9uc1YxQXBpU2VydmljZX0gZnJvbSAnLi9hcGkuYWJzdHJhY3Quc2VydmljZSc7XG5cbi8qKlxuICogQSBzZXJ2aWNlIGludGVyZmFjZSBmb3IgZ2V0dGluZyBwYWdpbmF0ZWQgZGF0YSByZXN1bHRzIHVzaW5nIFBPU1QgbWV0aG9kLlxuICpcbiAqIEB0eXBlcGFyYW0gUVJUIFRoZSB0eXBlIG9mIHRoZSBxdWVyeSByZXN1bHQgaW4gZ2V0IGFsbCBvcGVyYXRpb24uXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxRUlQgZXh0ZW5kcyBNZWRpdXNRdWVyeVJlc3VsdDxhbnk+PiB7XG4gICAgZ2V0QWxsUG9zdChxdWVyeVBhcmFtQm9keT86IE1lZGl1c1F1ZXJ5UGFyYW0sIHBhcmFtcz86IEh0dHBQYXJhbXMsIGxvY2FsZT86IHN0cmluZyk6IE9ic2VydmFibGU8UVJUPjtcbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBjbGFzcyByZXByZXNlbnRpbmcgYSBzZXJ2aWNlIGZvciByZXRyaWV2aW5nIGFsbCBvYnNvbGV0ZSBlbnRpdGllcy5cbiAqXG4gKiBAdHlwZXBhcmFtIFQgVGhlIG1haW4gdHlwZSBvZiBkYXRhIHRvIGJlIGhhbmRsZWQgYnkgdGhlIHNlcnZpY2UuXG4gKiBAdHlwZXBhcmFtIFFSVCBUaGUgdHlwZSBvZiB0aGUgcXVlcnkgcmVzdWx0IGluIGdldCBhbGwgb3BlcmF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxULCBRUlQgZXh0ZW5kcyBNZWRpdXNRdWVyeVJlc3VsdDxhbnk+PiBleHRlbmRzIEFDb21tb25zVjFBcGlTZXJ2aWNlPFQ+IGltcGxlbWVudHMgSUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2U8UVJUPiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8VD4sXG4gICAgICAgIHByb3RlY3RlZCBxdWVyeVJlc3VsdFR5cGU6IENsYXNzVHlwZTxRUlQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBbGxQb3N0KHF1ZXJ5UGFyYW1Cb2R5PzogTWVkaXVzUXVlcnlQYXJhbSwgcGFyYW1zPzogSHR0cFBhcmFtcywgbG9jYWxlPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxRUlQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmwodGhpcy5nZXRHZXRBbGxQb3N0UGF0aCgpKTtcbiAgICAgICAgaWYgKHBhcmFtcyAmJiBsb2NhbGUpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2xhbmcnLCBsb2NhbGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2xhbmcnLCBsb2NhbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5wb3N0PGFueT4odXJsLCBxdWVyeVBhcmFtQm9keSA/IHRoaXMuc2VyaWFsaXplUXVlcnlQYXJhbShxdWVyeVBhcmFtQm9keSkgOiB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gdGhpcy5kZXNlcmlhbGl6ZVF1ZXJ5UmVzdWx0KHJlcywgdGhpcy5xdWVyeVJlc3VsdFR5cGUpKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEdldEFsbFBvc3RQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnL2dldC1hbGwnO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
import { ModelUtil } from '@mediusinc/mng-commons/model';
|
|
3
|
+
import { TableviewDataProviderInst } from '@mediusinc/mng-commons/tableview/api';
|
|
4
|
+
import { toV1QueryParam } from '../helpers/query-param-convert';
|
|
5
|
+
import { MediusQueryParamBuilder } from '../models/builders/query-param.builder';
|
|
6
|
+
import { MediusFilterMatchType } from '../models/filter-match-type.model';
|
|
7
|
+
/**
|
|
8
|
+
* A data provider for a CRUD table view that uses an obsolete version 1 API service.
|
|
9
|
+
*
|
|
10
|
+
* @typeparam Model - The type of the data model.
|
|
11
|
+
* @typeparam Service - The type of the API service.
|
|
12
|
+
* @typeparam Sorts - The type for available sort keys on get all operation.
|
|
13
|
+
* @typeparam Filters - The type for available sort keys on get all operation.
|
|
14
|
+
*
|
|
15
|
+
* @deprecated
|
|
16
|
+
*/
|
|
17
|
+
export class TableviewCrudV1DataProviderInst extends TableviewDataProviderInst {
|
|
18
|
+
constructor(type, serviceType, idPropertyName, useGetAllForFetch = false) {
|
|
19
|
+
super(type, serviceType);
|
|
20
|
+
this.withGetAll((params, service, locale) => service.getAllPost(toV1QueryParam(params), undefined, locale).pipe(map(res => ({ data: res.pageData ?? [], totalCount: res.allDataCount ?? res.pageData?.length ?? 0 }))));
|
|
21
|
+
if (useGetAllForFetch) {
|
|
22
|
+
const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';
|
|
23
|
+
this.withFetch((id, service) => {
|
|
24
|
+
const qp = MediusQueryParamBuilder.create(10, 0).withFilter(selectedIdPropertyName, id, id, MediusFilterMatchType.Equals, true).build();
|
|
25
|
+
return service.getAllPost(qp).pipe(map(res => res.pageData[0]));
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.withFetch((id, service, locale) => service.getByIdGet(id, undefined, locale));
|
|
30
|
+
}
|
|
31
|
+
this.withCreate((item, service) => service.createPost(item));
|
|
32
|
+
this.withUpdate((id, item, service) => service.updatePut(id, item));
|
|
33
|
+
this.withDelete((id, item, service) => service.removeDelete(id, item));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class TableviewCrudV1DataProvider extends TableviewCrudV1DataProviderInst {
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated
|
|
39
|
+
*/
|
|
40
|
+
static create(type, serviceType, idProperty, useGetAllForFetch = false) {
|
|
41
|
+
return TableviewCrudV1DataProvider.createUnsafe(type, serviceType, idProperty, useGetAllForFetch);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated
|
|
45
|
+
*/
|
|
46
|
+
static createUnsafe(type, serviceType, idProperty, useGetAllForFetch = false) {
|
|
47
|
+
return new TableviewCrudV1DataProviderInst(type, serviceType, idProperty, useGetAllForFetch);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWNydWQuZGF0YS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3YxL3NyYy90YWJsZXZpZXcvdGFibGV2aWV3LWNydWQuZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRS9FLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQU14RTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sK0JBS1gsU0FBUSx5QkFBc0c7SUFDNUcsWUFBc0IsSUFBc0IsRUFBRSxXQUEwQixFQUFFLGNBQXVCLEVBQUUsaUJBQWlCLEdBQUcsS0FBSztRQUN4SCxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLFlBQVksSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUssQ0FBQztRQUVGLElBQUksaUJBQWlCLEVBQUU7WUFDbkIsTUFBTSxzQkFBc0IsR0FBRyxjQUFjLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxFQUFFLEdBQXFCLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxSixPQUFPLE9BQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDeEY7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBUSxDQUFDLFNBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQVEsQ0FBQyxZQUFhLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLCtCQUF5QztJQUN0Rjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBS2xCLElBQXNCLEVBQUUsV0FBMEIsRUFBRSxVQUF3QixFQUFFLGlCQUFpQixHQUFHLEtBQUs7UUFDckcsT0FBTywyQkFBMkIsQ0FBQyxZQUFZLENBQWlDLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBS3hCLElBQXNCLEVBQUUsV0FBMEIsRUFBRSxVQUFtQixFQUFFLGlCQUFpQixHQUFHLEtBQUs7UUFDaEcsT0FBTyxJQUFJLCtCQUErQixDQUFpQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pJLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Q2xhc3NUeXBlLCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbFV0aWx9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge3RvVjFRdWVyeVBhcmFtfSBmcm9tICcuLi9oZWxwZXJzL3F1ZXJ5LXBhcmFtLWNvbnZlcnQnO1xuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vbW9kZWxzL2J1aWxkZXJzL3F1ZXJ5LXBhcmFtLmJ1aWxkZXInO1xuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGV9IGZyb20gJy4uL21vZGVscy9maWx0ZXItbWF0Y2gtdHlwZS5tb2RlbCc7XG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uL21vZGVscy9xdWVyeS1wYXJhbS5tb2RlbCc7XG5pbXBvcnQge01lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi9tb2RlbHMvcXVlcnktcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7SUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jcnVkLWFwaS5hYnN0cmFjdC5zZXJ2aWNlJztcbmltcG9ydCB7SUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2dldC1hbGwtYXBpLmFic3RyYWN0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgZGF0YSBwcm92aWRlciBmb3IgYSBDUlVEIHRhYmxlIHZpZXcgdGhhdCB1c2VzIGFuIG9ic29sZXRlIHZlcnNpb24gMSBBUEkgc2VydmljZS5cbiAqXG4gKiBAdHlwZXBhcmFtIE1vZGVsIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgbW9kZWwuXG4gKiBAdHlwZXBhcmFtIFNlcnZpY2UgLSBUaGUgdHlwZSBvZiB0aGUgQVBJIHNlcnZpY2UuXG4gKiBAdHlwZXBhcmFtIFNvcnRzIC0gVGhlIHR5cGUgZm9yIGF2YWlsYWJsZSBzb3J0IGtleXMgb24gZ2V0IGFsbCBvcGVyYXRpb24uXG4gKiBAdHlwZXBhcmFtIEZpbHRlcnMgLSBUaGUgdHlwZSBmb3IgYXZhaWxhYmxlIHNvcnQga2V5cyBvbiBnZXQgYWxsIG9wZXJhdGlvbi5cbiAqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY2xhc3MgVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxcbiAgICBNb2RlbCxcbiAgICBTZXJ2aWNlIGV4dGVuZHMgSUNvbW1vbnNDcnVkVjFBcGlTZXJ2aWNlPE1vZGVsPiAmIElDb21tb25zR2V0QWxsVjFBcGlTZXJ2aWNlPE1lZGl1c1F1ZXJ5UmVzdWx0PE1vZGVsPj4sXG4gICAgU29ydHMgPSBrZXlvZiBNb2RlbCxcbiAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWxcbj4gZXh0ZW5kcyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4ge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBzZXJ2aWNlVHlwZTogVHlwZTxTZXJ2aWNlPiwgaWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmcsIHVzZUdldEFsbEZvckZldGNoID0gZmFsc2UpIHtcbiAgICAgICAgc3VwZXIodHlwZSwgc2VydmljZVR5cGUpO1xuICAgICAgICB0aGlzLndpdGhHZXRBbGwoKHBhcmFtcywgc2VydmljZSwgbG9jYWxlKSA9PlxuICAgICAgICAgICAgc2VydmljZS5nZXRBbGxQb3N0KHRvVjFRdWVyeVBhcmFtKHBhcmFtcyksIHVuZGVmaW5lZCwgbG9jYWxlKS5waXBlKG1hcChyZXMgPT4gKHtkYXRhOiByZXMucGFnZURhdGEgPz8gW10sIHRvdGFsQ291bnQ6IHJlcy5hbGxEYXRhQ291bnQgPz8gcmVzLnBhZ2VEYXRhPy5sZW5ndGggPz8gMH0pKSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodXNlR2V0QWxsRm9yRmV0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRQcm9wZXJ0eU5hbWUgPSBpZFByb3BlcnR5TmFtZSA/PyBNb2RlbFV0aWwuZmluZElkQXR0cmlidXRlKHR5cGUpID8/ICdpZCc7XG4gICAgICAgICAgICB0aGlzLndpdGhGZXRjaCgoaWQsIHNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBxcDogTWVkaXVzUXVlcnlQYXJhbSA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgxMCwgMCkud2l0aEZpbHRlcihzZWxlY3RlZElkUHJvcGVydHlOYW1lLCBpZCwgaWQsIE1lZGl1c0ZpbHRlck1hdGNoVHlwZS5FcXVhbHMsIHRydWUpLmJ1aWxkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UhLmdldEFsbFBvc3QocXApLnBpcGUobWFwKHJlcyA9PiByZXMucGFnZURhdGEhWzBdKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud2l0aEZldGNoKChpZCwgc2VydmljZSwgbG9jYWxlKSA9PiBzZXJ2aWNlIS5nZXRCeUlkR2V0IShpZCwgdW5kZWZpbmVkLCBsb2NhbGUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndpdGhDcmVhdGUoKGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLmNyZWF0ZVBvc3QhKGl0ZW0hKSk7XG4gICAgICAgIHRoaXMud2l0aFVwZGF0ZSgoaWQsIGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLnVwZGF0ZVB1dCEoaWQsIGl0ZW0hKSk7XG4gICAgICAgIHRoaXMud2l0aERlbGV0ZSgoaWQsIGl0ZW0sIHNlcnZpY2UpID0+IHNlcnZpY2UhLnJlbW92ZURlbGV0ZSEoaWQsIGl0ZW0pKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXIgZXh0ZW5kcyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXJJbnN0PGFueSwgYW55PiB7XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxcbiAgICAgICAgTW9kZWwsXG4gICAgICAgIFNlcnZpY2UgZXh0ZW5kcyBJQ29tbW9uc0NydWRWMUFwaVNlcnZpY2U8TW9kZWw+ICYgSUNvbW1vbnNHZXRBbGxWMUFwaVNlcnZpY2U8TWVkaXVzUXVlcnlSZXN1bHQ8TW9kZWw+PixcbiAgICAgICAgU29ydHMgPSBrZXlvZiBNb2RlbCxcbiAgICAgICAgRmlsdGVycyBleHRlbmRzIGtleW9mIGFueSA9IGtleW9mIE1vZGVsXG4gICAgPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBzZXJ2aWNlVHlwZTogVHlwZTxTZXJ2aWNlPiwgaWRQcm9wZXJ0eT86IGtleW9mIE1vZGVsLCB1c2VHZXRBbGxGb3JGZXRjaCA9IGZhbHNlKTogVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICAgICAgcmV0dXJuIFRhYmxldmlld0NydWRWMURhdGFQcm92aWRlci5jcmVhdGVVbnNhZmU8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzPih0eXBlLCBzZXJ2aWNlVHlwZSwgaWRQcm9wZXJ0eSBhcyBzdHJpbmcsIHVzZUdldEFsbEZvckZldGNoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlVW5zYWZlPFxuICAgICAgICBNb2RlbCxcbiAgICAgICAgU2VydmljZSBleHRlbmRzIElDb21tb25zQ3J1ZFYxQXBpU2VydmljZTxNb2RlbD4gJiBJQ29tbW9uc0dldEFsbFYxQXBpU2VydmljZTxNZWRpdXNRdWVyeVJlc3VsdDxNb2RlbD4+LFxuICAgICAgICBTb3J0cyA9IGtleW9mIE1vZGVsLFxuICAgICAgICBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWxcbiAgICA+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIHNlcnZpY2VUeXBlOiBUeXBlPFNlcnZpY2U+LCBpZFByb3BlcnR5Pzogc3RyaW5nLCB1c2VHZXRBbGxGb3JGZXRjaCA9IGZhbHNlKTogVGFibGV2aWV3Q3J1ZFYxRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdDcnVkVjFEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycz4odHlwZSwgc2VydmljZVR5cGUsIGlkUHJvcGVydHksIHVzZUdldEFsbEZvckZldGNoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A class representing a mapping of query parameters.
|
|
3
|
+
*
|
|
4
|
+
* @typeparam Sorts - The type for available sort keys on get all operation.
|
|
5
|
+
* @typeparam Filters - The type for available sort keys on get all operation.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated
|
|
8
|
+
*/
|
|
9
|
+
export class QueryParamMap {
|
|
10
|
+
constructor(_params) {
|
|
11
|
+
this._params = _params;
|
|
12
|
+
this._sorts = {};
|
|
13
|
+
this._filters = {};
|
|
14
|
+
// empty line
|
|
15
|
+
}
|
|
16
|
+
static create() {
|
|
17
|
+
return new QueryParamMap();
|
|
18
|
+
}
|
|
19
|
+
static forParams(params) {
|
|
20
|
+
return new QueryParamMap(params);
|
|
21
|
+
}
|
|
22
|
+
withSortMap(sort, mapTo) {
|
|
23
|
+
this._sorts[sort] = mapTo;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
withFilterMap(filter, mapTo) {
|
|
27
|
+
this._filters[filter] = mapTo;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
mapSort(sort) {
|
|
31
|
+
return this._sorts[sort] ?? sort;
|
|
32
|
+
}
|
|
33
|
+
mapFilter(filter) {
|
|
34
|
+
return this._filters[filter] ?? filter;
|
|
35
|
+
}
|
|
36
|
+
mapParams() {
|
|
37
|
+
if (!this._params) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const params = {
|
|
41
|
+
offset: this._params.offset,
|
|
42
|
+
limit: this._params.limit,
|
|
43
|
+
search: this._params.search,
|
|
44
|
+
sort: this._params.sort?.map(s => ({ property: this.mapSort(s.property), ascending: s.ascending }))
|
|
45
|
+
};
|
|
46
|
+
if (this._params.filters) {
|
|
47
|
+
params.filters = {};
|
|
48
|
+
Object.entries(this._params.filters).forEach(([key, value]) => {
|
|
49
|
+
params.filters[this.mapFilter(key)] = {
|
|
50
|
+
...value
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return params;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW0tbWFwLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92MS9zcmMvdXRpbHMvcXVlcnktcGFyYW0tbWFwLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQXVDLE9BQXdDO1FBQXhDLFlBQU8sR0FBUCxPQUFPLENBQWlDO1FBSDlELFdBQU0sR0FBMkIsRUFBRSxDQUFDO1FBQ3BDLGFBQVEsR0FBMkIsRUFBRSxDQUFDO1FBR25ELGFBQWE7SUFDakIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxhQUFhLEVBQWtCLENBQUM7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQW1DLE1BQXVDO1FBQzdGLE9BQU8sSUFBSSxhQUFhLENBQWlCLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVyxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFjLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFlLEVBQUUsS0FBYTtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQWdCLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSyxJQUFlLENBQUM7SUFDakQsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSyxNQUFpQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE1BQU0sTUFBTSxHQUFHO1lBQ1gsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztTQUNsRixDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sQ0FBQyxPQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHO29CQUNuQyxHQUFJLEtBQXdCO2lCQUMvQixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YUxpc3RGaWx0ZXIsIERhdGFMaXN0UGFyYW1zfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG4vKipcbiAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIGEgbWFwcGluZyBvZiBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIEB0eXBlcGFyYW0gU29ydHMgLSBUaGUgdHlwZSBmb3IgYXZhaWxhYmxlIHNvcnQga2V5cyBvbiBnZXQgYWxsIG9wZXJhdGlvbi5cbiAqIEB0eXBlcGFyYW0gRmlsdGVycyAtIFRoZSB0eXBlIGZvciBhdmFpbGFibGUgc29ydCBrZXlzIG9uIGdldCBhbGwgb3BlcmF0aW9uLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtTWFwPFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc29ydHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfcGFyYW1zPzogRGF0YUxpc3RQYXJhbXM8U29ydHMsIEZpbHRlcnM+KSB7XG4gICAgICAgIC8vIGVtcHR5IGxpbmVcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBRdWVyeVBhcmFtTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUGFyYW1zPFNvcnRzLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55PihwYXJhbXM/OiBEYXRhTGlzdFBhcmFtczxTb3J0cywgRmlsdGVycz4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBRdWVyeVBhcmFtTWFwPFNvcnRzLCBGaWx0ZXJzPihwYXJhbXMpO1xuICAgIH1cblxuICAgIHdpdGhTb3J0TWFwKHNvcnQ6IFNvcnRzLCBtYXBUbzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NvcnRzW3NvcnQgYXMgc3RyaW5nXSA9IG1hcFRvO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB3aXRoRmlsdGVyTWFwKGZpbHRlcjogRmlsdGVycywgbWFwVG86IHN0cmluZykge1xuICAgICAgICB0aGlzLl9maWx0ZXJzW2ZpbHRlciBhcyBzdHJpbmddID0gbWFwVG87XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG1hcFNvcnQoc29ydDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnRzW3NvcnRdID8/IChzb3J0IGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgbWFwRmlsdGVyKGZpbHRlcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnNbZmlsdGVyXSA/PyAoZmlsdGVyIGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgbWFwUGFyYW1zKCk6IERhdGFMaXN0UGFyYW1zPGFueSwgYW55PiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdGhpcy5fcGFyYW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgb2Zmc2V0OiB0aGlzLl9wYXJhbXMub2Zmc2V0LFxuICAgICAgICAgICAgbGltaXQ6IHRoaXMuX3BhcmFtcy5saW1pdCxcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5fcGFyYW1zLnNlYXJjaCxcbiAgICAgICAgICAgIHNvcnQ6IHRoaXMuX3BhcmFtcy5zb3J0Py5tYXAocyA9PiAoe3Byb3BlcnR5OiB0aGlzLm1hcFNvcnQocy5wcm9wZXJ0eSBhcyBzdHJpbmcpLCBhc2NlbmRpbmc6IHMuYXNjZW5kaW5nfSkpXG4gICAgICAgIH0gYXMgRGF0YUxpc3RQYXJhbXM8YW55LCBhbnk+O1xuXG4gICAgICAgIGlmICh0aGlzLl9wYXJhbXMuZmlsdGVycykge1xuICAgICAgICAgICAgcGFyYW1zLmZpbHRlcnMgPSB7fTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX3BhcmFtcy5maWx0ZXJzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZmlsdGVycyFbdGhpcy5tYXBGaWx0ZXIoa2V5KV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLih2YWx1ZSBhcyBEYXRhTGlzdEZpbHRlcilcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
import { mapToDataList, FilterMatchMode } from '@mediusinc/mng-commons/core';
|
|
3
|
+
import { ModelUtil } from '@mediusinc/mng-commons/model';
|
|
4
|
+
import { TableviewDataProviderInst, TableviewInputBuilder, TableviewDescriptor } from '@mediusinc/mng-commons/tableview/api';
|
|
5
|
+
import { inject, Injector } from '@angular/core';
|
|
6
|
+
|
|
7
|
+
class TableviewCrudDataProviderInst extends TableviewDataProviderInst {
|
|
8
|
+
constructor(type, requestType, serviceType, idPropertyName, useGetAllForFetch = false) {
|
|
9
|
+
super(type, serviceType);
|
|
10
|
+
this.requestType = requestType;
|
|
11
|
+
this._toRequestMap = item => item;
|
|
12
|
+
this.withGetAll((params, service, locale) => service.getAllGet(params, undefined, locale).pipe(mapToDataList()));
|
|
13
|
+
if (useGetAllForFetch) {
|
|
14
|
+
const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';
|
|
15
|
+
this.withFetch((id, service) => {
|
|
16
|
+
return service
|
|
17
|
+
.getAllGet({
|
|
18
|
+
limit: 1,
|
|
19
|
+
filters: {
|
|
20
|
+
[selectedIdPropertyName]: {
|
|
21
|
+
value: id,
|
|
22
|
+
matchMode: FilterMatchMode.Equals
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
.pipe(map(res => res.data[0]));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.withFetch((id, service, locale) => service.getByIdGet(id, undefined, locale));
|
|
31
|
+
}
|
|
32
|
+
this.withCreate((item, service) => service.createPost(this.toRequestMap(item)));
|
|
33
|
+
this.withUpdate((id, item, service) => service.updatePut(id, this.toRequestMap(item)));
|
|
34
|
+
this.withDelete((id, item, service) => service.removeDelete(id, item));
|
|
35
|
+
}
|
|
36
|
+
get toRequestMap() {
|
|
37
|
+
return this._toRequestMap;
|
|
38
|
+
}
|
|
39
|
+
withToRequestMap(fn) {
|
|
40
|
+
this._toRequestMap = fn;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class TableviewCrudDataProvider extends TableviewCrudDataProviderInst {
|
|
45
|
+
static create(type, requestType, serviceType, idProperty, useGetAllForFetch = false) {
|
|
46
|
+
return TableviewCrudDataProvider.createUnsafe(type, requestType, serviceType, idProperty, useGetAllForFetch);
|
|
47
|
+
}
|
|
48
|
+
static createUnsafe(type, requestType, serviceType, idProperty, useGetAllForFetch = false) {
|
|
49
|
+
return new TableviewCrudDataProviderInst(type, requestType, serviceType, idProperty, useGetAllForFetch);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function prepareBuilder(type, requestType, service, modelConfig, buildFn) {
|
|
54
|
+
const builder = new TableviewInputBuilder(TableviewDescriptor.fromClass(type, modelConfig?.idProperty, modelConfig?.titleProperty, modelConfig?.i18nBaseKey), TableviewCrudDataProvider.create(type, requestType, service, modelConfig?.idProperty), inject(Injector));
|
|
55
|
+
buildFn?.(builder);
|
|
56
|
+
return builder.build();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
|
|
60
|
+
* Sorts and filters are expected to be keys of class.
|
|
61
|
+
*
|
|
62
|
+
* @param {ClassType<Model>} type - The class representing the model.
|
|
63
|
+
* @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
|
|
64
|
+
* @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
|
|
65
|
+
* @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
|
|
66
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
67
|
+
*
|
|
68
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
69
|
+
*/
|
|
70
|
+
function tableviewCrud(type, requestType, service, modelConfig, buildFn) {
|
|
71
|
+
return prepareBuilder(type, requestType, service, modelConfig, buildFn);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.
|
|
75
|
+
*
|
|
76
|
+
* @param {ClassType<Model>} type - The class representing the model.
|
|
77
|
+
* @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.
|
|
78
|
+
* @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.
|
|
79
|
+
* @param {TypeDescriptor<Sorts>} sorts - The available sort keys of get all request.
|
|
80
|
+
* @param {TypeDescriptor<Filters>} filters - The available filter keys of get all request.
|
|
81
|
+
* @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.
|
|
82
|
+
* @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.
|
|
83
|
+
*
|
|
84
|
+
* @returns A tableview instance with descriptor, data provider and actions.
|
|
85
|
+
*/
|
|
86
|
+
function tableviewCrudWithSortAndFilter(type, requestType, service, sorts, filters, modelConfig, buildFn) {
|
|
87
|
+
return prepareBuilder(type, requestType, service, modelConfig, buildFn);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Generated bundle index. Do not edit.
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
export { TableviewCrudDataProvider, TableviewCrudDataProviderInst, tableviewCrud, tableviewCrudWithSortAndFilter };
|
|
95
|
+
//# sourceMappingURL=mediusinc-mng-commons-data-api-class-tableview.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediusinc-mng-commons-data-api-class-tableview.mjs","sources":["../../tableview/src/tableview-crud.data-provider.ts","../../tableview/src/tableview-crud-create.ts","../../tableview/src/mediusinc-mng-commons-data-api-class-tableview.ts"],"sourcesContent":["import {Type} from '@angular/core';\n\nimport {map} from 'rxjs/operators';\n\nimport {ICommonsCrudApiService, ICommonsGetAllApiService, QueryResult} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType, FilterMatchMode, ServiceClassType, mapToDataList} from '@mediusinc/mng-commons/core';\nimport {ModelUtil} from '@mediusinc/mng-commons/model';\nimport {TableviewDataProviderInst} from '@mediusinc/mng-commons/tableview/api';\n\nexport type ToRequestMapFnType<Model, RequestModel> = (item?: Model) => RequestModel;\n\nexport class TableviewCrudDataProviderInst<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n> extends TableviewDataProviderInst<Model, Service, Sorts, Filters, ClassType<Model>, ServiceClassType<Service>> {\n private _toRequestMap: ToRequestMapFnType<Model, RequestModel> = item => item as RequestModel;\n\n protected constructor(\n type: ClassType<Model>,\n protected requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idPropertyName?: string,\n useGetAllForFetch = false\n ) {\n super(type, serviceType);\n this.withGetAll((params, service, locale) => service.getAllGet(params, undefined, locale).pipe(mapToDataList()));\n\n if (useGetAllForFetch) {\n const selectedIdPropertyName = idPropertyName ?? ModelUtil.findIdAttribute(type) ?? 'id';\n this.withFetch((id, service) => {\n return service!\n .getAllGet({\n limit: 1,\n filters: {\n [selectedIdPropertyName]: {\n value: id,\n matchMode: FilterMatchMode.Equals\n }\n }\n })\n .pipe(map(res => res.data![0]));\n });\n } else {\n this.withFetch((id, service, locale) => service!.getByIdGet!(id, undefined, locale));\n }\n this.withCreate((item, service) => service.createPost!(this.toRequestMap(item)));\n this.withUpdate((id, item, service) => service.updatePut!(id, this.toRequestMap(item)));\n this.withDelete((id, item, service) => service.removeDelete!(id, item));\n }\n\n public get toRequestMap() {\n return this._toRequestMap;\n }\n\n public withToRequestMap(fn: ToRequestMapFnType<Model, RequestModel>) {\n this._toRequestMap = fn;\n return this;\n }\n}\n\nexport class TableviewCrudDataProvider extends TableviewCrudDataProviderInst<any, any, any> {\n public static create<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idProperty?: keyof Model,\n useGetAllForFetch = false\n ): TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters> {\n return TableviewCrudDataProvider.createUnsafe<Model, RequestModel, Service, Sorts, Filters>(type, requestType, serviceType, idProperty as string, useGetAllForFetch);\n }\n\n public static createUnsafe<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n >(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n serviceType: Type<Service>,\n idProperty?: string,\n useGetAllForFetch = false\n ): TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters> {\n return new TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>(type, requestType, serviceType, idProperty, useGetAllForFetch);\n }\n}\n","import {Injector, inject} from '@angular/core';\n\nimport {ICommonsCrudApiService, ICommonsGetAllApiService, QueryResult} from '@mediusinc/mng-commons-data-api-class';\nimport {ClassType, ServiceClassType} from '@mediusinc/mng-commons/core';\nimport {TypeDescriptor} from '@mediusinc/mng-commons/model';\nimport {TableviewDescriptor, TableviewDescriptorInst, TableviewInputBuilder} from '@mediusinc/mng-commons/tableview/api';\n\nimport {TableviewCrudDataProvider, TableviewCrudDataProviderInst} from './tableview-crud.data-provider';\n\nfunction prepareBuilder<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts,\n Filters extends keyof any\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n const builder = new TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >(\n TableviewDescriptor.fromClass(type, modelConfig?.idProperty, modelConfig?.titleProperty, modelConfig?.i18nBaseKey),\n TableviewCrudDataProvider.create(type, requestType, service, modelConfig?.idProperty),\n inject(Injector)\n );\n buildFn?.(builder);\n return builder.build();\n}\n\n/**\n * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.\n * Sorts and filters are expected to be keys of class.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns A tableview instance with descriptor, data provider and actions.\n */\nexport function tableviewCrud<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts = keyof Model,\n Filters extends keyof any = keyof Model\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n return prepareBuilder<Model, RequestModel, Service, Sorts, Filters>(type, requestType, service, modelConfig, buildFn);\n}\n\n/**\n * Creates a tableview with the given class, request class, service based on data API v2, sort, filters and optional class/model configuration.\n *\n * @param {ClassType<Model>} type - The class representing the model.\n * @param {ClassType<RequestModel>} requestType - The class representing the model for create and update operations.\n * @param {ServiceClassType<Service>} service - The class type of the service implementing `IMngCrudApiService` and `IMngGetAllApiService`.\n * @param {TypeDescriptor<Sorts>} sorts - The available sort keys of get all request.\n * @param {TypeDescriptor<Filters>} filters - The available filter keys of get all request.\n * @param {{ idProperty?: keyof Model; titleProperty?: keyof Model; i18nBaseKey?: ClassType<any> | string; }} [modelConfig] - Additional optional model configuration.\n * @param {(builder: TableviewBuilder) => void} [buildFn] - The optional callback function to customize the tableview using the prepared builder.\n *\n * @returns A tableview instance with descriptor, data provider and actions.\n */\nexport function tableviewCrudWithSortAndFilter<\n Model,\n RequestModel,\n Service extends ICommonsCrudApiService<Model, RequestModel> & ICommonsGetAllApiService<QueryResult<Model>>,\n Sorts,\n Filters extends keyof any\n>(\n type: ClassType<Model>,\n requestType: ClassType<RequestModel>,\n service: ServiceClassType<Service>,\n sorts: TypeDescriptor<Sorts>,\n filters: TypeDescriptor<Filters>,\n modelConfig?: {\n idProperty?: keyof Model;\n titleProperty?: keyof Model;\n i18nBaseKey?: string;\n },\n buildFn?: (\n builder: TableviewInputBuilder<\n Model,\n Service,\n TableviewDescriptorInst<Model, Sorts, Filters>,\n TableviewCrudDataProviderInst<Model, RequestModel, Service, Sorts, Filters>,\n Sorts,\n Filters\n >\n ) => void\n) {\n return prepareBuilder<Model, RequestModel, Service, Sorts, Filters>(type, requestType, service, modelConfig, buildFn);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|