@smartsoft001/crud-shell-app-services 2.154.0 → 2.155.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartsoft001/crud-shell-app-services",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.155.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@nestjs/common": "^11.1.5",
|
|
33
|
-
"@smartsoft001/crud-domain": "2.
|
|
34
|
-
"@smartsoft001/crud-shell-dtos": "2.
|
|
35
|
-
"@smartsoft001/domain-core": "2.
|
|
36
|
-
"@smartsoft001/models": "2.
|
|
37
|
-
"@smartsoft001/nestjs": "2.
|
|
38
|
-
"@smartsoft001/users": "2.
|
|
39
|
-
"@smartsoft001/utils": "2.
|
|
33
|
+
"@smartsoft001/crud-domain": "2.155.0",
|
|
34
|
+
"@smartsoft001/crud-shell-dtos": "2.155.0",
|
|
35
|
+
"@smartsoft001/domain-core": "2.155.0",
|
|
36
|
+
"@smartsoft001/models": "2.155.0",
|
|
37
|
+
"@smartsoft001/nestjs": "2.155.0",
|
|
38
|
+
"@smartsoft001/users": "2.155.0",
|
|
39
|
+
"@smartsoft001/utils": "2.155.0",
|
|
40
40
|
"rxjs": "^7.8.1"
|
|
41
41
|
},
|
|
42
42
|
"types": "./src/index.d.ts"
|
|
@@ -2,15 +2,16 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
import { ICreateManyOptions } from '@smartsoft001/crud-domain';
|
|
3
3
|
import { ItemChangedData } from '@smartsoft001/crud-shell-dtos';
|
|
4
4
|
import { IAttachmentRepository, IEntity, IItemRepository, ISpecification } from '@smartsoft001/domain-core';
|
|
5
|
-
import { PermissionService } from '@smartsoft001/nestjs';
|
|
5
|
+
import { PermissionService, SharedConfig } from '@smartsoft001/nestjs';
|
|
6
6
|
import { IUser } from '@smartsoft001/users';
|
|
7
7
|
import { Readable, Stream } from 'stream';
|
|
8
8
|
export declare class CrudService<T extends IEntity<string>> {
|
|
9
9
|
protected readonly permissionService: PermissionService;
|
|
10
10
|
protected readonly repository: IItemRepository<T>;
|
|
11
11
|
protected readonly attachmentRepository: IAttachmentRepository<T>;
|
|
12
|
+
protected readonly config?: SharedConfig;
|
|
12
13
|
private _logger;
|
|
13
|
-
constructor(permissionService: PermissionService, repository: IItemRepository<T>, attachmentRepository: IAttachmentRepository<T
|
|
14
|
+
constructor(permissionService: PermissionService, repository: IItemRepository<T>, attachmentRepository: IAttachmentRepository<T>, config?: SharedConfig);
|
|
14
15
|
create(data: T, user: IUser): Promise<string>;
|
|
15
16
|
createMany(data: T[], user: IUser, options: ICreateManyOptions): Promise<T[]>;
|
|
16
17
|
/** Resolves to `null` when no item has that id; the caller decides what that means (the controller answers 404). */
|
|
@@ -51,6 +52,13 @@ export declare class CrudService<T extends IEntity<string>> {
|
|
|
51
52
|
}): Observable<ItemChangedData>;
|
|
52
53
|
private hashCredentials;
|
|
53
54
|
private stripPassword;
|
|
55
|
+
/**
|
|
56
|
+
* Turns a plain request body into an instance of the configured model type so
|
|
57
|
+
* that the model metadata used by castModel and getInvalidFields is available.
|
|
58
|
+
* The instance keeps only the keys the payload carried, because a new instance
|
|
59
|
+
* declares every field as an own key.
|
|
60
|
+
*/
|
|
61
|
+
protected toModel<D extends Partial<T>>(data: D): D;
|
|
54
62
|
private checkValidCreate;
|
|
55
63
|
private checkValidUpdate;
|
|
56
64
|
private checkValidUpdatePartial;
|
|
@@ -15,21 +15,27 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
15
15
|
permissionService;
|
|
16
16
|
repository;
|
|
17
17
|
attachmentRepository;
|
|
18
|
+
config;
|
|
18
19
|
_logger = new common_1.Logger(CrudService_1.name, { timestamp: true });
|
|
19
|
-
constructor(permissionService, repository, attachmentRepository) {
|
|
20
|
+
constructor(permissionService, repository, attachmentRepository, config) {
|
|
20
21
|
this.permissionService = permissionService;
|
|
21
22
|
this.repository = repository;
|
|
22
23
|
this.attachmentRepository = attachmentRepository;
|
|
24
|
+
this.config = config;
|
|
25
|
+
if (!config?.type) {
|
|
26
|
+
this._logger.warn('No model type is configured (SharedConfig.type), request bodies are stored without model validation');
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
async create(data, user) {
|
|
25
30
|
data.id = guid_typescript_1.Guid.raw();
|
|
26
31
|
try {
|
|
27
32
|
this.permissionService.valid('create', user);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
await this.
|
|
32
|
-
|
|
33
|
+
const item = this.toModel(data);
|
|
34
|
+
(0, models_1.castModel)(item, 'create', user.permissions);
|
|
35
|
+
this.checkValidCreate(item, user.permissions);
|
|
36
|
+
await this.hashCredentials(item);
|
|
37
|
+
await this.repository.create(item, user);
|
|
38
|
+
return item.id;
|
|
33
39
|
}
|
|
34
40
|
catch (e) {
|
|
35
41
|
this._logger.error(e);
|
|
@@ -42,6 +48,9 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
42
48
|
});
|
|
43
49
|
try {
|
|
44
50
|
this.permissionService.valid('create', user);
|
|
51
|
+
data.forEach((item, index) => {
|
|
52
|
+
data[index] = this.toModel(item);
|
|
53
|
+
});
|
|
45
54
|
data.forEach((item) => {
|
|
46
55
|
(0, models_1.castModel)(item, 'create', user.permissions);
|
|
47
56
|
this.checkValidCreate(item, user.permissions);
|
|
@@ -94,10 +103,11 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
94
103
|
try {
|
|
95
104
|
data.id = id;
|
|
96
105
|
this.permissionService.valid('update', user);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
await this.
|
|
106
|
+
const item = this.toModel(data);
|
|
107
|
+
(0, models_1.castModel)(item, 'update', user.permissions);
|
|
108
|
+
this.checkValidUpdate(item, user.permissions);
|
|
109
|
+
await this.hashCredentials(item);
|
|
110
|
+
await this.repository.update(item, user);
|
|
101
111
|
}
|
|
102
112
|
catch (e) {
|
|
103
113
|
this._logger.error(e);
|
|
@@ -106,8 +116,9 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
106
116
|
}
|
|
107
117
|
async updatePartial(id, data, user) {
|
|
108
118
|
try {
|
|
109
|
-
// Same object, now known to carry the id
|
|
110
|
-
|
|
119
|
+
// Same object, now known to carry the id, turned into a model instance
|
|
120
|
+
// so the field metadata is there for the validation below.
|
|
121
|
+
const item = this.toModel(Object.assign(data, { id }));
|
|
111
122
|
this.permissionService.valid('update', user);
|
|
112
123
|
(0, models_1.castModel)(item, 'update', user.permissions);
|
|
113
124
|
this.checkValidUpdatePartial(item, user.permissions);
|
|
@@ -177,6 +188,25 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
177
188
|
const credentials = item;
|
|
178
189
|
delete credentials.password;
|
|
179
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Turns a plain request body into an instance of the configured model type so
|
|
193
|
+
* that the model metadata used by castModel and getInvalidFields is available.
|
|
194
|
+
* The instance keeps only the keys the payload carried, because a new instance
|
|
195
|
+
* declares every field as an own key.
|
|
196
|
+
*/
|
|
197
|
+
toModel(data) {
|
|
198
|
+
const type = this.config?.type;
|
|
199
|
+
if (!type || !data || data instanceof type)
|
|
200
|
+
return data;
|
|
201
|
+
const keys = Object.keys(data);
|
|
202
|
+
const model = Object.assign(new type(), data);
|
|
203
|
+
Object.keys(model)
|
|
204
|
+
.filter((key) => !keys.some((payloadKey) => payloadKey === key))
|
|
205
|
+
.forEach((key) => {
|
|
206
|
+
delete model[key];
|
|
207
|
+
});
|
|
208
|
+
return model;
|
|
209
|
+
}
|
|
180
210
|
checkValidCreate(item, permissions) {
|
|
181
211
|
const array = (0, models_1.getInvalidFields)(item, 'create', permissions);
|
|
182
212
|
if (array.length) {
|
|
@@ -208,8 +238,10 @@ tslib_1.__decorate([
|
|
|
208
238
|
], CrudService.prototype, "getAttachmentInfo", null);
|
|
209
239
|
exports.CrudService = CrudService = CrudService_1 = tslib_1.__decorate([
|
|
210
240
|
(0, common_1.Injectable)(),
|
|
241
|
+
tslib_1.__param(3, (0, common_1.Optional)()),
|
|
211
242
|
tslib_1.__metadata("design:paramtypes", [nestjs_1.PermissionService,
|
|
212
243
|
domain_core_1.IItemRepository,
|
|
213
|
-
domain_core_1.IAttachmentRepository
|
|
244
|
+
domain_core_1.IAttachmentRepository,
|
|
245
|
+
nestjs_1.SharedConfig])
|
|
214
246
|
], CrudService);
|
|
215
247
|
//# sourceMappingURL=crud.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/app-services/src/lib/services/crud/crud.service.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../../../../../../packages/crud/shell/app-services/src/lib/services/crud/crud.service.ts"],"names":[],"mappings":"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"}
|