@futdevpro/nts-dynamo 1.8.5 → 1.9.1
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/.copilot/patterns.json +1 -1
- package/.eslintrc.json +9 -1
- package/lib/_constants/mocks/app-extended-server.mock.js +5 -5
- package/lib/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/lib/_constants/mocks/app-server.mock.js +4 -4
- package/lib/_constants/mocks/app-server.mock.js.map +1 -1
- package/lib/_constants/mocks/data-model.mock.d.ts +5 -5
- package/lib/_constants/mocks/data-model.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/data-model.mock.js +4 -4
- package/lib/_constants/mocks/data-model.mock.js.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +17 -17
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-event.control-model.js +7 -7
- package/lib/_models/control-models/socket-event.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.js +8 -8
- package/lib/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/lib/_models/interfaces/global-service-settings.interface.d.ts +3 -3
- package/lib/_models/interfaces/global-service-settings.interface.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.js +4 -4
- package/lib/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.d.ts +3 -3
- package/lib/_modules/custom-data/custom-data.data-service.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.js +4 -4
- package/lib/_modules/custom-data/custom-data.data-service.js.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js +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.js +1 -1
- package/lib/_modules/test/get-test-routing-module.util.js.map +1 -1
- package/lib/_modules/test/test.controller.js +6 -6
- package/lib/_modules/test/test.controller.js.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.js +5 -5
- package/lib/_modules/usage/usage.controller.js.map +1 -1
- package/lib/_modules/usage/usage.data-service.d.ts +8 -8
- package/lib/_modules/usage/usage.data-service.d.ts.map +1 -1
- package/lib/_modules/usage/usage.data-service.js +8 -8
- package/lib/_modules/usage/usage.data-service.js.map +1 -1
- package/lib/_services/base/data.service.d.ts +4 -4
- package/lib/_services/base/data.service.d.ts.map +1 -1
- package/lib/_services/base/data.service.js +35 -35
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.d.ts +6 -6
- package/lib/_services/base/db.service.d.ts.map +1 -1
- package/lib/_services/base/db.service.js +31 -31
- package/lib/_services/base/db.service.js.map +1 -1
- package/lib/_services/core/api.service.js +25 -25
- package/lib/_services/core/api.service.js.map +1 -1
- package/lib/_services/core/auth.service.d.ts +6 -6
- package/lib/_services/core/auth.service.js +2 -2
- package/lib/_services/core/auth.service.js.map +1 -1
- package/lib/_services/core/email.service.js +23 -23
- package/lib/_services/core/email.service.js.map +1 -1
- package/lib/_services/core/global.service.d.ts +3 -3
- package/lib/_services/core/global.service.d.ts.map +1 -1
- package/lib/_services/core/global.service.js +7 -7
- package/lib/_services/core/global.service.js.map +1 -1
- package/lib/_services/route/controller.service.js +1 -1
- package/lib/_services/route/controller.service.js.map +1 -1
- package/lib/_services/route/routing-module.service.js +8 -8
- package/lib/_services/route/routing-module.service.js.map +1 -1
- package/lib/_services/server/app-extended.server.d.ts +2 -2
- package/lib/_services/server/app-extended.server.js +25 -25
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app-extended.server.spec.js +3 -3
- package/lib/_services/server/app-extended.server.spec.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +4 -4
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +89 -88
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/_services/server/app.server.spec.js +5 -5
- package/lib/_services/server/app.server.spec.js.map +1 -1
- package/lib/_services/shared.static-service.d.ts +4 -4
- package/lib/_services/shared.static-service.d.ts.map +1 -1
- package/lib/_services/shared.static-service.js +1 -1
- package/lib/_services/shared.static-service.js.map +1 -1
- package/lib/_services/socket/socket-client.service.js +19 -19
- package/lib/_services/socket/socket-client.service.js.map +1 -1
- package/lib/_services/socket/socket-server.service.js +46 -46
- package/lib/_services/socket/socket-server.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +233 -230
- package/src/_constants/mocks/app-extended-server.mock.ts +8 -8
- package/src/_constants/mocks/app-server.mock.ts +6 -6
- package/src/_constants/mocks/data-model.mock.ts +5 -5
- package/src/_models/control-models/api-call-params.control-model.ts +2 -2
- package/src/_models/control-models/endpoint-params.control-model.ts +28 -28
- package/src/_models/control-models/socket-event.control-model.ts +8 -8
- package/src/_models/control-models/socket-presence.control-model.ts +14 -14
- package/src/_models/interfaces/global-service-settings.interface.ts +3 -3
- package/src/_modules/custom-data/custom-data.controller.ts +6 -6
- package/src/_modules/custom-data/custom-data.data-service.ts +5 -5
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +2 -2
- package/src/_modules/test/get-test-routing-module.util.ts +2 -2
- package/src/_modules/test/test.controller.ts +7 -7
- package/src/_modules/usage/get-usage-routing-module.util.ts +2 -2
- package/src/_modules/usage/usage.controller.ts +7 -7
- package/src/_modules/usage/usage.data-service.ts +28 -28
- package/src/_services/base/data.service.ts +46 -46
- package/src/_services/base/db.service.ts +45 -45
- package/src/_services/core/api.service.ts +32 -32
- package/src/_services/core/auth.service.ts +9 -9
- package/src/_services/core/email.service.ts +29 -29
- package/src/_services/core/global.service.ts +12 -12
- package/src/_services/route/controller.service.ts +2 -2
- package/src/_services/route/routing-module.service.ts +9 -9
- package/src/_services/server/app-extended.server.spec.ts +4 -4
- package/src/_services/server/app-extended.server.ts +26 -26
- package/src/_services/server/app.server.spec.ts +6 -6
- package/src/_services/server/app.server.ts +99 -97
- package/src/_services/shared.static-service.ts +4 -4
- package/src/_services/socket/socket-client.service.ts +21 -21
- package/src/_services/socket/socket-server.service.ts +52 -52
- package/tsconfig.json +7 -7
|
@@ -3,8 +3,8 @@ import * as mongoose from 'mongoose';
|
|
|
3
3
|
import { Schema } from 'mongoose';
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
|
|
7
|
+
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
|
|
8
8
|
} from '@futdevpro/fsm-dynamo';
|
|
9
9
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
10
10
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
@@ -12,7 +12,7 @@ import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
|
12
12
|
/**
|
|
13
13
|
* DB Service for MongoDB
|
|
14
14
|
*/
|
|
15
|
-
export class DynamoNTS_DBService<T extends
|
|
15
|
+
export class DynamoNTS_DBService<T extends DynamoFM_Metadata> {
|
|
16
16
|
|
|
17
17
|
serviceName: string;
|
|
18
18
|
|
|
@@ -26,12 +26,12 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* @param dataName name the model
|
|
29
|
-
* @param typeSample sample data for scheme creation (dont include
|
|
29
|
+
* @param typeSample sample data for scheme creation (dont include DynamoFM_Metadata!)
|
|
30
30
|
* @param schemaSettings additional settings for specific parameters as unique, required, minlength or maxlength
|
|
31
31
|
* schemaSettings also MUST contain specific types that differs from the listed above (Array, Date)
|
|
32
32
|
*/
|
|
33
33
|
constructor(
|
|
34
|
-
public dataParams:
|
|
34
|
+
public dataParams: DynamoFM_DataModel_Params
|
|
35
35
|
){
|
|
36
36
|
try {
|
|
37
37
|
this.serviceName = this.constructor?.name;
|
|
@@ -48,7 +48,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
48
48
|
|
|
49
49
|
this.lookForDependencyDataSettings();
|
|
50
50
|
} catch (error) {
|
|
51
|
-
|
|
51
|
+
DynamoFM_Log.error(
|
|
52
52
|
`\nDynamoNTS_DBService ERROR, ` +
|
|
53
53
|
`The dbService construction failed for ${dataParams.dataName}. ${this.serviceName}` +
|
|
54
54
|
`\nERROR: `, error,
|
|
@@ -74,7 +74,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
74
74
|
return res?.toObject() as T;
|
|
75
75
|
|
|
76
76
|
} else {
|
|
77
|
-
throw new
|
|
77
|
+
throw new DynamoFM_Error({
|
|
78
78
|
...this._getDefaultErrorSettings(
|
|
79
79
|
'createData',
|
|
80
80
|
new Error(
|
|
@@ -94,7 +94,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
94
94
|
throw error;
|
|
95
95
|
|
|
96
96
|
} else {
|
|
97
|
-
throw new
|
|
97
|
+
throw new DynamoFM_Error({
|
|
98
98
|
...this._getDefaultErrorSettings('createData', error, issuer),
|
|
99
99
|
|
|
100
100
|
status: 422,
|
|
@@ -129,7 +129,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
129
129
|
/* if (res) {
|
|
130
130
|
//return res?.toObject() as T;
|
|
131
131
|
} else {
|
|
132
|
-
throw new
|
|
132
|
+
throw new DynamoFM_Error({
|
|
133
133
|
...this._getDefaultErrorSettings(
|
|
134
134
|
'modifyData',
|
|
135
135
|
new Error(`modifyData failed, modify ${this.dataParams.dbName} result not found! (NTS DB)`),
|
|
@@ -143,7 +143,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
143
143
|
});
|
|
144
144
|
} */
|
|
145
145
|
}).catch((error): void => {
|
|
146
|
-
throw new
|
|
146
|
+
throw new DynamoFM_Error({
|
|
147
147
|
...this._getDefaultErrorSettings('modifyData', error, issuer),
|
|
148
148
|
|
|
149
149
|
errorCode: 'NTS-DBS-FU0',
|
|
@@ -165,7 +165,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
165
165
|
*/
|
|
166
166
|
async getDataById(id: string): Promise<T> {
|
|
167
167
|
if (!id) {
|
|
168
|
-
throw new
|
|
168
|
+
throw new DynamoFM_Error({
|
|
169
169
|
...this._getDefaultErrorSettings('getDataById', new Error(`No ID provided! (NTS DB)`)),
|
|
170
170
|
|
|
171
171
|
errorCode: 'NTS-DBS-GI1',
|
|
@@ -177,7 +177,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
177
177
|
.findById(id)
|
|
178
178
|
.then((res): T => res?.toObject() as T ?? null)
|
|
179
179
|
.catch((error): void => {
|
|
180
|
-
throw new
|
|
180
|
+
throw new DynamoFM_Error({
|
|
181
181
|
...this._getDefaultErrorSettings('getDataById', error),
|
|
182
182
|
|
|
183
183
|
errorCode: 'NTS-DBS-GI0',
|
|
@@ -200,7 +200,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
200
200
|
*/
|
|
201
201
|
async getDataByDependencyId(dependencyId: string): Promise<T> {
|
|
202
202
|
if (!this.depDataName) {
|
|
203
|
-
throw new
|
|
203
|
+
throw new DynamoFM_Error({
|
|
204
204
|
...this._getDefaultErrorSettings(
|
|
205
205
|
'getDataByDependencyId',
|
|
206
206
|
new Error(
|
|
@@ -218,7 +218,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
218
218
|
.findOne({ [this.depDataName]: dependencyId })
|
|
219
219
|
.then((res): T => res?.toObject() as T ?? null)
|
|
220
220
|
.catch((error): void => {
|
|
221
|
-
throw new
|
|
221
|
+
throw new DynamoFM_Error({
|
|
222
222
|
...this._getDefaultErrorSettings('getDataByDependencyId', error),
|
|
223
223
|
|
|
224
224
|
errorCode: 'NTS-DBS-GD1',
|
|
@@ -242,7 +242,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
242
242
|
*/
|
|
243
243
|
async getDataListByDependencyId(dependencyId: string): Promise<T[]> {
|
|
244
244
|
if (!this.depDataName) {
|
|
245
|
-
throw new
|
|
245
|
+
throw new DynamoFM_Error({
|
|
246
246
|
...this._getDefaultErrorSettings(
|
|
247
247
|
'getDataListByDependencyId',
|
|
248
248
|
new Error(
|
|
@@ -263,7 +263,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
263
263
|
.find({ [this.depDataName]: dependencyId })
|
|
264
264
|
.then((res): T[] => res as T[] ?? [])
|
|
265
265
|
.catch((error): void => {
|
|
266
|
-
throw new
|
|
266
|
+
throw new DynamoFM_Error({
|
|
267
267
|
...this._getDefaultErrorSettings('getDataListByDependencyId', error),
|
|
268
268
|
|
|
269
269
|
errorCode: 'NTS-DBS-GLD1',
|
|
@@ -282,7 +282,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
282
282
|
|
|
283
283
|
async getDatasByDependencyIds(dependencyIds: string[]): Promise<T[]> {
|
|
284
284
|
if (!this.depDataName) {
|
|
285
|
-
throw new
|
|
285
|
+
throw new DynamoFM_Error({
|
|
286
286
|
...this._getDefaultErrorSettings(
|
|
287
287
|
'getDatasByDependencyIds',
|
|
288
288
|
new Error(
|
|
@@ -300,7 +300,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
300
300
|
.find({ [this.depDataName]: { $in: dependencyIds }})
|
|
301
301
|
.then((res): T[] => res as T[] ?? [])
|
|
302
302
|
.catch((error): void => {
|
|
303
|
-
throw new
|
|
303
|
+
throw new DynamoFM_Error({
|
|
304
304
|
...this._getDefaultErrorSettings('getDatasByDependencyIds', error),
|
|
305
305
|
|
|
306
306
|
errorCode: 'NTS-DBS-GLDS1',
|
|
@@ -325,7 +325,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
325
325
|
*/
|
|
326
326
|
async getDataListByDependencyIds(ids: string[]): Promise<T[]> {
|
|
327
327
|
if (!this.depDataName) {
|
|
328
|
-
throw new
|
|
328
|
+
throw new DynamoFM_Error({
|
|
329
329
|
...this._getDefaultErrorSettings(
|
|
330
330
|
'getDataListByDependencyIds',
|
|
331
331
|
new Error(
|
|
@@ -343,7 +343,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
343
343
|
.find({ [this.depDataName]: { $in: ids } })
|
|
344
344
|
.then((res): T[] => res as T[] ?? [])
|
|
345
345
|
.catch((error): void => {
|
|
346
|
-
throw new
|
|
346
|
+
throw new DynamoFM_Error({
|
|
347
347
|
...this._getDefaultErrorSettings('getDataListByDependencyIds', error),
|
|
348
348
|
|
|
349
349
|
errorCode: 'NTS-DBS-GLDS1',
|
|
@@ -371,7 +371,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
371
371
|
.find({})
|
|
372
372
|
.then((res): T[] => res as T[] ?? [])
|
|
373
373
|
.catch((error): void => {
|
|
374
|
-
throw new
|
|
374
|
+
throw new DynamoFM_Error({
|
|
375
375
|
...this._getDefaultErrorSettings('getAll', error),
|
|
376
376
|
|
|
377
377
|
errorCode: 'NTS-DBS-GA0',
|
|
@@ -394,7 +394,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
394
394
|
await this.dataModel
|
|
395
395
|
.findByIdAndDelete(id)
|
|
396
396
|
.catch((error): void => {
|
|
397
|
-
throw new
|
|
397
|
+
throw new DynamoFM_Error({
|
|
398
398
|
...this._getDefaultErrorSettings('deleteDataById', error),
|
|
399
399
|
|
|
400
400
|
errorCode: 'NTS-DBS-DD0',
|
|
@@ -410,7 +410,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
410
410
|
*/
|
|
411
411
|
async deleteDataByDependencyId(dependencyId: string): Promise<void> {
|
|
412
412
|
if (!this.depDataName) {
|
|
413
|
-
throw new
|
|
413
|
+
throw new DynamoFM_Error({
|
|
414
414
|
...this._getDefaultErrorSettings(
|
|
415
415
|
'deleteDataByDependencyId',
|
|
416
416
|
new Error(
|
|
@@ -427,7 +427,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
427
427
|
await this.dataModel
|
|
428
428
|
.deleteMany({ [this.depDataName]: dependencyId })
|
|
429
429
|
.catch((error): void => {
|
|
430
|
-
throw new
|
|
430
|
+
throw new DynamoFM_Error({
|
|
431
431
|
...this._getDefaultErrorSettings('deleteDataByDependencyId', error),
|
|
432
432
|
|
|
433
433
|
errorCode: 'NTS-DBS-DDD1',
|
|
@@ -454,7 +454,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
454
454
|
|
|
455
455
|
if (0 < narrowByDependencyIds.length) {
|
|
456
456
|
if (!this.depDataName) {
|
|
457
|
-
throw new
|
|
457
|
+
throw new DynamoFM_Error({
|
|
458
458
|
...this._getDefaultErrorSettings(
|
|
459
459
|
'searchData',
|
|
460
460
|
new Error(
|
|
@@ -471,7 +471,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
471
471
|
filter[this.depDataName] = { $in: narrowByDependencyIds };
|
|
472
472
|
}
|
|
473
473
|
|
|
474
|
-
await this.dataParams.properties.forEach((modelParam:
|
|
474
|
+
await this.dataParams.properties.forEach((modelParam: DynamoFM_DataProperty_Params): void => {
|
|
475
475
|
if (
|
|
476
476
|
(filterBy[modelParam.key] !== null && filterBy[modelParam.key] !== undefined) ||
|
|
477
477
|
filterBy[modelParam.key + 'Range']
|
|
@@ -525,7 +525,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
525
525
|
.find(filter)
|
|
526
526
|
.then((res): T[] => res as T[] ?? [])
|
|
527
527
|
.catch((error): void => {
|
|
528
|
-
throw new
|
|
528
|
+
throw new DynamoFM_Error({
|
|
529
529
|
...this._getDefaultErrorSettings('searchData', error),
|
|
530
530
|
|
|
531
531
|
errorCode: 'NTS-DBS-SD1',
|
|
@@ -577,7 +577,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
577
577
|
.findOne(filterBy)
|
|
578
578
|
.then((res): T => res as T ?? null)
|
|
579
579
|
.catch((error): void => {
|
|
580
|
-
throw new
|
|
580
|
+
throw new DynamoFM_Error({
|
|
581
581
|
...this._getDefaultErrorSettings('findOne', error),
|
|
582
582
|
|
|
583
583
|
errorCode: 'NTS-DBS-FO0',
|
|
@@ -623,7 +623,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
623
623
|
.find(filterBy)
|
|
624
624
|
.then((res): T[] => res as T[] ?? [])
|
|
625
625
|
.catch((error): void => {
|
|
626
|
-
throw new
|
|
626
|
+
throw new DynamoFM_Error({
|
|
627
627
|
...this._getDefaultErrorSettings('find', error),
|
|
628
628
|
|
|
629
629
|
errorCode: 'NTS-DBS-F0',
|
|
@@ -685,7 +685,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
685
685
|
.limit(pageSize)
|
|
686
686
|
.then((res): T => res ?? [])
|
|
687
687
|
.catch((error): void => {
|
|
688
|
-
throw new
|
|
688
|
+
throw new DynamoFM_Error({
|
|
689
689
|
...this._getDefaultErrorSettings('findWithPaging', error),
|
|
690
690
|
|
|
691
691
|
errorCode: 'NTS-DBS-WP0',
|
|
@@ -718,7 +718,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
718
718
|
.findByIdAndUpdate(id, update)
|
|
719
719
|
.then((res): T => res?.toObject() as T ?? null)
|
|
720
720
|
.catch((error): void => {
|
|
721
|
-
throw new
|
|
721
|
+
throw new DynamoFM_Error({
|
|
722
722
|
...this._getDefaultErrorSettings('findByIdAndUpdate', error, issuer),
|
|
723
723
|
|
|
724
724
|
errorCode: 'NTS-DBS-FIU0',
|
|
@@ -796,7 +796,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
796
796
|
await this.dataModel
|
|
797
797
|
.updateOne(filterBy, update)
|
|
798
798
|
.catch((error): void => {
|
|
799
|
-
throw new
|
|
799
|
+
throw new DynamoFM_Error({
|
|
800
800
|
...this._getDefaultErrorSettings('updateOne', error, issuer),
|
|
801
801
|
|
|
802
802
|
errorCode: 'NTS-DBS-UO0',
|
|
@@ -869,7 +869,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
869
869
|
await this.dataModel
|
|
870
870
|
.updateMany(filterBy, update)
|
|
871
871
|
.catch((error): void => {
|
|
872
|
-
throw new
|
|
872
|
+
throw new DynamoFM_Error({
|
|
873
873
|
...this._getDefaultErrorSettings('updateMany', error, issuer),
|
|
874
874
|
|
|
875
875
|
errorCode: 'NTS-DBS-UM0',
|
|
@@ -893,7 +893,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
893
893
|
data = JSON.parse(JSON.stringify(data));
|
|
894
894
|
|
|
895
895
|
if (typeof data._id !== 'string' || typeof data._id === 'object') {
|
|
896
|
-
|
|
896
|
+
DynamoFM_Log.error(
|
|
897
897
|
`data._id stringifying failed! Please notfiy the DynamoNTS developers! ` +
|
|
898
898
|
`(${fnName})`,
|
|
899
899
|
new Error()
|
|
@@ -907,14 +907,14 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
907
907
|
|
|
908
908
|
private _getDefaultErrorSettings(
|
|
909
909
|
fnName: string,
|
|
910
|
-
error:
|
|
910
|
+
error: DynamoFM_AnyError,
|
|
911
911
|
issuer?: string
|
|
912
|
-
):
|
|
912
|
+
): DynamoFM_Error_Settings {
|
|
913
913
|
return {
|
|
914
|
-
status: (error as
|
|
914
|
+
status: (error as DynamoFM_Error)?.___status ?? 500,
|
|
915
915
|
message: (error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS-DB)`,
|
|
916
|
-
addECToUserMsg: !(error as
|
|
917
|
-
userMessage: (error as
|
|
916
|
+
addECToUserMsg: !(error as DynamoFM_Error)?.__userMessage,
|
|
917
|
+
userMessage: (error as DynamoFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
918
918
|
issuer: issuer,
|
|
919
919
|
issuerService: this.serviceName,
|
|
920
920
|
error: error,
|
|
@@ -931,7 +931,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
931
931
|
private getSchema(): mongoose.Schema {
|
|
932
932
|
let schema: any = this.buildMongooseSchemaByModelParams();
|
|
933
933
|
|
|
934
|
-
schema = this.
|
|
934
|
+
schema = this.addDynamoFM_MetadataToSchema(schema);
|
|
935
935
|
|
|
936
936
|
// tslint:disable-next-line: no-string-literal
|
|
937
937
|
if (schema['_id']) {
|
|
@@ -947,14 +947,14 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
947
947
|
* @param params DynamoBEDataPropertyParams
|
|
948
948
|
* @returns mongoose schema object
|
|
949
949
|
*/
|
|
950
|
-
private buildMongooseSchemaByModelParams(params?:
|
|
950
|
+
private buildMongooseSchemaByModelParams(params?: DynamoFM_DataProperty_Params[]): any {
|
|
951
951
|
const schemaSettingsObj = {};
|
|
952
952
|
|
|
953
953
|
if (!params) {
|
|
954
954
|
params = this.dataParams.properties;
|
|
955
955
|
}
|
|
956
956
|
|
|
957
|
-
params.forEach((property:
|
|
957
|
+
params.forEach((property: DynamoFM_DataProperty_Params): void => {
|
|
958
958
|
const beType = this.getBEType(property.type);
|
|
959
959
|
|
|
960
960
|
if (
|
|
@@ -1031,7 +1031,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
1031
1031
|
* @param schema schema to update
|
|
1032
1032
|
* @returns updated schema
|
|
1033
1033
|
*/
|
|
1034
|
-
private
|
|
1034
|
+
private addDynamoFM_MetadataToSchema(schema: any): any {
|
|
1035
1035
|
schema.__created = { type: Date };
|
|
1036
1036
|
schema.__createdBy = { type: String };
|
|
1037
1037
|
schema.__lastModified = { type: Date };
|
|
@@ -1044,8 +1044,8 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
1044
1044
|
* sets depDataKey
|
|
1045
1045
|
*/
|
|
1046
1046
|
private lookForDependencyDataSettings(): void {
|
|
1047
|
-
const dependencyParam:
|
|
1048
|
-
(modelParams:
|
|
1047
|
+
const dependencyParam: DynamoFM_DataProperty_Params = this.dataParams.properties.find(
|
|
1048
|
+
(modelParams: DynamoFM_DataProperty_Params): boolean => modelParams.isDependencyHook
|
|
1049
1049
|
);
|
|
1050
1050
|
|
|
1051
1051
|
if (dependencyParam) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import * as Axios from 'axios';
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
DynamoFM_AnyError, DynamoFM_Error, DynamoFM_Error_Settings, DynamoFM_Log
|
|
5
5
|
} from '@futdevpro/fsm-dynamo';
|
|
6
6
|
|
|
7
7
|
import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
|
|
@@ -77,7 +77,7 @@ export class DynamoNTS_ApiService {
|
|
|
77
77
|
switch (callParams.type) {
|
|
78
78
|
case DynamoNTS_HttpCallType.get:
|
|
79
79
|
if (inputParams?.body) {
|
|
80
|
-
|
|
80
|
+
DynamoFM_Log.warn('WARNING you cant send body in get calls');
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
a = await this.get<T_Response>(axios, url, callParams);
|
|
@@ -85,7 +85,7 @@ export class DynamoNTS_ApiService {
|
|
|
85
85
|
|
|
86
86
|
case DynamoNTS_HttpCallType.delete:
|
|
87
87
|
if (inputParams?.body) {
|
|
88
|
-
|
|
88
|
+
DynamoFM_Log.warn('WARNING you cant send body in delete calls');
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
a = await this.delete<T_Response>(axios, url, callParams);
|
|
@@ -106,7 +106,7 @@ export class DynamoNTS_ApiService {
|
|
|
106
106
|
break;
|
|
107
107
|
|
|
108
108
|
default:
|
|
109
|
-
|
|
109
|
+
DynamoFM_Log.error('DYNAMOBE ERROR: \n wrong api call type'/* , '\n\n', new Error() */);
|
|
110
110
|
break;
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -156,7 +156,7 @@ export class DynamoNTS_ApiService {
|
|
|
156
156
|
body?: T_Body;
|
|
157
157
|
}
|
|
158
158
|
): void {
|
|
159
|
-
|
|
159
|
+
DynamoFM_Log.error(
|
|
160
160
|
`\n> API ERROR: ${callParams?.name} failed...` +
|
|
161
161
|
`\n${callParams?.baseUrl}${callParams?.endPoint}` +
|
|
162
162
|
`\ncallParams:`, callParams
|
|
@@ -166,10 +166,10 @@ export class DynamoNTS_ApiService {
|
|
|
166
166
|
error.error = JSON.parse(error?.error);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
if ((error?.response?.data as
|
|
170
|
-
|
|
169
|
+
if ((error?.response?.data as DynamoFM_Error)?.flag?.includes('DYNAMO')) {
|
|
170
|
+
DynamoFM_Log.error(`\n${callParams.name} was UNSUCCESSFUL` /* , new Error() */);
|
|
171
171
|
|
|
172
|
-
throw new
|
|
172
|
+
throw new DynamoFM_Error({
|
|
173
173
|
...this._getDefaultErrorSettings(
|
|
174
174
|
callParams.name + ' startApiCall',
|
|
175
175
|
error.response.data
|
|
@@ -184,9 +184,9 @@ export class DynamoNTS_ApiService {
|
|
|
184
184
|
});
|
|
185
185
|
|
|
186
186
|
} else if (error.code === 'ENOTFOUND') {
|
|
187
|
-
|
|
187
|
+
DynamoFM_Log.error(`\n${callParams.name} was UNSUCCESSFUL` /* , new Error() */);
|
|
188
188
|
|
|
189
|
-
throw new
|
|
189
|
+
throw new DynamoFM_Error({
|
|
190
190
|
...this._getDefaultErrorSettings(
|
|
191
191
|
callParams.name + ' startApiCall',
|
|
192
192
|
error
|
|
@@ -202,9 +202,9 @@ export class DynamoNTS_ApiService {
|
|
|
202
202
|
});
|
|
203
203
|
|
|
204
204
|
} else if (error.code === 'ECONNREFUSED') {
|
|
205
|
-
|
|
205
|
+
DynamoFM_Log.error(`\n${callParams.name} was UNSUCCESSFUL` /* , new Error() */);
|
|
206
206
|
|
|
207
|
-
throw new
|
|
207
|
+
throw new DynamoFM_Error({
|
|
208
208
|
...this._getDefaultErrorSettings(
|
|
209
209
|
callParams.name + ' startApiCall',
|
|
210
210
|
error
|
|
@@ -221,7 +221,7 @@ export class DynamoNTS_ApiService {
|
|
|
221
221
|
|
|
222
222
|
} else if (error.config && error.message) {
|
|
223
223
|
|
|
224
|
-
throw new
|
|
224
|
+
throw new DynamoFM_Error({
|
|
225
225
|
...this._getDefaultErrorSettings(
|
|
226
226
|
callParams.name + ' startApiCall',
|
|
227
227
|
error
|
|
@@ -235,7 +235,7 @@ export class DynamoNTS_ApiService {
|
|
|
235
235
|
},
|
|
236
236
|
});
|
|
237
237
|
} else {
|
|
238
|
-
|
|
238
|
+
DynamoFM_Log.error(`\n${callParams.name} was UNSUCCESSFUL`, error /*, '\n\n' , new Error() */);
|
|
239
239
|
|
|
240
240
|
throw error;
|
|
241
241
|
}
|
|
@@ -254,10 +254,10 @@ export class DynamoNTS_ApiService {
|
|
|
254
254
|
).then((res: Axios.AxiosResponse): T_Response => {
|
|
255
255
|
if (DynamoNTS_globalSettings.logApiEvents) {
|
|
256
256
|
if (DynamoNTS_globalSettings.logApiResponseContents) {
|
|
257
|
-
|
|
257
|
+
DynamoFM_Log.success(`> ${callParams.name} api call was successful`, res.data);
|
|
258
258
|
|
|
259
259
|
} else {
|
|
260
|
-
|
|
260
|
+
DynamoFM_Log.success(`> ${callParams.name} api call was successful`);
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
|
|
@@ -278,9 +278,9 @@ export class DynamoNTS_ApiService {
|
|
|
278
278
|
(res: Axios.AxiosResponse): T_Response => {
|
|
279
279
|
if (DynamoNTS_globalSettings.logApiEvents) {
|
|
280
280
|
if (DynamoNTS_globalSettings.logApiResponseContents) {
|
|
281
|
-
|
|
281
|
+
DynamoFM_Log.success(`${callParams.name} was successful`, res.data);
|
|
282
282
|
} else {
|
|
283
|
-
|
|
283
|
+
DynamoFM_Log.success(`${callParams.name} was successful`);
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
|
|
@@ -300,9 +300,9 @@ export class DynamoNTS_ApiService {
|
|
|
300
300
|
(res: Axios.AxiosResponse): T_Response => {
|
|
301
301
|
if (DynamoNTS_globalSettings.logApiEvents) {
|
|
302
302
|
if (DynamoNTS_globalSettings.logApiResponseContents) {
|
|
303
|
-
|
|
303
|
+
DynamoFM_Log.success(`${callParams.name} was successful`, res.data);
|
|
304
304
|
} else {
|
|
305
|
-
|
|
305
|
+
DynamoFM_Log.success(`${callParams.name} was successful`);
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
|
|
@@ -321,15 +321,15 @@ export class DynamoNTS_ApiService {
|
|
|
321
321
|
callParams: DynamoNTS_ApiCall_Params
|
|
322
322
|
): void {
|
|
323
323
|
if (DynamoNTS_globalSettings.logApiRequestContents) {
|
|
324
|
-
|
|
324
|
+
DynamoFM_Log.log(`< outgoing API call: ${url} \nbody:`, inputParams?.body);
|
|
325
325
|
|
|
326
326
|
} else {
|
|
327
|
-
|
|
327
|
+
DynamoFM_Log.log(`< outgoing API call: ${url}`);
|
|
328
328
|
}
|
|
329
329
|
|
|
330
330
|
if (DynamoNTS_globalSettings.logApiRequestSettings) {
|
|
331
|
-
|
|
332
|
-
|
|
331
|
+
DynamoFM_Log.log(`callParams:`, callParams);
|
|
332
|
+
DynamoFM_Log.log('inputParams:', {
|
|
333
333
|
pathParams: inputParams.pathParams ?? {},
|
|
334
334
|
body: inputParams.body ?? null,
|
|
335
335
|
});
|
|
@@ -345,7 +345,7 @@ export class DynamoNTS_ApiService {
|
|
|
345
345
|
axios.defaults.headers.common[headerKey] = callParams.httpOptions.headers[headerKey];
|
|
346
346
|
|
|
347
347
|
} else {
|
|
348
|
-
|
|
348
|
+
DynamoFM_Log.error(
|
|
349
349
|
'DYNAMOBE ERROR: \n missing header:',
|
|
350
350
|
headerKey
|
|
351
351
|
);
|
|
@@ -374,7 +374,7 @@ export class DynamoNTS_ApiService {
|
|
|
374
374
|
break;
|
|
375
375
|
|
|
376
376
|
default:
|
|
377
|
-
|
|
377
|
+
DynamoFM_Log.error(
|
|
378
378
|
`DYNAMOBE ERROR: \n wrong path param type: (${pathParamKey}): ${paramType} ` +
|
|
379
379
|
`\n${pathParams[pathParamKey]}` +
|
|
380
380
|
`\nMUST BE string or number` +
|
|
@@ -384,7 +384,7 @@ export class DynamoNTS_ApiService {
|
|
|
384
384
|
break;
|
|
385
385
|
}
|
|
386
386
|
} else {
|
|
387
|
-
|
|
387
|
+
DynamoFM_Log.error(
|
|
388
388
|
'DYNAMOBE ERROR: \n missing pathParam:',
|
|
389
389
|
pathParamKey /* , '\n\n', new Error() */
|
|
390
390
|
);
|
|
@@ -396,13 +396,13 @@ export class DynamoNTS_ApiService {
|
|
|
396
396
|
|
|
397
397
|
private static _getDefaultErrorSettings(
|
|
398
398
|
fnName: string,
|
|
399
|
-
error:
|
|
400
|
-
):
|
|
399
|
+
error: DynamoFM_AnyError
|
|
400
|
+
): DynamoFM_Error_Settings {
|
|
401
401
|
return {
|
|
402
|
-
status: (error as
|
|
402
|
+
status: (error as DynamoFM_Error)?.___status ?? 500,
|
|
403
403
|
message: (error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS)`,
|
|
404
|
-
addECToUserMsg: !(error as
|
|
405
|
-
userMessage: (error as
|
|
404
|
+
addECToUserMsg: !(error as DynamoFM_Error)?.__userMessage,
|
|
405
|
+
userMessage: (error as DynamoFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
406
406
|
issuerService: `${this?.constructor?.name}-${this?.name}-DynamoNTS_ApiService`,
|
|
407
407
|
error: error,
|
|
408
408
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { DynamoFM_Error } from '@futdevpro/fsm-dynamo';
|
|
5
5
|
|
|
6
6
|
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
7
7
|
|
|
@@ -37,7 +37,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
37
37
|
const authHeader = req.headers['authorization'];
|
|
38
38
|
|
|
39
39
|
if (!authHeader) {
|
|
40
|
-
throw new
|
|
40
|
+
throw new DynamoFM_Error({
|
|
41
41
|
status: 401,
|
|
42
42
|
errorCode: 'NTS-AS0-GT0',
|
|
43
43
|
addECToUserMsg: true,
|
|
@@ -50,7 +50,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
50
50
|
const token = authHeader.split(' ')[1];
|
|
51
51
|
|
|
52
52
|
if (!token) {
|
|
53
|
-
throw new
|
|
53
|
+
throw new DynamoFM_Error({
|
|
54
54
|
status: 401,
|
|
55
55
|
errorCode: 'NTS-AS0-GT1',
|
|
56
56
|
addECToUserMsg: true,
|
|
@@ -74,18 +74,18 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
74
74
|
* let token = AuthService.getTokenFromRequest(req);
|
|
75
75
|
* token = await AuthService.verifyToken(token);
|
|
76
76
|
*
|
|
77
|
-
*
|
|
77
|
+
* DynamoFM_Log.success('token authenticated');
|
|
78
78
|
* res.setHeader('authorization', `Bearer ${token}`);
|
|
79
79
|
* next();
|
|
80
80
|
* } catch (error) {
|
|
81
|
-
* error = new
|
|
81
|
+
* error = new DynamoFM_Error({
|
|
82
82
|
* status: 401,
|
|
83
83
|
* message: `authenticateToken (WB-ERROR)`,
|
|
84
84
|
* addECToUserMsg: true,
|
|
85
85
|
* userMessage: `Authorization failed.`,
|
|
86
86
|
* error
|
|
87
87
|
* });
|
|
88
|
-
*
|
|
88
|
+
* DynamoFM_Log.error(error?.message, error);
|
|
89
89
|
*
|
|
90
90
|
* res.status(error.status);
|
|
91
91
|
* res.send(error);
|
|
@@ -108,19 +108,19 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
|
|
|
108
108
|
* try {
|
|
109
109
|
* let token = AuthService.getTokenFromRequest(req);
|
|
110
110
|
* token = await AuthService.verifyTokenSelf(token, req?.params?.userId);
|
|
111
|
-
*
|
|
111
|
+
* DynamoFM_Log.success('selftoken authenticated');
|
|
112
112
|
*
|
|
113
113
|
* res.setHeader('authorization', `Bearer ${token}`);
|
|
114
114
|
* next();
|
|
115
115
|
* } catch (error) {
|
|
116
|
-
* error = new
|
|
116
|
+
* error = new DynamoFM_Error({
|
|
117
117
|
* status: 401,
|
|
118
118
|
* message: `authenticateTokenSelf (WB-ERROR)`,
|
|
119
119
|
* addECToUserMsg: true,
|
|
120
120
|
* userMessage: `Authorization failed.`,
|
|
121
121
|
* error
|
|
122
122
|
* });
|
|
123
|
-
*
|
|
123
|
+
* DynamoFM_Log.error(error?.message, error);
|
|
124
124
|
*
|
|
125
125
|
* res.status(error.status);
|
|
126
126
|
* res.send(error);
|