@futdevpro/nts-dynamo 1.7.17 → 1.7.20
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/.eslintrc.json +171 -0
- package/lib/_constants/mocks/app-extended-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/lib/_constants/mocks/app-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-server.mock.js.map +1 -1
- package/lib/_constants/mocks/data-model.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/data-model.mock.js.map +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.js.map +1 -1
- package/lib/_constants/mocks/email-service.mock.js +3 -3
- package/lib/_constants/mocks/email-service.mock.js.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.js.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.js.map +1 -1
- package/lib/_enums/index.js +1 -1
- package/lib/_enums/index.js.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.d.ts +2 -2
- package/lib/_models/control-models/api-call-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model copy.d.ts.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model copy.js.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +15 -9
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/control-models/http-settings.control-model.d.ts +1 -1
- package/lib/_models/control-models/http-settings.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/http-settings.control-model.js +3 -1
- package/lib/_models/control-models/http-settings.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-client-service-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-event.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.js +2 -1
- package/lib/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js.map +1 -1
- package/lib/_modules/test/get-test-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/test/get-test-routing-module.util.js.map +1 -1
- package/lib/_modules/test/test.controller.d.ts.map +1 -1
- package/lib/_modules/test/test.controller.js.map +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.d.ts.map +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.js +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.js.map +1 -1
- package/lib/_modules/usage/usage.controller.d.ts.map +1 -1
- package/lib/_modules/usage/usage.controller.js +15 -14
- package/lib/_modules/usage/usage.controller.js.map +1 -1
- package/lib/_modules/usage/usage.data-service.d.ts +3 -1
- package/lib/_modules/usage/usage.data-service.d.ts.map +1 -1
- package/lib/_modules/usage/usage.data-service.js +24 -16
- package/lib/_modules/usage/usage.data-service.js.map +1 -1
- package/lib/_services/base/data.service.d.ts.map +1 -1
- package/lib/_services/base/data.service.js +45 -23
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.d.ts.map +1 -1
- package/lib/_services/base/db.service.js +82 -53
- package/lib/_services/base/db.service.js.map +1 -1
- package/lib/_services/base/singleton.service.d.ts.map +1 -1
- package/lib/_services/base/singleton.service.js.map +1 -1
- package/lib/_services/core/api.service.d.ts +21 -13
- package/lib/_services/core/api.service.d.ts.map +1 -1
- package/lib/_services/core/api.service.js +192 -143
- package/lib/_services/core/api.service.js.map +1 -1
- package/lib/_services/core/auth.service.d.ts.map +1 -1
- package/lib/_services/core/auth.service.js.map +1 -1
- package/lib/_services/core/email.service.d.ts +50 -36
- package/lib/_services/core/email.service.d.ts.map +1 -1
- package/lib/_services/core/email.service.js +329 -94
- package/lib/_services/core/email.service.js.map +1 -1
- package/lib/_services/core/global.service.d.ts.map +1 -1
- package/lib/_services/core/global.service.js +30 -19
- package/lib/_services/core/global.service.js.map +1 -1
- package/lib/_services/route/controller.service.d.ts.map +1 -1
- package/lib/_services/route/controller.service.js.map +1 -1
- package/lib/_services/route/routing-module.service.d.ts.map +1 -1
- package/lib/_services/route/routing-module.service.js +2 -2
- package/lib/_services/route/routing-module.service.js.map +1 -1
- package/lib/_services/server/app-extended.server.d.ts.map +1 -1
- package/lib/_services/server/app-extended.server.js +19 -14
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app-extended.server.spec.js +1 -0
- package/lib/_services/server/app-extended.server.spec.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +4 -3
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +106 -51
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/_services/server/app.server.spec.js +1 -0
- package/lib/_services/server/app.server.spec.js.map +1 -1
- package/lib/_services/shared.static-service.js.map +1 -1
- package/lib/_services/socket/socket-client.service.js.map +1 -1
- package/lib/_services/socket/socket-server.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/nodemon.json +3 -1
- package/package.json +9 -8
- package/src/_constants/mocks/app-extended-server.mock.ts +6 -2
- package/src/_constants/mocks/app-server.mock.ts +7 -1
- package/src/_constants/mocks/data-model.mock.ts +2 -2
- package/src/_constants/mocks/email-service-collection.mock.ts +2 -1
- package/src/_constants/mocks/email-service.mock.ts +2 -2
- package/src/_constants/mocks/endpoint.mock.ts +28 -26
- package/src/_constants/mocks/socket-server.mock.ts +12 -4
- package/src/_enums/index.ts +1 -1
- package/src/_models/control-models/api-call-params.control-model.ts +3 -2
- package/src/_models/control-models/app-system-controls.control-model copy.ts +1 -1
- package/src/_models/control-models/app-system-controls.control-model.ts +1 -1
- package/src/_models/control-models/endpoint-params.control-model.ts +39 -16
- package/src/_models/control-models/http-settings.control-model.ts +4 -2
- package/src/_modules/custom-data/custom-data.controller.ts +55 -51
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +7 -3
- package/src/_modules/test/get-test-routing-module.util.ts +7 -3
- package/src/_modules/test/test.controller.ts +98 -96
- package/src/_modules/usage/get-usage-routing-module.util.ts +8 -4
- package/src/_modules/usage/usage.controller.ts +108 -102
- package/src/_modules/usage/usage.data-service.ts +54 -28
- package/src/_services/base/data.service.ts +133 -34
- package/src/_services/base/db.service.ts +254 -171
- package/src/_services/base/singleton.service.ts +1 -1
- package/src/_services/core/api.service.ts +348 -218
- package/src/_services/core/auth.service.ts +2 -0
- package/src/_services/core/email.service.ts +537 -129
- package/src/_services/core/global.service.ts +56 -26
- package/src/_services/route/controller.service.ts +3 -1
- package/src/_services/route/routing-module.service.ts +33 -16
- package/src/_services/server/app-extended.server.spec.ts +22 -17
- package/src/_services/server/app-extended.server.ts +108 -45
- package/src/_services/server/app.server.spec.ts +17 -12
- package/src/_services/server/app.server.ts +264 -138
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
Dynamo_Metadata, Dynamo_DataParams, Dynamo_DataPropertyParams, Dynamo_Error, Dynamo_Log
|
|
4
|
+
} from '@futdevpro/fsm-dynamo';
|
|
3
5
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
4
6
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
5
7
|
|
|
@@ -70,7 +72,14 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
70
72
|
this.lookForDependencyDataSettings();
|
|
71
73
|
this.issuer = issuer;
|
|
72
74
|
} catch (error) {
|
|
73
|
-
Dynamo_Log.error(
|
|
75
|
+
Dynamo_Log.error(
|
|
76
|
+
`\nDynamoNTS_DataService ERROR: ` +
|
|
77
|
+
`\nThe dataService construction failed for ` +
|
|
78
|
+
`${dataParams?.dataName}. ${this.serviceName} (${this.constructor.name})` +
|
|
79
|
+
`\nMaybe you forgot to add the dbService to the GlobalService?` +
|
|
80
|
+
`\n\n`,
|
|
81
|
+
new Error()
|
|
82
|
+
);
|
|
74
83
|
}
|
|
75
84
|
}
|
|
76
85
|
|
|
@@ -79,14 +88,16 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
79
88
|
*/
|
|
80
89
|
async getAll(dontSetToService?: boolean): Promise<T[]> {
|
|
81
90
|
try {
|
|
82
|
-
const dataListExists: T[] = await this.dataDBService.getAll().catch(error => {
|
|
91
|
+
const dataListExists: T[] = await this.dataDBService.getAll().catch((error): T[] => {
|
|
83
92
|
if (error?.errorCode === 'NTS-DBS-GA1') {
|
|
84
93
|
Dynamo_Log.warn(`getAll ${this.dataParams.dataName} didn't found any.`);
|
|
94
|
+
|
|
85
95
|
return [];
|
|
86
96
|
} else {
|
|
87
97
|
throw error;
|
|
88
98
|
}
|
|
89
99
|
});
|
|
100
|
+
|
|
90
101
|
if (!dontSetToService) {
|
|
91
102
|
this.dataList = dataListExists;
|
|
92
103
|
}
|
|
@@ -123,7 +134,11 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
123
134
|
throw new Dynamo_Error({
|
|
124
135
|
...this._getDefaultErrorSettings(
|
|
125
136
|
'getDataById',
|
|
126
|
-
new Error(
|
|
137
|
+
new Error(
|
|
138
|
+
`getDataById failed, ID is missing! ` +
|
|
139
|
+
`(maybe you wanted to use getDataByDependencyId() instead...) ` +
|
|
140
|
+
`(${this.dataParams.dataName})`
|
|
141
|
+
)
|
|
127
142
|
),
|
|
128
143
|
|
|
129
144
|
errorCode: 'NTS-DS0-GI1',
|
|
@@ -131,6 +146,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
131
146
|
}
|
|
132
147
|
|
|
133
148
|
const dataExists: T = await this.dataDBService.getDataById(id ?? this.data._id);
|
|
149
|
+
|
|
134
150
|
if (!dontSetToService) {
|
|
135
151
|
this.data = dataExists;
|
|
136
152
|
}
|
|
@@ -142,7 +158,6 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
142
158
|
} else {
|
|
143
159
|
throw new Dynamo_Error({
|
|
144
160
|
...this._getDefaultErrorSettings('getDataById', error),
|
|
145
|
-
|
|
146
161
|
errorCode: 'NTS-DS0-GI0',
|
|
147
162
|
});
|
|
148
163
|
}
|
|
@@ -167,6 +182,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
167
182
|
}
|
|
168
183
|
|
|
169
184
|
const datas: T[] = await this.dataDBService.find({ _id: { $in: ids, }, });
|
|
185
|
+
|
|
170
186
|
if (!dontSetToService) {
|
|
171
187
|
this.dataList = datas;
|
|
172
188
|
}
|
|
@@ -192,7 +208,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
192
208
|
throw new Dynamo_Error({
|
|
193
209
|
...this._getDefaultErrorSettings(
|
|
194
210
|
'getDataByDependencyId',
|
|
195
|
-
new Error(
|
|
211
|
+
new Error(
|
|
212
|
+
`getDataByDependencyId failed, dependencyKey is missing from service! ` +
|
|
213
|
+
`(${this.dataParams.dataName})`
|
|
214
|
+
)
|
|
196
215
|
),
|
|
197
216
|
|
|
198
217
|
errorCode: 'NTS-DS0-GD1',
|
|
@@ -203,21 +222,31 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
203
222
|
throw new Dynamo_Error({
|
|
204
223
|
...this._getDefaultErrorSettings(
|
|
205
224
|
'getDataByDependencyId',
|
|
206
|
-
new Error(
|
|
225
|
+
new Error(
|
|
226
|
+
`getDataByDependencyId failed, ${this.depKey} is missing! ` +
|
|
227
|
+
`(${this.dataParams.dataName})`
|
|
228
|
+
)
|
|
207
229
|
),
|
|
208
230
|
|
|
209
231
|
errorCode: 'NTS-DS0-GD2',
|
|
210
232
|
});
|
|
211
233
|
}
|
|
212
234
|
|
|
213
|
-
const dataExists: T = await this.dataDBService.getDataByDependencyId(
|
|
235
|
+
const dataExists: T = await this.dataDBService.getDataByDependencyId(
|
|
236
|
+
dependencyId ?? this.data[this.depKey]
|
|
237
|
+
).catch((error): null => {
|
|
214
238
|
if (error?.errorCode === 'NTS-DBS-GD2') {
|
|
215
|
-
Dynamo_Log.warn(
|
|
239
|
+
Dynamo_Log.warn(
|
|
240
|
+
`getDataByDependencyId failed; ${this.dataParams.dataName} ` +
|
|
241
|
+
`(${this.depKey}: ${dependencyId ?? this.data[this.depKey]}) didn't found any.`
|
|
242
|
+
);
|
|
243
|
+
|
|
216
244
|
return null;
|
|
217
245
|
} else {
|
|
218
246
|
throw error;
|
|
219
247
|
}
|
|
220
248
|
});
|
|
249
|
+
|
|
221
250
|
if (!dontSetToService) {
|
|
222
251
|
this.data = dataExists;
|
|
223
252
|
}
|
|
@@ -242,7 +271,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
242
271
|
throw new Dynamo_Error({
|
|
243
272
|
...this._getDefaultErrorSettings(
|
|
244
273
|
'getDatasByDependencyIds',
|
|
245
|
-
new Error(
|
|
274
|
+
new Error(
|
|
275
|
+
`getDatasByDependencyIds failed, dependencyKey is missing from service! ` +
|
|
276
|
+
`(${this.dataParams.dataName})`
|
|
277
|
+
)
|
|
246
278
|
),
|
|
247
279
|
|
|
248
280
|
errorCode: 'NTS-DS0-GDS1',
|
|
@@ -253,7 +285,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
253
285
|
throw new Dynamo_Error({
|
|
254
286
|
...this._getDefaultErrorSettings(
|
|
255
287
|
'getDatasByDependencyIds',
|
|
256
|
-
new Error(
|
|
288
|
+
new Error(
|
|
289
|
+
`getDatasByDependencyIds failed, dependencyIds is missing! ` +
|
|
290
|
+
`(${this.dataParams.dataName})`
|
|
291
|
+
)
|
|
257
292
|
),
|
|
258
293
|
|
|
259
294
|
errorCode: 'NTS-DS0-GDS2',
|
|
@@ -265,6 +300,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
265
300
|
}
|
|
266
301
|
|
|
267
302
|
const datas: T[] = await this.dataDBService.getDatasByDependencyIds(dependencyIds);
|
|
303
|
+
|
|
268
304
|
if (!dontSetToService) {
|
|
269
305
|
this.dataList = datas;
|
|
270
306
|
}
|
|
@@ -293,7 +329,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
293
329
|
throw new Dynamo_Error({
|
|
294
330
|
...this._getDefaultErrorSettings(
|
|
295
331
|
'getDataListByDependencyId',
|
|
296
|
-
new Error(
|
|
332
|
+
new Error(
|
|
333
|
+
`getDataListByDependencyId failed, dependencyKey is missing from service! ` +
|
|
334
|
+
`(${this.dataParams.dataName})`
|
|
335
|
+
)
|
|
297
336
|
),
|
|
298
337
|
|
|
299
338
|
errorCode: 'NTS-DS0-GLD1',
|
|
@@ -304,21 +343,31 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
304
343
|
throw new Dynamo_Error({
|
|
305
344
|
...this._getDefaultErrorSettings(
|
|
306
345
|
'getDataListByDependencyId',
|
|
307
|
-
new Error(
|
|
346
|
+
new Error(
|
|
347
|
+
`getDataListByDependencyId failed, ${this.depKey} is missing! ` +
|
|
348
|
+
`(${this.dataParams.dataName})`
|
|
349
|
+
)
|
|
308
350
|
),
|
|
309
351
|
|
|
310
352
|
errorCode: 'NTS-DS0-GLD2',
|
|
311
353
|
});
|
|
312
354
|
}
|
|
313
355
|
|
|
314
|
-
const dataListExists: T[] = await this.dataDBService.getDataListByDependencyId(
|
|
356
|
+
const dataListExists: T[] = await this.dataDBService.getDataListByDependencyId(
|
|
357
|
+
dependencyId ?? this.data[this.depKey]
|
|
358
|
+
).catch((error): T[] => {
|
|
315
359
|
if (error?.errorCode === 'NTS-DBS-GLD2') {
|
|
316
|
-
Dynamo_Log.warn(
|
|
360
|
+
Dynamo_Log.warn(
|
|
361
|
+
`getDataListByDependencyId ${this.dataParams.dataName} ` +
|
|
362
|
+
`(${this.depKey}: ${dependencyId ?? this.data[this.depKey]}) didn't found any.`
|
|
363
|
+
);
|
|
364
|
+
|
|
317
365
|
return [];
|
|
318
366
|
} else {
|
|
319
367
|
throw error;
|
|
320
368
|
}
|
|
321
369
|
});
|
|
370
|
+
|
|
322
371
|
if (!dontSetToService) {
|
|
323
372
|
this.dataList = dataListExists;
|
|
324
373
|
}
|
|
@@ -369,14 +418,16 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
369
418
|
*/
|
|
370
419
|
async findData(filterBy: DynamoNTS_DBFilter<T>, dontSetToService?: boolean): Promise<T> {
|
|
371
420
|
try {
|
|
372
|
-
const dataExists: T = await this.dataDBService.findOne(filterBy).catch(error => {
|
|
421
|
+
const dataExists: T = await this.dataDBService.findOne(filterBy).catch((error): null => {
|
|
373
422
|
if (error?.errorCode === 'NTS-DBS-FO1') {
|
|
374
423
|
Dynamo_Log.warn(`findData ${this.dataParams.dataName} didn't found any.`);
|
|
424
|
+
|
|
375
425
|
return null;
|
|
376
426
|
} else {
|
|
377
427
|
throw error;
|
|
378
428
|
}
|
|
379
429
|
});
|
|
430
|
+
|
|
380
431
|
if (!dontSetToService) {
|
|
381
432
|
this.data = dataExists;
|
|
382
433
|
}
|
|
@@ -423,14 +474,16 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
423
474
|
*/
|
|
424
475
|
async findDatas(filterBy: DynamoNTS_DBFilter<T>, dontSetToService?: boolean): Promise<T[]> {
|
|
425
476
|
try {
|
|
426
|
-
const dataListExists: T[] = await this.dataDBService.find(filterBy).catch(error => {
|
|
477
|
+
const dataListExists: T[] = await this.dataDBService.find(filterBy).catch((error): T[] => {
|
|
427
478
|
if (error?.errorCode === 'NTS-DBS-F1') {
|
|
428
479
|
Dynamo_Log.warn(`findDatas ${this.dataParams.dataName} didn't found any.`);
|
|
480
|
+
|
|
429
481
|
return [];
|
|
430
482
|
} else {
|
|
431
483
|
throw error;
|
|
432
484
|
}
|
|
433
485
|
});
|
|
486
|
+
|
|
434
487
|
if (!dontSetToService) {
|
|
435
488
|
this.dataList = dataListExists;
|
|
436
489
|
}
|
|
@@ -501,22 +554,35 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
501
554
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
502
555
|
* //
|
|
503
556
|
*/
|
|
504
|
-
async updateData(
|
|
557
|
+
async updateData(
|
|
558
|
+
set: { filterBy?: DynamoNTS_DBFilter<T>, update: DynamoNTS_DBUpdate<T> }
|
|
559
|
+
): Promise<void> {
|
|
505
560
|
try {
|
|
506
561
|
if (set.filterBy) {
|
|
507
562
|
await this.dataDBService.updateOne(set.filterBy, set.update, this.issuer);
|
|
508
563
|
|
|
509
564
|
} else if (this.data._id) {
|
|
510
|
-
await this.dataDBService.updateOne(
|
|
565
|
+
await this.dataDBService.updateOne(
|
|
566
|
+
{ _id: this.data._id } as DynamoNTS_DBFilter<T>,
|
|
567
|
+
set.update,
|
|
568
|
+
this.issuer
|
|
569
|
+
);
|
|
511
570
|
|
|
512
571
|
} else if (this.depKey && this.data[this.depKey]) {
|
|
513
|
-
await this.dataDBService.updateOne(
|
|
572
|
+
await this.dataDBService.updateOne(
|
|
573
|
+
{ [this.depKey]: this.data[this.depKey] } as DynamoNTS_DBFilter<T>,
|
|
574
|
+
set.update,
|
|
575
|
+
this.issuer
|
|
576
|
+
);
|
|
514
577
|
|
|
515
578
|
} else {
|
|
516
579
|
throw new Dynamo_Error({
|
|
517
580
|
...this._getDefaultErrorSettings(
|
|
518
581
|
'updateData',
|
|
519
|
-
new Error(
|
|
582
|
+
new Error(
|
|
583
|
+
`no usable parameter provided for updateData; no updateBy, no id, no dependencyId ` +
|
|
584
|
+
`(${this.dataParams.dataName})`
|
|
585
|
+
)
|
|
520
586
|
),
|
|
521
587
|
|
|
522
588
|
errorCode: 'NTS-DS0-UD1',
|
|
@@ -552,7 +618,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
552
618
|
try {
|
|
553
619
|
if (!this.data) {
|
|
554
620
|
throw new Dynamo_Error({
|
|
555
|
-
...this._getDefaultErrorSettings(
|
|
621
|
+
...this._getDefaultErrorSettings(
|
|
622
|
+
'saveData',
|
|
623
|
+
new Error(`no data to save! (${this.dataParams.dataName})`)
|
|
624
|
+
),
|
|
556
625
|
|
|
557
626
|
errorCode: 'NTS-DS0-SD4',
|
|
558
627
|
});
|
|
@@ -561,6 +630,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
561
630
|
if (!this.data._id && (!this.depKey || !this.data[this.depKey])) {
|
|
562
631
|
// if ID of dependencyID is not present, data not exists, create new data
|
|
563
632
|
this.data = await this.dataDBService.createData(this.data, this.issuer);
|
|
633
|
+
|
|
564
634
|
return this.data;
|
|
565
635
|
}
|
|
566
636
|
|
|
@@ -573,13 +643,17 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
573
643
|
if (dataExists) {
|
|
574
644
|
// if data exists do modify
|
|
575
645
|
this.data = await this.dataDBService.modifyData(this.data, this.issuer);
|
|
646
|
+
|
|
576
647
|
return this.data;
|
|
577
648
|
|
|
578
649
|
} else {
|
|
579
650
|
throw new Dynamo_Error({
|
|
580
651
|
...this._getDefaultErrorSettings(
|
|
581
652
|
'saveData',
|
|
582
|
-
new Error(
|
|
653
|
+
new Error(
|
|
654
|
+
`saveData was unsuccessful: provided ID not exists ` +
|
|
655
|
+
`(id: ${this.data._id}, ${this.dataParams.dataName})`
|
|
656
|
+
)
|
|
583
657
|
),
|
|
584
658
|
|
|
585
659
|
errorCode: 'NTS-DS0-SD1',
|
|
@@ -592,7 +666,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
592
666
|
throw new Dynamo_Error({
|
|
593
667
|
...this._getDefaultErrorSettings(
|
|
594
668
|
'saveData',
|
|
595
|
-
new Error(
|
|
669
|
+
new Error(
|
|
670
|
+
`saveData was unsuccessful: dependency data id missing from data ` +
|
|
671
|
+
`(key: ${this.depKey}, ${this.dataParams.dataName})`
|
|
672
|
+
)
|
|
596
673
|
),
|
|
597
674
|
|
|
598
675
|
errorCode: 'NTS-DS0-SD2',
|
|
@@ -612,13 +689,17 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
612
689
|
// if data not exists check that dependency already exists for this
|
|
613
690
|
const dependencyExists = await this.getDependencyDataDBService()
|
|
614
691
|
.getDataById(this.data[this.depKey])
|
|
615
|
-
.catch(error => null);
|
|
692
|
+
.catch((error): null => null);
|
|
616
693
|
|
|
617
694
|
if(!dependencyExists) {
|
|
618
695
|
throw new Dynamo_Error({
|
|
619
696
|
...this._getDefaultErrorSettings(
|
|
620
697
|
'saveData',
|
|
621
|
-
new Error(
|
|
698
|
+
new Error(
|
|
699
|
+
`saveData was unsuccessful: dependency data not exists ` +
|
|
700
|
+
`(key: ${this.depKey}, id: ${this.data[this.depKey]}, ` +
|
|
701
|
+
`${this.dataParams.dataName})`
|
|
702
|
+
)
|
|
622
703
|
),
|
|
623
704
|
|
|
624
705
|
errorCode: 'NTS-DS0-SD3',
|
|
@@ -630,6 +711,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
630
711
|
|
|
631
712
|
// if data not exists create new data
|
|
632
713
|
this.data = await this.dataDBService.createData(this.data, this.issuer);
|
|
714
|
+
|
|
633
715
|
return this.data;
|
|
634
716
|
|
|
635
717
|
} catch (error) {
|
|
@@ -683,7 +765,8 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
683
765
|
try {
|
|
684
766
|
for (let i = 0; i < this.dataParams.modelParams.length; i++) {
|
|
685
767
|
// basic required validations
|
|
686
|
-
if (
|
|
768
|
+
if (
|
|
769
|
+
(this.dataParams.modelParams[i].required &&
|
|
687
770
|
(this.data[this.dataParams.modelParams[i].key] === null ||
|
|
688
771
|
this.data[this.dataParams.modelParams[i].key] === undefined
|
|
689
772
|
)
|
|
@@ -697,7 +780,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
697
780
|
throw new Dynamo_Error({
|
|
698
781
|
...this._getDefaultErrorSettings(
|
|
699
782
|
'validateForSave',
|
|
700
|
-
new Error(
|
|
783
|
+
new Error(
|
|
784
|
+
`validateForSave failed, ${this.dataParams.modelParams[i].key} is missing! ` +
|
|
785
|
+
`(${this.dataParams.dataName})`
|
|
786
|
+
)
|
|
701
787
|
),
|
|
702
788
|
|
|
703
789
|
status: 422,
|
|
@@ -713,7 +799,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
713
799
|
throw new Dynamo_Error({
|
|
714
800
|
...this._getDefaultErrorSettings(
|
|
715
801
|
'validateForSave',
|
|
716
|
-
new Error(
|
|
802
|
+
new Error(
|
|
803
|
+
`validateForSave failed, ${this.dataParams.modelParams[i].key} is not a date! ` +
|
|
804
|
+
`(${this.dataParams.dataName})`
|
|
805
|
+
)
|
|
717
806
|
),
|
|
718
807
|
|
|
719
808
|
status: 422,
|
|
@@ -725,7 +814,9 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
725
814
|
// call additional validators
|
|
726
815
|
if (this.dataParams.modelParams[i].additionalValidators) {
|
|
727
816
|
for (let j = 0; j < this.dataParams.modelParams[i].additionalValidators.length; j++) {
|
|
728
|
-
this.dataParams.modelParams[i].additionalValidators[j](
|
|
817
|
+
this.dataParams.modelParams[i].additionalValidators[j](
|
|
818
|
+
this.data[this.dataParams.modelParams[i].key]
|
|
819
|
+
);
|
|
729
820
|
}
|
|
730
821
|
}
|
|
731
822
|
}
|
|
@@ -747,7 +838,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
747
838
|
* setting up dependency dataHook by DynamoBEDataModelParams
|
|
748
839
|
*/
|
|
749
840
|
private lookForDependencyDataSettings(): void {
|
|
750
|
-
const dependencyParam: Dynamo_DataPropertyParams = this.dataParams.modelParams.find(
|
|
841
|
+
const dependencyParam: Dynamo_DataPropertyParams = this.dataParams.modelParams.find(
|
|
842
|
+
(modelParams: Dynamo_DataPropertyParams): boolean => modelParams.isDependencyHook
|
|
843
|
+
);
|
|
844
|
+
|
|
751
845
|
if (dependencyParam) {
|
|
752
846
|
this.depKey = dependencyParam.key;
|
|
753
847
|
|
|
@@ -770,7 +864,10 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
770
864
|
throw new Dynamo_Error({
|
|
771
865
|
...this._getDefaultErrorSettings(
|
|
772
866
|
'getDependencyDataDBService',
|
|
773
|
-
new Error(
|
|
867
|
+
new Error(
|
|
868
|
+
`getDependencyDataDBService was unsuccessful, service key not setted up! ` +
|
|
869
|
+
`(${this.dataParams.dataName}))`
|
|
870
|
+
)
|
|
774
871
|
),
|
|
775
872
|
|
|
776
873
|
status: 501,
|
|
@@ -782,6 +879,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
782
879
|
return this.depDataDBService;
|
|
783
880
|
} else {
|
|
784
881
|
this.depDataDBService = DynamoNTS_GlobalService.getDBServiceByKey(this.depDBServiceKey);
|
|
882
|
+
|
|
785
883
|
return this.depDataDBService;
|
|
786
884
|
}
|
|
787
885
|
}
|
|
@@ -789,12 +887,13 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
789
887
|
private _getDefaultErrorSettings(fnName: string, error: Error | Dynamo_Error) {
|
|
790
888
|
return {
|
|
791
889
|
status: (error as Dynamo_Error)?.___status ?? 500,
|
|
792
|
-
message:
|
|
890
|
+
message:
|
|
891
|
+
(error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS; ${this.dataParams.dataName})`,
|
|
793
892
|
addECToUserMsg: true,
|
|
794
893
|
userMessage: this.defaultErrorUserMsg,
|
|
795
894
|
issuer: this.issuer,
|
|
796
895
|
issuerService: this.serviceName + ` (${this?.constructor?.name}-DynamoNTS_DataService)`,
|
|
797
896
|
error: error,
|
|
798
|
-
}
|
|
897
|
+
};
|
|
799
898
|
}
|
|
800
899
|
}
|