@smartsoft001/crud-shell-app-services 2.153.0 → 2.154.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.154.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.154.0",
|
|
34
|
+
"@smartsoft001/crud-shell-dtos": "2.154.0",
|
|
35
|
+
"@smartsoft001/domain-core": "2.154.0",
|
|
36
|
+
"@smartsoft001/models": "2.154.0",
|
|
37
|
+
"@smartsoft001/nestjs": "2.154.0",
|
|
38
|
+
"@smartsoft001/users": "2.154.0",
|
|
39
|
+
"@smartsoft001/utils": "2.154.0",
|
|
40
40
|
"rxjs": "^7.8.1"
|
|
41
41
|
},
|
|
42
42
|
"types": "./src/index.d.ts"
|
|
@@ -13,7 +13,8 @@ export declare class CrudService<T extends IEntity<string>> {
|
|
|
13
13
|
constructor(permissionService: PermissionService, repository: IItemRepository<T>, attachmentRepository: IAttachmentRepository<T>);
|
|
14
14
|
create(data: T, user: IUser): Promise<string>;
|
|
15
15
|
createMany(data: T[], user: IUser, options: ICreateManyOptions): Promise<T[]>;
|
|
16
|
-
|
|
16
|
+
/** Resolves to `null` when no item has that id; the caller decides what that means (the controller answers 404). */
|
|
17
|
+
readById(id: string, user: IUser): Promise<T | null>;
|
|
17
18
|
read(criteria: any, options: any, user: IUser): Promise<{
|
|
18
19
|
data: T[];
|
|
19
20
|
totalCount: number;
|
|
@@ -32,22 +33,24 @@ export declare class CrudService<T extends IEntity<string>> {
|
|
|
32
33
|
mimeType: string;
|
|
33
34
|
encoding: string;
|
|
34
35
|
}, options?: {
|
|
35
|
-
streamCallback?: (
|
|
36
|
+
streamCallback?: (stream: unknown) => void;
|
|
36
37
|
start?: number;
|
|
37
38
|
}): Promise<string>;
|
|
38
39
|
getAttachmentInfo(id: string): Promise<{
|
|
39
40
|
fileName: string;
|
|
40
41
|
contentType: string;
|
|
41
42
|
length: number;
|
|
42
|
-
}>;
|
|
43
|
+
} | null>;
|
|
43
44
|
getAttachmentStream(id: string, options?: {
|
|
44
45
|
start: number;
|
|
45
|
-
end
|
|
46
|
+
end?: number;
|
|
46
47
|
}): Promise<Readable>;
|
|
47
48
|
deleteAttachment(id: string): Promise<void>;
|
|
48
49
|
changes(criteria: {
|
|
49
50
|
id?: string;
|
|
50
51
|
}): Observable<ItemChangedData>;
|
|
52
|
+
private hashCredentials;
|
|
53
|
+
private stripPassword;
|
|
51
54
|
private checkValidCreate;
|
|
52
55
|
private checkValidUpdate;
|
|
53
56
|
private checkValidUpdatePartial;
|
|
@@ -27,12 +27,7 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
27
27
|
this.permissionService.valid('create', user);
|
|
28
28
|
(0, models_1.castModel)(data, 'create', user.permissions);
|
|
29
29
|
this.checkValidCreate(data, user.permissions);
|
|
30
|
-
|
|
31
|
-
data['password'] = await utils_1.PasswordService.hash(data['password']);
|
|
32
|
-
}
|
|
33
|
-
if (data['passwordConfirm']) {
|
|
34
|
-
delete data['passwordConfirm'];
|
|
35
|
-
}
|
|
30
|
+
await this.hashCredentials(data);
|
|
36
31
|
await this.repository.create(data, user);
|
|
37
32
|
return data.id;
|
|
38
33
|
}
|
|
@@ -55,13 +50,7 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
55
50
|
await this.repository.clear(user);
|
|
56
51
|
}
|
|
57
52
|
for (let index = 0; index < data.length; index++) {
|
|
58
|
-
|
|
59
|
-
if (item['password']) {
|
|
60
|
-
item['password'] = await utils_1.PasswordService.hash(item['password']);
|
|
61
|
-
}
|
|
62
|
-
if (item['passwordConfirm']) {
|
|
63
|
-
delete item['passwordConfirm'];
|
|
64
|
-
}
|
|
53
|
+
await this.hashCredentials(data[index]);
|
|
65
54
|
}
|
|
66
55
|
await this.repository.createMany(data, user);
|
|
67
56
|
}
|
|
@@ -71,11 +60,14 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
71
60
|
}
|
|
72
61
|
return data;
|
|
73
62
|
}
|
|
63
|
+
/** Resolves to `null` when no item has that id; the caller decides what that means (the controller answers 404). */
|
|
74
64
|
async readById(id, user) {
|
|
75
65
|
try {
|
|
76
66
|
this.permissionService.valid('read', user);
|
|
77
67
|
const result = await this.repository.getById(id);
|
|
78
|
-
|
|
68
|
+
if (!result)
|
|
69
|
+
return null;
|
|
70
|
+
this.stripPassword(result);
|
|
79
71
|
return result;
|
|
80
72
|
}
|
|
81
73
|
catch (e) {
|
|
@@ -87,7 +79,7 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
87
79
|
try {
|
|
88
80
|
this.permissionService.valid('read', user);
|
|
89
81
|
const result = await this.repository.getByCriteria(criteria, options);
|
|
90
|
-
result.data.forEach((item) =>
|
|
82
|
+
result.data.forEach((item) => this.stripPassword(item));
|
|
91
83
|
return result;
|
|
92
84
|
}
|
|
93
85
|
catch (e) {
|
|
@@ -104,12 +96,7 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
104
96
|
this.permissionService.valid('update', user);
|
|
105
97
|
(0, models_1.castModel)(data, 'update', user.permissions);
|
|
106
98
|
this.checkValidUpdate(data, user.permissions);
|
|
107
|
-
|
|
108
|
-
data['password'] = await utils_1.PasswordService.hash(data['password']);
|
|
109
|
-
}
|
|
110
|
-
if (data['passwordConfirm']) {
|
|
111
|
-
delete data['passwordConfirm'];
|
|
112
|
-
}
|
|
99
|
+
await this.hashCredentials(data);
|
|
113
100
|
await this.repository.update(data, user);
|
|
114
101
|
}
|
|
115
102
|
catch (e) {
|
|
@@ -119,17 +106,13 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
119
106
|
}
|
|
120
107
|
async updatePartial(id, data, user) {
|
|
121
108
|
try {
|
|
122
|
-
|
|
109
|
+
// Same object, now known to carry the id.
|
|
110
|
+
const item = Object.assign(data, { id });
|
|
123
111
|
this.permissionService.valid('update', user);
|
|
124
|
-
(0, models_1.castModel)(
|
|
125
|
-
this.checkValidUpdatePartial(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
if (data['passwordConfirm']) {
|
|
130
|
-
delete data['passwordConfirm'];
|
|
131
|
-
}
|
|
132
|
-
await this.repository.updatePartial(data, user);
|
|
112
|
+
(0, models_1.castModel)(item, 'update', user.permissions);
|
|
113
|
+
this.checkValidUpdatePartial(item, user.permissions);
|
|
114
|
+
await this.hashCredentials(item);
|
|
115
|
+
await this.repository.updatePartial(item, user);
|
|
133
116
|
}
|
|
134
117
|
catch (e) {
|
|
135
118
|
this._logger.error(e);
|
|
@@ -180,6 +163,20 @@ let CrudService = CrudService_1 = class CrudService {
|
|
|
180
163
|
changes(criteria) {
|
|
181
164
|
return this.repository.changesByCriteria(criteria);
|
|
182
165
|
}
|
|
166
|
+
async hashCredentials(item) {
|
|
167
|
+
// Any entity may carry credentials; the decorators, not T, say whether it does.
|
|
168
|
+
const credentials = item;
|
|
169
|
+
if (credentials.password) {
|
|
170
|
+
credentials.password = await utils_1.PasswordService.hash(credentials.password);
|
|
171
|
+
}
|
|
172
|
+
if (credentials.passwordConfirm) {
|
|
173
|
+
delete credentials.passwordConfirm;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
stripPassword(item) {
|
|
177
|
+
const credentials = item;
|
|
178
|
+
delete credentials.password;
|
|
179
|
+
}
|
|
183
180
|
checkValidCreate(item, permissions) {
|
|
184
181
|
const array = (0, models_1.getInvalidFields)(item, 'create', permissions);
|
|
185
182
|
if (array.length) {
|
|
@@ -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,2CAAoD;AACpD,wEAAkD;AAClD,qDAAuC;AACvC,yDAA4C;AAK5C,2DAMmC;AACnC,iDAA4E;AAC5E,iDAAyD;AAEzD,+CAAmE;
|
|
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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"}
|