@smartsoft001/crud-shell-app-services 2.153.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.153.0",
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.153.0",
34
- "@smartsoft001/crud-shell-dtos": "2.153.0",
35
- "@smartsoft001/domain-core": "2.153.0",
36
- "@smartsoft001/models": "2.153.0",
37
- "@smartsoft001/nestjs": "2.153.0",
38
- "@smartsoft001/users": "2.153.0",
39
- "@smartsoft001/utils": "2.153.0",
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,18 +2,20 @@ 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
- readById(id: string, user: IUser): Promise<T>;
17
+ /** Resolves to `null` when no item has that id; the caller decides what that means (the controller answers 404). */
18
+ readById(id: string, user: IUser): Promise<T | null>;
17
19
  read(criteria: any, options: any, user: IUser): Promise<{
18
20
  data: T[];
19
21
  totalCount: number;
@@ -32,22 +34,31 @@ export declare class CrudService<T extends IEntity<string>> {
32
34
  mimeType: string;
33
35
  encoding: string;
34
36
  }, options?: {
35
- streamCallback?: (r: any) => void;
37
+ streamCallback?: (stream: unknown) => void;
36
38
  start?: number;
37
39
  }): Promise<string>;
38
40
  getAttachmentInfo(id: string): Promise<{
39
41
  fileName: string;
40
42
  contentType: string;
41
43
  length: number;
42
- }>;
44
+ } | null>;
43
45
  getAttachmentStream(id: string, options?: {
44
46
  start: number;
45
- end: number;
47
+ end?: number;
46
48
  }): Promise<Readable>;
47
49
  deleteAttachment(id: string): Promise<void>;
48
50
  changes(criteria: {
49
51
  id?: string;
50
52
  }): Observable<ItemChangedData>;
53
+ private hashCredentials;
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;
51
62
  private checkValidCreate;
52
63
  private checkValidUpdate;
53
64
  private checkValidUpdatePartial;
@@ -15,26 +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
- (0, models_1.castModel)(data, 'create', user.permissions);
29
- this.checkValidCreate(data, user.permissions);
30
- if (data['password']) {
31
- data['password'] = await utils_1.PasswordService.hash(data['password']);
32
- }
33
- if (data['passwordConfirm']) {
34
- delete data['passwordConfirm'];
35
- }
36
- await this.repository.create(data, user);
37
- return data.id;
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;
38
39
  }
39
40
  catch (e) {
40
41
  this._logger.error(e);
@@ -47,6 +48,9 @@ let CrudService = CrudService_1 = class CrudService {
47
48
  });
