@futdevpro/nts-dynamo 1.7.16 → 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 +107 -52
- 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
|
@@ -8,8 +8,6 @@ import {
|
|
|
8
8
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
9
9
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
11
|
/**
|
|
14
12
|
* DB Service for MongoDB
|
|
15
13
|
*/
|
|
@@ -50,7 +48,8 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
50
48
|
this.lookForDependencyDataSettings();
|
|
51
49
|
} catch (error) {
|
|
52
50
|
Dynamo_Log.error(
|
|
53
|
-
`\nDynamoNTS_DBService ERROR,
|
|
51
|
+
`\nDynamoNTS_DBService ERROR, ` +
|
|
52
|
+
`The dbService construction failed for ${dataParams.dataName}. ${this.serviceName}`,
|
|
54
53
|
error,
|
|
55
54
|
new Error()
|
|
56
55
|
);
|
|
@@ -69,14 +68,17 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
69
68
|
data.__lastModifiedBy = issuer;
|
|
70
69
|
|
|
71
70
|
const dataModel = new this.dataModel(data);
|
|
72
|
-
let newData: T = await dataModel.save().then(res => {
|
|
71
|
+
let newData: T = await dataModel.save().then((res): T => {
|
|
73
72
|
if (res) {
|
|
74
73
|
return res?.toObject() as T;
|
|
74
|
+
|
|
75
75
|
} else {
|
|
76
76
|
throw new Dynamo_Error({
|
|
77
77
|
...this._getDefaultErrorSettings(
|
|
78
78
|
'createData',
|
|
79
|
-
new Error(
|
|
79
|
+
new Error(
|
|
80
|
+
`createData failed, save ${this.dataParams.dbName} result not found! (NTS DB)`
|
|
81
|
+
),
|
|
80
82
|
issuer,
|
|
81
83
|
),
|
|
82
84
|
|
|
@@ -86,9 +88,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
86
88
|
issuer,
|
|
87
89
|
});
|
|
88
90
|
}
|
|
89
|
-
}).catch(error => {
|
|
91
|
+
}).catch((error): void => {
|
|
90
92
|
if (error?.flag?.includes('DYNAMO')) {
|
|
91
93
|
throw error;
|
|
94
|
+
|
|
92
95
|
} else {
|
|
93
96
|
throw new Dynamo_Error({
|
|
94
97
|
...this._getDefaultErrorSettings('createData', error, issuer),
|
|
@@ -96,7 +99,8 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
96
99
|
status: 422,
|
|
97
100
|
errorCode: 'NTS-DBS-CD0',
|
|
98
101
|
additionalContent: { data },
|
|
99
|
-
message:
|
|
102
|
+
message:
|
|
103
|
+
`createData failed, Create new ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
100
104
|
issuer,
|
|
101
105
|
});
|
|
102
106
|
}
|
|
@@ -116,8 +120,11 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
116
120
|
data.__lastModified = new Date();
|
|
117
121
|
data.__lastModifiedBy = issuer;
|
|
118
122
|
|
|
119
|
-
/**
|
|
120
|
-
|
|
123
|
+
/**
|
|
124
|
+
* EZ A SZAR TELJESEN SZAR, nem friss, nem a db-be mentett adatokat ad vissza,
|
|
125
|
+
* átír random value-kat össze vissza, WTF
|
|
126
|
+
* */
|
|
127
|
+
/* let newData: T = */ await this.dataModel.findByIdAndUpdate(data._id, data).then((res) => {
|
|
121
128
|
/* if (res) {
|
|
122
129
|
//return res?.toObject() as T;
|
|
123
130
|
} else {
|
|
@@ -134,7 +141,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
134
141
|
issuer,
|
|
135
142
|
});
|
|
136
143
|
} */
|
|
137
|
-
}).catch(error => {
|
|
144
|
+
}).catch((error): void => {
|
|
138
145
|
throw new Dynamo_Error({
|
|
139
146
|
...this._getDefaultErrorSettings('modifyData', error, issuer),
|
|
140
147
|
|
|
@@ -165,17 +172,18 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
165
172
|
});
|
|
166
173
|
}
|
|
167
174
|
|
|
168
|
-
let data: T = await this.dataModel
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
175
|
+
let data: T = await this.dataModel
|
|
176
|
+
.findById(id)
|
|
177
|
+
.then((res): T => res?.toObject() as T ?? null)
|
|
178
|
+
.catch((error): void => {
|
|
179
|
+
throw new Dynamo_Error({
|
|
180
|
+
...this._getDefaultErrorSettings('getDataById', error),
|
|
173
181
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
182
|
+
errorCode: 'NTS-DBS-GI0',
|
|
183
|
+
additionalContent: { id },
|
|
184
|
+
message: `get ${this.dataParams.dbName} by ID was unsuccessful (NTS DB)`,
|
|
185
|
+
});
|
|
177
186
|
});
|
|
178
|
-
});
|
|
179
187
|
|
|
180
188
|
data = this.stringifyDataId(data, 'getDataById');
|
|
181
189
|
|
|
@@ -194,7 +202,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
194
202
|
throw new Dynamo_Error({
|
|
195
203
|
...this._getDefaultErrorSettings(
|
|
196
204
|
'getDataByDependencyId',
|
|
197
|
-
new Error(
|
|
205
|
+
new Error(
|
|
206
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
207
|
+
`(NTS DB)`
|
|
208
|
+
)
|
|
198
209
|
),
|
|
199
210
|
|
|
200
211
|
status: 501,
|
|
@@ -202,17 +213,19 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
202
213
|
});
|
|
203
214
|
}
|
|
204
215
|
|
|
205
|
-
let data: T = await this.dataModel
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
216
|
+
let data: T = await this.dataModel
|
|
217
|
+
.findOne({ [this.depDataName]: dependencyId })
|
|
218
|
+
.then((res): T => res?.toObject() as T ?? null)
|
|
219
|
+
.catch((error): void => {
|
|
220
|
+
throw new Dynamo_Error({
|
|
221
|
+
...this._getDefaultErrorSettings('getDataByDependencyId', error),
|
|
210
222
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
223
|
+
errorCode: 'NTS-DBS-GD1',
|
|
224
|
+
additionalContent: { dependencyId },
|
|
225
|
+
message:
|
|
226
|
+
`get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
227
|
+
});
|
|
214
228
|
});
|
|
215
|
-
});
|
|
216
229
|
|
|
217
230
|
data = this.stringifyDataId(data, 'getDataByDependencyId');
|
|
218
231
|
|
|
@@ -231,7 +244,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
231
244
|
throw new Dynamo_Error({
|
|
232
245
|
...this._getDefaultErrorSettings(
|
|
233
246
|
'getDataListByDependencyId',
|
|
234
|
-
new Error(
|
|
247
|
+
new Error(
|
|
248
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
249
|
+
`(NTS DB)`
|
|
250
|
+
)
|
|
235
251
|
),
|
|
236
252
|
|
|
237
253
|
status: 501,
|
|
@@ -239,19 +255,21 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
239
255
|
});
|
|
240
256
|
}
|
|
241
257
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
258
|
+
const dataList: T[] = await this.dataModel
|
|
259
|
+
.find({ [this.depDataName]: dependencyId })
|
|
260
|
+
.then((res): T[] => res as T[] ?? [])
|
|
261
|
+
.catch((error): void => {
|
|
262
|
+
throw new Dynamo_Error({
|
|
263
|
+
...this._getDefaultErrorSettings('getDataListByDependencyId', error),
|
|
264
|
+
|
|
265
|
+
errorCode: 'NTS-DBS-GLD1',
|
|
266
|
+
additionalContent: { dependencyId },
|
|
267
|
+
message:
|
|
268
|
+
`get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
269
|
+
});
|
|
251
270
|
});
|
|
252
|
-
});
|
|
253
271
|
|
|
254
|
-
dataList.forEach((data: T) => {
|
|
272
|
+
dataList.forEach((data: T): void => {
|
|
255
273
|
data = this.stringifyDataId(data, 'getDataListByDependencyId');
|
|
256
274
|
});
|
|
257
275
|
|
|
@@ -263,7 +281,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
263
281
|
throw new Dynamo_Error({
|
|
264
282
|
...this._getDefaultErrorSettings(
|
|
265
283
|
'getDatasByDependencyIds',
|
|
266
|
-
new Error(
|
|
284
|
+
new Error(
|
|
285
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
286
|
+
`(NTS DB)`
|
|
287
|
+
)
|
|
267
288
|
),
|
|
268
289
|
|
|
269
290
|
status: 501,
|
|
@@ -271,19 +292,20 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
271
292
|
});
|
|
272
293
|
}
|
|
273
294
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
295
|
+
const dataList: T[] = await this.dataModel
|
|
296
|
+
.find({ [this.depDataName]: { $in: dependencyIds }})
|
|
297
|
+
.then((res): T[] => res as T[] ?? [])
|
|
298
|
+
.catch((error): void => {
|
|
299
|
+
throw new Dynamo_Error({
|
|
300
|
+
...this._getDefaultErrorSettings('getDatasByDependencyIds', error),
|
|
279
301
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
302
|
+
errorCode: 'NTS-DBS-GLDS1',
|
|
303
|
+
additionalContent: { dependencyIds },
|
|
304
|
+
message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
305
|
+
});
|
|
283
306
|
});
|
|
284
|
-
});
|
|
285
307
|
|
|
286
|
-
dataList.forEach((data: T) => {
|
|
308
|
+
dataList.forEach((data: T): void => {
|
|
287
309
|
data = this.stringifyDataId(data, 'getDatasByDependencyIds');
|
|
288
310
|
});
|
|
289
311
|
|
|
@@ -302,7 +324,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
302
324
|
throw new Dynamo_Error({
|
|
303
325
|
...this._getDefaultErrorSettings(
|
|
304
326
|
'getDataListByDependencyIds',
|
|
305
|
-
new Error(
|
|
327
|
+
new Error(
|
|
328
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
329
|
+
`(NTS DB)`
|
|
330
|
+
)
|
|
306
331
|
),
|
|
307
332
|
|
|
308
333
|
status: 501,
|
|
@@ -310,19 +335,21 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
310
335
|
});
|
|
311
336
|
}
|
|
312
337
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
338
|
+
const dataList: T[] = await this.dataModel
|
|
339
|
+
.find({ [this.depDataName]: { $in: ids } })
|
|
340
|
+
.then((res): T[] => res as T[] ?? [])
|
|
341
|
+
.catch((error): void => {
|
|
342
|
+
throw new Dynamo_Error({
|
|
343
|
+
...this._getDefaultErrorSettings('getDataListByDependencyIds', error),
|
|
344
|
+
|
|
345
|
+
errorCode: 'NTS-DBS-GLDS1',
|
|
346
|
+
additionalContent: { ids },
|
|
347
|
+
message:
|
|
348
|
+
`get ${this.dataParams.dbName}s by ${this.depDataName}s was unsuccessful (NTS DB)`,
|
|
349
|
+
});
|
|
322
350
|
});
|
|
323
|
-
});
|
|
324
351
|
|
|
325
|
-
dataList.forEach((data: T) => {
|
|
352
|
+
dataList.forEach((data: T): void => {
|
|
326
353
|
data = this.stringifyDataId(data, 'getDataListByDependencyIds');
|
|
327
354
|
});
|
|
328
355
|
|
|
@@ -336,19 +363,19 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
336
363
|
* @returns dataList
|
|
337
364
|
*/
|
|
338
365
|
async getAll(): Promise<T[]> {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
366
|
+
const dataList: T[] = await this.dataModel
|
|
367
|
+
.find({})
|
|
368
|
+
.then((res): T[] => res as T[] ?? [])
|
|
369
|
+
.catch((error): void => {
|
|
370
|
+
throw new Dynamo_Error({
|
|
371
|
+
...this._getDefaultErrorSettings('getAll', error),
|
|
372
|
+
|
|
373
|
+
errorCode: 'NTS-DBS-GA0',
|
|
374
|
+
message: `get all ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
375
|
+
});
|
|
348
376
|
});
|
|
349
|
-
});
|
|
350
377
|
|
|
351
|
-
dataList.forEach((data: T) => {
|
|
378
|
+
dataList.forEach((data: T): void => {
|
|
352
379
|
data = this.stringifyDataId(data, 'getAll');
|
|
353
380
|
});
|
|
354
381
|
|
|
@@ -360,15 +387,17 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
360
387
|
* @param id id
|
|
361
388
|
*/
|
|
362
389
|
async deleteDataById(id: string): Promise<void> {
|
|
363
|
-
await this.dataModel
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
390
|
+
await this.dataModel
|
|
391
|
+
.findByIdAndDelete(id)
|
|
392
|
+
.catch((error): void => {
|
|
393
|
+
throw new Dynamo_Error({
|
|
394
|
+
...this._getDefaultErrorSettings('deleteDataById', error),
|
|
395
|
+
|
|
396
|
+
errorCode: 'NTS-DBS-DD0',
|
|
397
|
+
additionalContent: { id },
|
|
398
|
+
message: `delete ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
399
|
+
});
|
|
370
400
|
});
|
|
371
|
-
});
|
|
372
401
|
}
|
|
373
402
|
|
|
374
403
|
/**
|
|
@@ -380,7 +409,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
380
409
|
throw new Dynamo_Error({
|
|
381
410
|
...this._getDefaultErrorSettings(
|
|
382
411
|
'deleteDataByDependencyId',
|
|
383
|
-
new Error(
|
|
412
|
+
new Error(
|
|
413
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
414
|
+
`(NTS DB)`
|
|
415
|
+
)
|
|
384
416
|
),
|
|
385
417
|
|
|
386
418
|
status: 501,
|
|
@@ -388,15 +420,18 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
388
420
|
});
|
|
389
421
|
}
|
|
390
422
|
|
|
391
|
-
await this.dataModel
|
|
392
|
-
|
|
393
|
-
|
|
423
|
+
await this.dataModel
|
|
424
|
+
.deleteMany({ [this.depDataName]: dependencyId })
|
|
425
|
+
.catch((error): void => {
|
|
426
|
+
throw new Dynamo_Error({
|
|
427
|
+
...this._getDefaultErrorSettings('deleteDataByDependencyId', error),
|
|
394
428
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
429
|
+
errorCode: 'NTS-DBS-DDD1',
|
|
430
|
+
additionalContent: { dependencyId },
|
|
431
|
+
message:
|
|
432
|
+
`delete ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
433
|
+
});
|
|
398
434
|
});
|
|
399
|
-
});
|
|
400
435
|
}
|
|
401
436
|
|
|
402
437
|
/**
|
|
@@ -407,7 +442,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
407
442
|
* @param narrowByDependencyIds id
|
|
408
443
|
* @returns dataList
|
|
409
444
|
*/
|
|
410
|
-
async searchData(
|
|
445
|
+
async searchData(
|
|
446
|
+
filterBy: DynamoNTS_DBFilter<T>,
|
|
447
|
+
narrowByDependencyIds?: string[]
|
|
448
|
+
): Promise<T[]> {
|
|
411
449
|
const filter = {};
|
|
412
450
|
|
|
413
451
|
if (0 < narrowByDependencyIds.length) {
|
|
@@ -415,7 +453,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
415
453
|
throw new Dynamo_Error({
|
|
416
454
|
...this._getDefaultErrorSettings(
|
|
417
455
|
'searchData',
|
|
418
|
-
new Error(
|
|
456
|
+
new Error(
|
|
457
|
+
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
458
|
+
`(NTS DB)`
|
|
459
|
+
)
|
|
419
460
|
),
|
|
420
461
|
|
|
421
462
|
status: 501,
|
|
@@ -426,7 +467,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
426
467
|
filter[this.depDataName] = { $in: narrowByDependencyIds };
|
|
427
468
|
}
|
|
428
469
|
|
|
429
|
-
await this.dataParams.modelParams.forEach((modelParam: Dynamo_DataPropertyParams) => {
|
|
470
|
+
await this.dataParams.modelParams.forEach((modelParam: Dynamo_DataPropertyParams): void => {
|
|
430
471
|
if (
|
|
431
472
|
(filterBy[modelParam.key] !== null && filterBy[modelParam.key] !== undefined) ||
|
|
432
473
|
filterBy[modelParam.key + 'Range']
|
|
@@ -435,6 +476,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
435
476
|
// inverz search filter (for Range and Array functions)
|
|
436
477
|
if (modelParam.key.includes('Range')) {
|
|
437
478
|
const searchParamKeyWithoutRange = modelParam.key.split('Range')[0];
|
|
479
|
+
|
|
438
480
|
if (
|
|
439
481
|
filterBy[searchParamKeyWithoutRange] !== null &&
|
|
440
482
|
filterBy[searchParamKeyWithoutRange] !== undefined
|
|
@@ -457,9 +499,11 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
457
499
|
if (filterBy[modelParam.key + 'Range']) {
|
|
458
500
|
if (filterBy[modelParam.key + 'Range'].from || filterBy[modelParam.key + 'Range'].to) {
|
|
459
501
|
filter[modelParam.key] = {};
|
|
502
|
+
|
|
460
503
|
if (filterBy[modelParam.key + 'Range'].from) {
|
|
461
504
|
filter[modelParam.key].$gte = filterBy[modelParam.key + 'Range'].from;
|
|
462
505
|
}
|
|
506
|
+
|
|
463
507
|
if (filterBy[modelParam.key + 'Range'].to) {
|
|
464
508
|
filter[modelParam.key].$lte = filterBy[modelParam.key + 'Range'].to;
|
|
465
509
|
}
|
|
@@ -473,10 +517,10 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
473
517
|
}
|
|
474
518
|
});
|
|
475
519
|
|
|
476
|
-
|
|
520
|
+
const dataList: T[] = await this.dataModel
|
|
477
521
|
.find(filter)
|
|
478
|
-
.then(res => res ?? [])
|
|
479
|
-
.catch(error => {
|
|
522
|
+
.then((res): T[] => res as T[] ?? [])
|
|
523
|
+
.catch((error): void => {
|
|
480
524
|
throw new Dynamo_Error({
|
|
481
525
|
...this._getDefaultErrorSettings('searchData', error),
|
|
482
526
|
|
|
@@ -486,7 +530,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
486
530
|
});
|
|
487
531
|
});
|
|
488
532
|
|
|
489
|
-
dataList.forEach((data: T) => {
|
|
533
|
+
dataList.forEach((data: T): void => {
|
|
490
534
|
data = this.stringifyDataId(data, 'searchData');
|
|
491
535
|
});
|
|
492
536
|
|
|
@@ -525,17 +569,18 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
525
569
|
* @returns {T} data: T
|
|
526
570
|
*/
|
|
527
571
|
async findOne(filterBy: DynamoNTS_DBFilter<T>): Promise<T> {
|
|
528
|
-
let data: T = await this.dataModel
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
572
|
+
let data: T = await this.dataModel
|
|
573
|
+
.findOne(filterBy)
|
|
574
|
+
.then((res): T => res as T ?? null)
|
|
575
|
+
.catch((error): void => {
|
|
576
|
+
throw new Dynamo_Error({
|
|
577
|
+
...this._getDefaultErrorSettings('findOne', error),
|
|
533
578
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
579
|
+
errorCode: 'NTS-DBS-FO0',
|
|
580
|
+
additionalContent: { filterBy },
|
|
581
|
+
message: `findOne ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
582
|
+
});
|
|
537
583
|
});
|
|
538
|
-
});
|
|
539
584
|
|
|
540
585
|
data = this.stringifyDataId(data, 'findOne');
|
|
541
586
|
|
|
@@ -570,20 +615,20 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
570
615
|
* @returns {T[]} dataList: T[]
|
|
571
616
|
*/
|
|
572
617
|
async find(filterBy: DynamoNTS_DBFilter<T>): Promise<T[]> {
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
618
|
+
const dataList: T[] = await this.dataModel
|
|
619
|
+
.find(filterBy)
|
|
620
|
+
.then((res): T[] => res as T[] ?? [])
|
|
621
|
+
.catch((error): void => {
|
|
622
|
+
throw new Dynamo_Error({
|
|
623
|
+
...this._getDefaultErrorSettings('find', error),
|
|
624
|
+
|
|
625
|
+
errorCode: 'NTS-DBS-F0',
|
|
626
|
+
additionalContent: { filterBy },
|
|
627
|
+
message: `find ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
628
|
+
});
|
|
583
629
|
});
|
|
584
|
-
});
|
|
585
630
|
|
|
586
|
-
dataList.forEach((data: T) => {
|
|
631
|
+
dataList.forEach((data: T): void => {
|
|
587
632
|
data = this.stringifyDataId(data, 'find');
|
|
588
633
|
});
|
|
589
634
|
|
|
@@ -623,23 +668,29 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
623
668
|
* //
|
|
624
669
|
* @returns {T[]} dataList: T[]
|
|
625
670
|
*/
|
|
626
|
-
async findWithPaging(
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
671
|
+
async findWithPaging(
|
|
672
|
+
filterBy: DynamoNTS_DBFilter<T>,
|
|
673
|
+
page: number,
|
|
674
|
+
pageSize: number,
|
|
675
|
+
sort?: any
|
|
676
|
+
): Promise<T[]> {
|
|
677
|
+
const dataList: T[] = await this.dataModel
|
|
678
|
+
.find(filterBy)
|
|
679
|
+
.sort(sort)
|
|
680
|
+
.skip(page * pageSize)
|
|
681
|
+
.limit(pageSize)
|
|
682
|
+
.then((res): T => res ?? [])
|
|
683
|
+
.catch((error): void => {
|
|
684
|
+
throw new Dynamo_Error({
|
|
685
|
+
...this._getDefaultErrorSettings('findWithPaging', error),
|
|
686
|
+
|
|
687
|
+
errorCode: 'NTS-DBS-WP0',
|
|
688
|
+
additionalContent: { filterBy, page, pageSize, sort },
|
|
689
|
+
message: `findWithPaging ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
690
|
+
});
|
|
639
691
|
});
|
|
640
|
-
});
|
|
641
692
|
|
|
642
|
-
dataList.forEach((data: T) => {
|
|
693
|
+
dataList.forEach((data: T): void => {
|
|
643
694
|
data = this.stringifyDataId(data, 'findWithPaging');
|
|
644
695
|
});
|
|
645
696
|
|
|
@@ -659,18 +710,19 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
659
710
|
update.__lastModified = new Date();
|
|
660
711
|
update.__lastModifiedBy = issuer;
|
|
661
712
|
|
|
662
|
-
let newData: T = await this.dataModel
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
713
|
+
let newData: T = await this.dataModel
|
|
714
|
+
.findByIdAndUpdate(id, update)
|
|
715
|
+
.then((res): T => res?.toObject() as T ?? null)
|
|
716
|
+
.catch((error): void => {
|
|
717
|
+
throw new Dynamo_Error({
|
|
718
|
+
...this._getDefaultErrorSettings('findByIdAndUpdate', error, issuer),
|
|
719
|
+
|
|
720
|
+
errorCode: 'NTS-DBS-FIU0',
|
|
721
|
+
additionalContent: { id, update },
|
|
722
|
+
message: `findByIdAndUpdate ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
723
|
+
issuer,
|
|
724
|
+
});
|
|
672
725
|
});
|
|
673
|
-
});
|
|
674
726
|
|
|
675
727
|
newData = this.stringifyDataId(newData, 'findByIdAndUpdate');
|
|
676
728
|
|
|
@@ -729,20 +781,26 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
729
781
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
730
782
|
* //
|
|
731
783
|
*/
|
|
732
|
-
async updateOne(
|
|
784
|
+
async updateOne(
|
|
785
|
+
filterBy: DynamoNTS_DBFilter<T>,
|
|
786
|
+
update: DynamoNTS_DBUpdate<T>,
|
|
787
|
+
issuer: string
|
|
788
|
+
): Promise<void> {
|
|
733
789
|
update.__lastModified = new Date();
|
|
734
790
|
update.__lastModifiedBy = issuer;
|
|
735
791
|
|
|
736
|
-
await this.dataModel
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
792
|
+
await this.dataModel
|
|
793
|
+
.updateOne(filterBy, update)
|
|
794
|
+
.catch((error): void => {
|
|
795
|
+
throw new Dynamo_Error({
|
|
796
|
+
...this._getDefaultErrorSettings('updateOne', error, issuer),
|
|
797
|
+
|
|
798
|
+
errorCode: 'NTS-DBS-UO0',
|
|
799
|
+
additionalContent: { filterBy, update },
|
|
800
|
+
message: `updateOne ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
801
|
+
issuer,
|
|
802
|
+
});
|
|
744
803
|
});
|
|
745
|
-
});
|
|
746
804
|
}
|
|
747
805
|
|
|
748
806
|
/**
|
|
@@ -796,20 +854,26 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
796
854
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
797
855
|
* //
|
|
798
856
|
*/
|
|
799
|
-
async updateMany(
|
|
857
|
+
async updateMany(
|
|
858
|
+
filterBy: DynamoNTS_DBFilter<T>,
|
|
859
|
+
update: DynamoNTS_DBUpdate<T>,
|
|
860
|
+
issuer: string
|
|
861
|
+
): Promise<void> {
|
|
800
862
|
update.__lastModified = new Date();
|
|
801
863
|
update.__lastModifiedBy = issuer;
|
|
802
864
|
|
|
803
|
-
await this.dataModel
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
865
|
+
await this.dataModel
|
|
866
|
+
.updateMany(filterBy, update)
|
|
867
|
+
.catch((error): void => {
|
|
868
|
+
throw new Dynamo_Error({
|
|
869
|
+
...this._getDefaultErrorSettings('updateMany', error, issuer),
|
|
870
|
+
|
|
871
|
+
errorCode: 'NTS-DBS-UM0',
|
|
872
|
+
additionalContent: { filterBy, update },
|
|
873
|
+
message: `updateMany ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
874
|
+
issuer,
|
|
875
|
+
});
|
|
811
876
|
});
|
|
812
|
-
});
|
|
813
877
|
}
|
|
814
878
|
|
|
815
879
|
// ----------------------------------------------------------------------------------
|
|
@@ -825,7 +889,11 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
825
889
|
data = JSON.parse(JSON.stringify(data));
|
|
826
890
|
|
|
827
891
|
if (typeof data._id !== 'string' || typeof data._id === 'object') {
|
|
828
|
-
Dynamo_Log.error(
|
|
892
|
+
Dynamo_Log.error(
|
|
893
|
+
`data._id stringifying failed! Please notfiy the DynamoNTS developers! ` +
|
|
894
|
+
`(${fnName})`,
|
|
895
|
+
new Error()
|
|
896
|
+
);
|
|
829
897
|
}
|
|
830
898
|
}
|
|
831
899
|
}
|
|
@@ -854,6 +922,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
854
922
|
*/
|
|
855
923
|
private getSchema(): mongoose.Schema {
|
|
856
924
|
let schema: any = this.buildMongooseSchemaByModelParams();
|
|
925
|
+
|
|
857
926
|
schema = this.addDynamo_MetadataToSchema(schema);
|
|
858
927
|
|
|
859
928
|
// tslint:disable-next-line: no-string-literal
|
|
@@ -877,36 +946,50 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
877
946
|
params = this.dataParams.modelParams;
|
|
878
947
|
}
|
|
879
948
|
|
|
880
|
-
params.forEach((property: Dynamo_DataPropertyParams) => {
|
|
949
|
+
params.forEach((property: Dynamo_DataPropertyParams): void => {
|
|
881
950
|
const beType = this.getBEType(property.type);
|
|
882
|
-
|
|
951
|
+
|
|
952
|
+
if (
|
|
953
|
+
beType !== Object ||
|
|
954
|
+
!property?.subObjectParams ||
|
|
955
|
+
property?.subObjectParams?.length == 0
|
|
956
|
+
) {
|
|
883
957
|
schemaSettingsObj[property.key] = {
|
|
884
958
|
type: beType
|
|
885
959
|
};
|
|
960
|
+
|
|
886
961
|
if (property.index) {
|
|
887
962
|
schemaSettingsObj[property.key].index = true;
|
|
888
963
|
}
|
|
964
|
+
|
|
889
965
|
if (property.unique) {
|
|
890
966
|
schemaSettingsObj[property.key].unique = true;
|
|
891
967
|
}
|
|
968
|
+
|
|
892
969
|
if (property.required) {
|
|
893
970
|
schemaSettingsObj[property.key].required = true;
|
|
894
971
|
}
|
|
972
|
+
|
|
895
973
|
if (property.minlength) {
|
|
896
974
|
schemaSettingsObj[property.key].minlength = property.minlength;
|
|
897
975
|
}
|
|
976
|
+
|
|
898
977
|
if (property.maxlength) {
|
|
899
978
|
schemaSettingsObj[property.key].maxlength = property.maxlength;
|
|
900
979
|
}
|
|
901
980
|
} else {
|
|
902
|
-
schemaSettingsObj[property.key] = this.buildMongooseSchemaByModelParams(
|
|
981
|
+
schemaSettingsObj[property.key] = this.buildMongooseSchemaByModelParams(
|
|
982
|
+
property.subObjectParams
|
|
983
|
+
);
|
|
903
984
|
}
|
|
904
985
|
});
|
|
905
986
|
|
|
906
987
|
return schemaSettingsObj;
|
|
907
988
|
}
|
|
908
989
|
|
|
909
|
-
private getBEType(
|
|
990
|
+
private getBEType(
|
|
991
|
+
type: string
|
|
992
|
+
): String | Number | Boolean | Object | Function | Array<any> | Date {
|
|
910
993
|
switch (type) {
|
|
911
994
|
|
|
912
995
|
case 'string':
|
|
@@ -954,7 +1037,7 @@ export class DynamoNTS_DBService<T extends Dynamo_Metadata> {
|
|
|
954
1037
|
*/
|
|
955
1038
|
private lookForDependencyDataSettings(): void {
|
|
956
1039
|
const dependencyParam: Dynamo_DataPropertyParams = this.dataParams.modelParams.find(
|
|
957
|
-
(modelParams: Dynamo_DataPropertyParams) => modelParams.isDependencyHook
|
|
1040
|
+
(modelParams: Dynamo_DataPropertyParams): boolean => modelParams.isDependencyHook
|
|
958
1041
|
);
|
|
959
1042
|
|
|
960
1043
|
if (dependencyParam) {
|