48
49
  try {
49
50
  this.permissionService.valid('create', user);
51
+ data.forEach((item, index) => {
52
+ data[index] = this.toModel(item);
53
+ });
50
54
  data.forEach((item) => {
51
55
  (0, models_1.castModel)(item, 'create', user.permissions);
52
56
  this.checkValidCreate(item, user.permissions);
@@ -55,13 +59,7 @@ let CrudService = CrudService_1 = class CrudService {
55
59
  await this.repository.clear(user);
56
60
  }
57
61
  for (let index = 0; index < data.length; index++) {
58
- const item = data[index];
59
- if (item['password']) {
60
- item['password'] = await utils_1.PasswordService.hash(item['password']);
61
- }
62
- if (item['passwordConfirm']) {
63
- delete item['passwordConfirm'];
64
- }
62
+ await this.hashCredentials(data[index]);
65
63
  }
66
64
  await this.repository.createMany(data, user);
67
65
  }
@@ -71,11 +69,14 @@ let CrudService = CrudService_1 = class CrudService {
71
69
  }
72
70
  return data;
73
71
  }
72
+ /** Resolves to `null` when no item has that id; the caller decides what that means (the controller answers 404). */
74
73
  async readById(id, user) {
75
74
  try {
76
75
  this.permissionService.valid('read', user);
77
76
  const result = await this.repository.getById(id);
78
- delete result['password'];
77
+ if (!result)
78
+ return null;
79
+ this.stripPassword(result);
79
80
  return result;
80
81
  }
81
82
  catch (e) {
@@ -87,7 +88,7 @@ let CrudService = CrudService_1 = class CrudService {
87
88
  try {
88
89
  this.permissionService.valid('read', user);
89
90
  const result = await this.repository.getByCriteria(criteria, options);
90
- result.data.forEach((item) => delete item['password']);
91
+ result.data.forEach((item) => this.stripPassword(item));
91
92
  return result;
92
93
  }
93
94
  catch (e) {
@@ -102,15 +103,11 @@ let CrudService = CrudService_1 = class CrudService {
102
103
  try {
103
104
  data.id = id;
104
105
  this.permissionService.valid('update', user);
105
- (0, models_1.castModel)(data, 'update', user.permissions);
106
- this.checkValidUpdate(data, user.permissions);
107
- if (data['password']) {
108
- data['password'] = await utils_1.PasswordService.hash(data['password']);
109
- }
110
- if (data['passwordConfirm']) {
111
- delete data['passwordConfirm'];
112
- }
113
- await this.repository.update(data, user);
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);
114
111
  }
115
112
  catch (e) {
116
113
  this._logger.error(e);
@@ -119,17 +116,14 @@ let CrudService = CrudService_1 = class CrudService {
119
116
  }
120
117
  async updatePartial(id, data, user) {
121
118
  try {
122
- data.id = id;
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 }));
123
122
  this.permissionService.valid('update', user);
124
- (0, models_1.castModel)(data, 'update', user.permissions);
125
- this.checkValidUpdatePartial(data, user.permissions);
126
- if (data['password']) {
127
- data['password'] = await utils_1.PasswordService.hash(data['password']);
128
- }
129
- if (data['passwordConfirm']) {
130
- delete data['passwordConfirm'];
131
- }
132
- await this.repository.updatePartial(data, user);
123
+ (0, models_1.castModel)(item, 'update', user.permissions);
124
+ this.checkValidUpdatePartial(item, user.permissions);
125
+ await this.hashCredentials(item);
126
+ await this.repository.updatePartial(item, user);
133
127
  }
134
128
  catch (e) {
135
129
  this._logger.error(e);
@@ -180,6 +174,39 @@ let CrudService = CrudService_1 = class CrudService {
180
174
  changes(criteria) {
181
175
  return this.repository.changesByCriteria(criteria);
182
176
  }
177
+ async hashCredentials(item) {
178
+ // Any entity may carry credentials; the decorators, not T, say whether it does.
179
+ const credentials = item;
180
+ if (credentials.password) {
181
+ credentials.password = await utils_1.PasswordService.hash(credentials.password);
182
+ }
183
+ if (credentials.passwordConfirm) {
184
+ delete credentials.passwordConfirm;
185
+ }
186
+ }
187
+ stripPassword(item) {
188
+ const credentials = item;
189
+ delete credentials.password;
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
+ }
183
210
  checkValidCreate(item, permissions) {
184
211
  const array = (0, models_1.getInvalidFields)(item, 'create', permissions);
185
212
  if (array.length) {
@@ -211,8 +238,10 @@ tslib_1.__decorate([
211
238
  ], CrudService.prototype, "getAttachmentInfo", null);
212
239
  exports.CrudService = CrudService = CrudService_1 = tslib_1.__decorate([
213
240
  (0, common_1.Injectable)(),
241
+ tslib_1.__param(3, (0, common_1.Optional)()),
214
242
  tslib_1.__metadata("design:paramtypes", [nestjs_1.PermissionService,
215
243
  domain_core_1.IItemRepository,
216
- domain_core_1.IAttachmentRepository])
244
+ domain_core_1.IAttachmentRepository,
245
+ nestjs_1.SharedConfig])
217
246
  ], CrudService);
218
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":"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"}
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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"}