@futdevpro/nts-dynamo 1.9.41 → 1.9.43
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/build/_models/types/db-filter.type.d.ts +1 -1
- package/build/_models/types/db-filter.type.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js +13 -5
- package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.d.ts +2 -2
- package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.js +17 -23
- package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
- package/build/_services/base/archive-data.service.d.ts.map +1 -1
- package/build/_services/base/archive-data.service.js +3 -0
- package/build/_services/base/archive-data.service.js.map +1 -1
- package/build/_services/base/data.service.d.ts +9 -3
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +101 -6
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.d.ts +6 -1
- package/build/_services/base/db.service.d.ts.map +1 -1
- package/build/_services/base/db.service.js +133 -114
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/base/singleton.service.d.ts.map +1 -1
- package/build/_services/base/singleton.service.js +0 -1
- package/build/_services/base/singleton.service.js.map +1 -1
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +1 -0
- package/build/_services/core/global.service.js.map +1 -1
- package/package.json +3 -3
- package/src/_models/types/db-filter.type.ts +1 -1
- package/src/_modules/socket/_models/socket-presence.control-model.ts +19 -7
- package/src/_modules/socket/_services/socket-server.service.ts +27 -39
- package/src/_services/base/archive-data.service.ts +4 -0
- package/src/_services/base/data.service.ts +147 -13
- package/src/_services/base/db.service.ts +165 -140
- package/src/_services/base/singleton.service.ts +2 -3
- package/src/_services/core/global.service.ts +1 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
DyFM_Metadata, DyFM_DataModel_Params, DyFM_DataProperty_Params, DyFM_Error,
|
|
7
7
|
DyFM_Log, DyFM_AnyError, DyFM_Error_Settings, DyFM_ErrorLevel
|
|
8
8
|
} from '@futdevpro/fsm-dynamo';
|
|
9
|
-
import { DyNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
9
|
+
import { DyNTS_DBFilter, DyNTS_DBFilterNOR, DyNTS_DBFilterOR, DyNTS_DBFilterSimple } from '../../_models/types/db-filter.type';
|
|
10
10
|
import { DyNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
11
11
|
import { DyNTS_archiveSuffix } from '../../_collections/archive.util';
|
|
12
12
|
|
|
@@ -57,12 +57,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
57
57
|
additionalContent: { dataParams: this.dataParams },
|
|
58
58
|
error,
|
|
59
59
|
});
|
|
60
|
-
/* DyFM_Log.error(
|
|
61
|
-
`\nDyNTS_DBService ERROR, ` +
|
|
62
|
-
`The dbService construction failed for ${dataParams.dataName}. ${this.serviceName}` +
|
|
63
|
-
`\nERROR: `, error,
|
|
64
|
-
new Error()
|
|
65
|
-
); */
|
|
66
60
|
}
|
|
67
61
|
}
|
|
68
62
|
|
|
@@ -78,7 +72,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
78
72
|
data.__lastModifiedBy = issuer;
|
|
79
73
|
|
|
80
74
|
const dataModel = new this.dataModel(data);
|
|
81
|
-
|
|
75
|
+
const newData: T = await dataModel.save().then((res): T => {
|
|
82
76
|
if (res) {
|
|
83
77
|
return res?.toObject() as T;
|
|
84
78
|
|
|
@@ -91,8 +85,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
91
85
|
),
|
|
92
86
|
issuer
|
|
93
87
|
),
|
|
94
|
-
|
|
95
|
-
status: 544,
|
|
96
88
|
errorCode: 'NTS-DBS-CD1',
|
|
97
89
|
additionalContent: { data },
|
|
98
90
|
issuer,
|
|
@@ -105,8 +97,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
105
97
|
} else {
|
|
106
98
|
throw new DyFM_Error({
|
|
107
99
|
...this._getDefaultErrorSettings('createData', error, issuer),
|
|
108
|
-
|
|
109
|
-
status: 522,
|
|
110
100
|
errorCode: 'NTS-DBS-CD0',
|
|
111
101
|
additionalContent: { data, dataModel },
|
|
112
102
|
message:
|
|
@@ -116,9 +106,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
116
106
|
}
|
|
117
107
|
});
|
|
118
108
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return newData;
|
|
109
|
+
return this.stringifyDataId(newData, 'createData');
|
|
122
110
|
}
|
|
123
111
|
|
|
124
112
|
/**
|
|
@@ -136,8 +124,9 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
136
124
|
* EZ A SZAR TELJESEN SZAR, nem friss, nem a db-be mentett adatokat ad vissza,
|
|
137
125
|
* átír random value-kat össze vissza, WTF
|
|
138
126
|
* */
|
|
139
|
-
/* let newData: T = */
|
|
140
|
-
|
|
127
|
+
/* let newData: T = */
|
|
128
|
+
await this.dataModel.findByIdAndUpdate(data._id, data)/* .then((res) => {
|
|
129
|
+
if (res) {
|
|
141
130
|
//return res?.toObject() as T;
|
|
142
131
|
} else {
|
|
143
132
|
throw new DyFM_Error({
|
|
@@ -152,21 +141,18 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
152
141
|
additionalContent: { data },
|
|
153
142
|
issuer,
|
|
154
143
|
});
|
|
155
|
-
}
|
|
156
|
-
})
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
144
|
+
}
|
|
145
|
+
}) */.catch((error): void => {
|
|
146
|
+
throw new DyFM_Error({
|
|
147
|
+
...this._getDefaultErrorSettings('modifyData', error, issuer),
|
|
148
|
+
errorCode: 'NTS-DBS-FU0',
|
|
149
|
+
additionalContent: { data },
|
|
150
|
+
message: `modifyData "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
151
|
+
issuer,
|
|
152
|
+
});
|
|
164
153
|
});
|
|
165
|
-
});
|
|
166
154
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
return data;
|
|
155
|
+
return this.stringifyDataId(data, 'modifyData');
|
|
170
156
|
}
|
|
171
157
|
|
|
172
158
|
/**
|
|
@@ -184,22 +170,19 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
184
170
|
});
|
|
185
171
|
}
|
|
186
172
|
|
|
187
|
-
|
|
173
|
+
const data: T = await this.dataModel
|
|
188
174
|
.findById(id)
|
|
189
175
|
.then((res): T => res?.toObject() as T ?? null)
|
|
190
176
|
.catch((error): void => {
|
|
191
177
|
throw new DyFM_Error({
|
|
192
178
|
...this._getDefaultErrorSettings('getDataById', error),
|
|
193
|
-
|
|
194
179
|
errorCode: 'NTS-DBS-GI0',
|
|
195
180
|
additionalContent: { id },
|
|
196
181
|
message: `get "${this.dataParams.dbName}" by ID was unsuccessful (NTS DB)`,
|
|
197
182
|
});
|
|
198
183
|
});
|
|
199
184
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return data;
|
|
185
|
+
return this.stringifyDataId(data, 'getDataById');
|
|
203
186
|
}
|
|
204
187
|
|
|
205
188
|
/**
|
|
@@ -219,13 +202,11 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
219
202
|
`(NTS DB)`
|
|
220
203
|
)
|
|
221
204
|
),
|
|
222
|
-
|
|
223
|
-
status: 500,
|
|
224
205
|
errorCode: 'NTS-DBS-GD0',
|
|
225
206
|
});
|
|
226
207
|
}
|
|
227
208
|
|
|
228
|
-
|
|
209
|
+
const data: T = await this.dataModel
|
|
229
210
|
.findOne({ [this.depDataName]: dependencyId })
|
|
230
211
|
.then((res): T => res?.toObject() as T ?? null)
|
|
231
212
|
.catch((error): void => {
|
|
@@ -239,9 +220,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
239
220
|
});
|
|
240
221
|
});
|
|
241
222
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return data;
|
|
223
|
+
return this.stringifyDataId(data, 'getDataByDependencyId');
|
|
245
224
|
}
|
|
246
225
|
|
|
247
226
|
/**
|
|
@@ -261,8 +240,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
261
240
|
`(NTS DB)`
|
|
262
241
|
)
|
|
263
242
|
),
|
|
264
|
-
|
|
265
|
-
status: 500,
|
|
266
243
|
errorCode: 'NTS-DBS-GLD0',
|
|
267
244
|
additionalContent: {
|
|
268
245
|
dataModel: this.dataModel,
|
|
@@ -271,12 +248,13 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
271
248
|
}
|
|
272
249
|
|
|
273
250
|
const dataList: T[] = await this.dataModel
|
|
274
|
-
.find({
|
|
251
|
+
.find({
|
|
252
|
+
[this.depDataName]: dependencyId,
|
|
253
|
+
})
|
|
275
254
|
.then((res): T[] => res as T[] ?? [])
|
|
276
255
|
.catch((error): void => {
|
|
277
256
|
throw new DyFM_Error({
|
|
278
257
|
...this._getDefaultErrorSettings('getDataListByDependencyId', error),
|
|
279
|
-
|
|
280
258
|
errorCode: 'NTS-DBS-GLD1',
|
|
281
259
|
additionalContent: { dependencyId },
|
|
282
260
|
message:
|
|
@@ -284,11 +262,11 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
284
262
|
});
|
|
285
263
|
});
|
|
286
264
|
|
|
287
|
-
dataList.
|
|
288
|
-
data
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
265
|
+
return dataList.filter(
|
|
266
|
+
(data: T): boolean => !data._deleted
|
|
267
|
+
).map(
|
|
268
|
+
(data: T): T => this.stringifyDataId(data, 'getDataListByDependencyId')
|
|
269
|
+
);
|
|
292
270
|
}
|
|
293
271
|
|
|
294
272
|
/**
|
|
@@ -308,68 +286,31 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
308
286
|
`(${this.dataParams.dbName}) (NTS DB)`
|
|
309
287
|
)
|
|
310
288
|
),
|
|
311
|
-
|
|
312
|
-
status: 500,
|
|
313
289
|
errorCode: 'NTS-DBS-GLDS0',
|
|
314
290
|
});
|
|
315
291
|
}
|
|
316
292
|
|
|
317
293
|
const dataList: T[] = await this.dataModel
|
|
318
|
-
.find({
|
|
294
|
+
.find({
|
|
295
|
+
[this.depDataName]: { $in: dependencyIds },
|
|
296
|
+
})
|
|
319
297
|
.then((res): T[] => res as T[] ?? [])
|
|
320
298
|
.catch((error): void => {
|
|
321
299
|
throw new DyFM_Error({
|
|
322
300
|
...this._getDefaultErrorSettings('getDataListByDependencyIds', error),
|
|
323
|
-
|
|
324
301
|
errorCode: 'NTS-DBS-GLDS1',
|
|
325
302
|
additionalContent: { dependencyIds },
|
|
326
|
-
message: `get "${this.dataParams.dbName}" by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
327
|
-
});
|
|
328
|
-
});
|
|
329
|
-
|
|
330
|
-
dataList.forEach((data: T): void => {
|
|
331
|
-
data = this.stringifyDataId(data, 'getDataListByDependencyIds');
|
|
332
|
-
});
|
|
333
|
-
|
|
334
|
-
return dataList;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
/* async getDataListByDependencyIds(ids: string[]): Promise<T[]> {
|
|
338
|
-
if (!this.depDataName) {
|
|
339
|
-
throw new DyFM_Error({
|
|
340
|
-
...this._getDefaultErrorSettings(
|
|
341
|
-
'getDataListByDependencyIds',
|
|
342
|
-
new Error(
|
|
343
|
-
`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) ` +
|
|
344
|
-
`(NTS DB)`
|
|
345
|
-
)
|
|
346
|
-
),
|
|
347
|
-
|
|
348
|
-
status: 500,
|
|
349
|
-
errorCode: 'NTS-DBS-GLDS0',
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
const dataList: T[] = await this.dataModel
|
|
354
|
-
.find({ [this.depDataName]: { $in: ids } })
|
|
355
|
-
.then((res): T[] => res as T[] ?? [])
|
|
356
|
-
.catch((error): void => {
|
|
357
|
-
throw new DyFM_Error({
|
|
358
|
-
...this._getDefaultErrorSettings('getDataListByDependencyIds', error),
|
|
359
|
-
|
|
360
|
-
errorCode: 'NTS-DBS-GLDS1',
|
|
361
|
-
additionalContent: { ids },
|
|
362
303
|
message:
|
|
363
|
-
`get ${this.dataParams.dbName}
|
|
304
|
+
`get "${this.dataParams.dbName}" by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
364
305
|
});
|
|
365
306
|
});
|
|
366
307
|
|
|
367
|
-
dataList.
|
|
368
|
-
data
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}
|
|
308
|
+
return dataList.filter(
|
|
309
|
+
(data: T): boolean => !data._deleted
|
|
310
|
+
).map(
|
|
311
|
+
(data: T): T => this.stringifyDataId(data, 'getDataListByDependencyIds')
|
|
312
|
+
);
|
|
313
|
+
}
|
|
373
314
|
|
|
374
315
|
/**
|
|
375
316
|
* returns all data from database,
|
|
@@ -379,7 +320,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
379
320
|
*/
|
|
380
321
|
async getAll(): Promise<T[]> {
|
|
381
322
|
const dataList: T[] = await this.dataModel
|
|
382
|
-
.find(
|
|
323
|
+
.find()
|
|
383
324
|
.then((res): T[] => res as T[] ?? [])
|
|
384
325
|
.catch((error): void => {
|
|
385
326
|
throw new DyFM_Error({
|
|
@@ -390,11 +331,97 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
390
331
|
});
|
|
391
332
|
});
|
|
392
333
|
|
|
393
|
-
dataList.
|
|
394
|
-
data
|
|
334
|
+
return dataList.filter(
|
|
335
|
+
(data: T): boolean => !data._deleted
|
|
336
|
+
).map(
|
|
337
|
+
(data: T): T => this.stringifyDataId(data, 'getAll')
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
async markDeletedById(id: string, issuer: string): Promise<void> {
|
|
342
|
+
await this.dataModel.findByIdAndUpdate(id, { _deleted: true }, issuer).catch((error): void => {
|
|
343
|
+
throw new DyFM_Error({
|
|
344
|
+
...this._getDefaultErrorSettings('markDeletedById', error, issuer),
|
|
345
|
+
|
|
346
|
+
errorCode: 'NTS-DBS-MD0',
|
|
347
|
+
additionalContent: { id },
|
|
348
|
+
message: `mark deleted "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
349
|
+
issuer,
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
async markDeletedByDependencyId(dependencyId: string, issuer: string): Promise<void> {
|
|
355
|
+
await this.dataModel.updateMany(
|
|
356
|
+
{ [this.depDataName]: dependencyId },
|
|
357
|
+
{ _deleted: true }
|
|
358
|
+
).catch((error): void => {
|
|
359
|
+
throw new DyFM_Error({
|
|
360
|
+
...this._getDefaultErrorSettings('markDeletedByDependencyId', error, issuer),
|
|
361
|
+
errorCode: 'NTS-DBS-MDD0',
|
|
362
|
+
additionalContent: { dependencyId },
|
|
363
|
+
message:
|
|
364
|
+
`markDeleted "${this.dataParams.dbName}" by ${this.depDataName} was unsuccessful ` +
|
|
365
|
+
`(NTS DB)`,
|
|
366
|
+
issuer,
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
async restoreDeletedById(id: string, issuer: string): Promise<void> {
|
|
372
|
+
await this.dataModel.findByIdAndUpdate(
|
|
373
|
+
id,
|
|
374
|
+
{
|
|
375
|
+
_deleted: null,
|
|
376
|
+
__lastModified: new Date(),
|
|
377
|
+
__lastModifiedBy: issuer,
|
|
378
|
+
},
|
|
379
|
+
issuer
|
|
380
|
+
).catch((error): void => {
|
|
381
|
+
throw new DyFM_Error({
|
|
382
|
+
...this._getDefaultErrorSettings('restoreDeletedById', error, issuer),
|
|
383
|
+
errorCode: 'NTS-DBS-RD0',
|
|
384
|
+
additionalContent: { id },
|
|
385
|
+
message: `restoreDeleted "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
386
|
+
issuer,
|
|
387
|
+
});
|
|
395
388
|
});
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
async restoreDeletedByDependencyId(dependencyId: string, issuer: string): Promise<void> {
|
|
392
|
+
await this.dataModel.updateMany(
|
|
393
|
+
{ [this.depDataName]: dependencyId },
|
|
394
|
+
{
|
|
395
|
+
_deleted: null,
|
|
396
|
+
__lastModified: new Date(),
|
|
397
|
+
__lastModifiedBy: issuer,
|
|
398
|
+
}
|
|
399
|
+
).catch((error): void => {
|
|
400
|
+
throw new DyFM_Error({
|
|
401
|
+
...this._getDefaultErrorSettings('restoreDeletedByDependencyId', error, issuer),
|
|
402
|
+
errorCode: 'NTS-DBS-RDD0',
|
|
403
|
+
additionalContent: { dependencyId },
|
|
404
|
+
message:
|
|
405
|
+
`restoreDeleted "${this.dataParams.dbName}" by ${this.depDataName} was unsuccessful ` +
|
|
406
|
+
`(NTS DB)`,
|
|
407
|
+
issuer,
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
async getDeletedDataList(): Promise<T[]> {
|
|
413
|
+
const dataList: T[] = await this.dataModel
|
|
414
|
+
.find({ _deleted: true })
|
|
415
|
+
.then((res): T[] => res as T[] ?? [])
|
|
416
|
+
.catch((error): void => {
|
|
417
|
+
throw new DyFM_Error({
|
|
418
|
+
...this._getDefaultErrorSettings('getDeletedData', error),
|
|
419
|
+
errorCode: 'NTS-DBS-GDD0',
|
|
420
|
+
message: `get deleted "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
421
|
+
});
|
|
422
|
+
});
|
|
396
423
|
|
|
397
|
-
return dataList
|
|
424
|
+
return dataList.map((data: T): T => this.stringifyDataId(data, 'getDeletedData'));
|
|
398
425
|
}
|
|
399
426
|
|
|
400
427
|
/**
|
|
@@ -407,7 +434,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
407
434
|
.catch((error): void => {
|
|
408
435
|
throw new DyFM_Error({
|
|
409
436
|
...this._getDefaultErrorSettings('deleteDataById', error),
|
|
410
|
-
|
|
411
437
|
errorCode: 'NTS-DBS-DD0',
|
|
412
438
|
additionalContent: { id },
|
|
413
439
|
message: `delete "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
@@ -429,8 +455,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
429
455
|
`(NTS DB)`
|
|
430
456
|
)
|
|
431
457
|
),
|
|
432
|
-
|
|
433
|
-
status: 500,
|
|
434
458
|
errorCode: 'NTS-DBS-DDD0',
|
|
435
459
|
});
|
|
436
460
|
}
|
|
@@ -440,7 +464,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
440
464
|
.catch((error): void => {
|
|
441
465
|
throw new DyFM_Error({
|
|
442
466
|
...this._getDefaultErrorSettings('deleteDataByDependencyId', error),
|
|
443
|
-
|
|
444
467
|
errorCode: 'NTS-DBS-DDD1',
|
|
445
468
|
additionalContent: { dependencyId },
|
|
446
469
|
message:
|
|
@@ -449,6 +472,16 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
449
472
|
});
|
|
450
473
|
}
|
|
451
474
|
|
|
475
|
+
async deleteAllData(): Promise<void> {
|
|
476
|
+
await this.dataModel.deleteMany().catch((error): void => {
|
|
477
|
+
throw new DyFM_Error({
|
|
478
|
+
...this._getDefaultErrorSettings('deleteAllData', error),
|
|
479
|
+
errorCode: 'NTS-DBS-DAD0',
|
|
480
|
+
message: `delete all "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
481
|
+
});
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
|
|
452
485
|
/**
|
|
453
486
|
* returns search result for searchBy object params
|
|
454
487
|
* can use lists or xRange values for searchBy obj properties
|
|
@@ -473,8 +506,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
473
506
|
`(NTS DB)`
|
|
474
507
|
)
|
|
475
508
|
),
|
|
476
|
-
|
|
477
|
-
status: 500,
|
|
478
509
|
errorCode: 'NTS-DBS-SD0',
|
|
479
510
|
});
|
|
480
511
|
}
|
|
@@ -482,7 +513,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
482
513
|
filter[this.depDataName] = { $in: narrowByDependencyIds };
|
|
483
514
|
}
|
|
484
515
|
|
|
485
|
-
|
|
516
|
+
this.dataParams.properties.forEach((modelParam: DyFM_DataProperty_Params): void => {
|
|
486
517
|
if (
|
|
487
518
|
(filterBy[modelParam.key] !== null && filterBy[modelParam.key] !== undefined) ||
|
|
488
519
|
filterBy[modelParam.key + 'Range']
|
|
@@ -532,24 +563,23 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
532
563
|
}
|
|
533
564
|
});
|
|
534
565
|
|
|
535
|
-
|
|
566
|
+
let dataList: T[] = await this.dataModel
|
|
536
567
|
.find(filter)
|
|
537
568
|
.then((res): T[] => res as T[] ?? [])
|
|
538
569
|
.catch((error): void => {
|
|
539
570
|
throw new DyFM_Error({
|
|
540
571
|
...this._getDefaultErrorSettings('searchData', error),
|
|
541
|
-
|
|
542
572
|
errorCode: 'NTS-DBS-SD1',
|
|
543
573
|
additionalContent: { filterBy, narrowByDependencyIds },
|
|
544
574
|
message: `search "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
545
575
|
});
|
|
546
576
|
});
|
|
577
|
+
|
|
578
|
+
if ((filterBy as DyNTS_DBFilterSimple<T>)._deleted === undefined) {
|
|
579
|
+
dataList = dataList.filter((data: T): boolean => !data._deleted);
|
|
580
|
+
}
|
|
547
581
|
|
|
548
|
-
dataList.
|
|
549
|
-
data = this.stringifyDataId(data, 'searchData');
|
|
550
|
-
});
|
|
551
|
-
|
|
552
|
-
return dataList;
|
|
582
|
+
return dataList.map((data: T): T => this.stringifyDataId(data, 'searchData'));
|
|
553
583
|
}
|
|
554
584
|
|
|
555
585
|
// ----------------------------------------------------------------------------------
|
|
@@ -584,22 +614,19 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
584
614
|
* @returns {T} data: T
|
|
585
615
|
*/
|
|
586
616
|
async findOne(filterBy: DyNTS_DBFilter<T>): Promise<T> {
|
|
587
|
-
|
|
617
|
+
const data: T = await this.dataModel
|
|
588
618
|
.findOne(filterBy)
|
|
589
619
|
.then((res): T => res as T ?? null)
|
|
590
620
|
.catch((error): void => {
|
|
591
621
|
throw new DyFM_Error({
|
|
592
622
|
...this._getDefaultErrorSettings('findOne', error),
|
|
593
|
-
|
|
594
623
|
errorCode: 'NTS-DBS-FO0',
|
|
595
624
|
additionalContent: { filterBy },
|
|
596
625
|
message: `findOne "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
597
626
|
});
|
|
598
627
|
});
|
|
599
628
|
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
return data;
|
|
629
|
+
return this.stringifyDataId(data, 'findOne');
|
|
603
630
|
}
|
|
604
631
|
|
|
605
632
|
/**
|
|
@@ -630,24 +657,26 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
630
657
|
* @returns {T[]} dataList: T[]
|
|
631
658
|
*/
|
|
632
659
|
async find(filterBy: DyNTS_DBFilter<T>): Promise<T[]> {
|
|
633
|
-
|
|
660
|
+
|
|
661
|
+
let dataList: T[] = await this.dataModel
|
|
634
662
|
.find(filterBy)
|
|
635
663
|
.then((res): T[] => res as T[] ?? [])
|
|
636
664
|
.catch((error): void => {
|
|
637
665
|
throw new DyFM_Error({
|
|
638
666
|
...this._getDefaultErrorSettings('find', error),
|
|
639
|
-
|
|
640
667
|
errorCode: 'NTS-DBS-F0',
|
|
641
668
|
additionalContent: { filterBy },
|
|
642
669
|
message: `find "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
643
670
|
});
|
|
644
671
|
});
|
|
645
672
|
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
673
|
+
if (
|
|
674
|
+
(filterBy as DyNTS_DBFilterSimple<T>)._deleted === undefined
|
|
675
|
+
) {
|
|
676
|
+
dataList = dataList.filter((data: T): boolean => !data._deleted);
|
|
677
|
+
}
|
|
649
678
|
|
|
650
|
-
return dataList
|
|
679
|
+
return dataList.map((data: T): T => this.stringifyDataId(data, 'find'));
|
|
651
680
|
}
|
|
652
681
|
|
|
653
682
|
/**
|
|
@@ -689,7 +718,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
689
718
|
pageSize: number,
|
|
690
719
|
sort?: any
|
|
691
720
|
): Promise<T[]> {
|
|
692
|
-
|
|
721
|
+
let dataList: T[] = await this.dataModel
|
|
693
722
|
.find(filterBy)
|
|
694
723
|
.sort(sort)
|
|
695
724
|
.skip(page * pageSize)
|
|
@@ -698,24 +727,22 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
698
727
|
.catch((error): void => {
|
|
699
728
|
throw new DyFM_Error({
|
|
700
729
|
...this._getDefaultErrorSettings('findWithPaging', error),
|
|
701
|
-
|
|
702
730
|
errorCode: 'NTS-DBS-WP0',
|
|
703
731
|
additionalContent: { filterBy, page, pageSize, sort },
|
|
704
732
|
message: `findWithPaging "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
705
733
|
});
|
|
706
734
|
});
|
|
707
735
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
}
|
|
736
|
+
if ((filterBy as DyNTS_DBFilterSimple<T>)._deleted === undefined) {
|
|
737
|
+
dataList = dataList.filter((data: T): boolean => !data._deleted);
|
|
738
|
+
}
|
|
711
739
|
|
|
712
|
-
return dataList;
|
|
740
|
+
return dataList.map((data: T): T => this.stringifyDataId(data, 'find'));
|
|
713
741
|
}
|
|
714
742
|
|
|
715
743
|
/**
|
|
716
744
|
* #MONGOOSE FUNCTION
|
|
717
745
|
* Find data by _id and update
|
|
718
|
-
* !!!: throws error if not found (errorCode on not found: )
|
|
719
746
|
*
|
|
720
747
|
* @param id id
|
|
721
748
|
* @param update update
|
|
@@ -732,13 +759,12 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
732
759
|
update.__lastModifiedBy = issuer;
|
|
733
760
|
}
|
|
734
761
|
|
|
735
|
-
|
|
762
|
+
const data: T = await this.dataModel
|
|
736
763
|
.findByIdAndUpdate(id, update)
|
|
737
764
|
.then((res): T => res?.toObject() as T ?? null)
|
|
738
765
|
.catch((error): void => {
|
|
739
766
|
throw new DyFM_Error({
|
|
740
767
|
...this._getDefaultErrorSettings('findByIdAndUpdate', error, issuer),
|
|
741
|
-
|
|
742
768
|
errorCode: 'NTS-DBS-FIU0',
|
|
743
769
|
additionalContent: { id, update },
|
|
744
770
|
message: `findByIdAndUpdate "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
@@ -746,9 +772,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
746
772
|
});
|
|
747
773
|
});
|
|
748
774
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
return newData;
|
|
775
|
+
return this.stringifyDataId(data, 'findByIdAndUpdate');
|
|
752
776
|
}
|
|
753
777
|
|
|
754
778
|
/**
|
|
@@ -819,7 +843,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
819
843
|
.catch((error): void => {
|
|
820
844
|
throw new DyFM_Error({
|
|
821
845
|
...this._getDefaultErrorSettings('updateOne', error, issuer),
|
|
822
|
-
|
|
823
846
|
errorCode: 'NTS-DBS-UO0',
|
|
824
847
|
additionalContent: { filterBy, update },
|
|
825
848
|
message: `updateOne "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
@@ -895,7 +918,6 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
895
918
|
.catch((error): void => {
|
|
896
919
|
throw new DyFM_Error({
|
|
897
920
|
...this._getDefaultErrorSettings('updateMany', error, issuer),
|
|
898
|
-
|
|
899
921
|
errorCode: 'NTS-DBS-UM0',
|
|
900
922
|
additionalContent: { filterBy, update },
|
|
901
923
|
message: `updateMany "${this.dataParams.dbName}" was unsuccessful (NTS DB)`,
|
|
@@ -1064,6 +1086,9 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
1064
1086
|
schema.__createdBy = { type: String };
|
|
1065
1087
|
schema.__lastModified = { type: Date };
|
|
1066
1088
|
schema.__lastModifiedBy = { type: String };
|
|
1089
|
+
|
|
1090
|
+
schema._deleted = { type: Date };
|
|
1091
|
+
schema._deletedBy = { type: String };
|
|
1067
1092
|
|
|
1068
1093
|
return schema;
|
|
1069
1094
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DyFM_AnyError,
|
|
1
|
+
import { DyFM_AnyError, DyFM_Error, DyFM_Error_Settings } from '@futdevpro/fsm-dynamo';
|
|
2
2
|
|
|
3
3
|
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
4
4
|
import { DyNTS_SingletonServiceBase } from './singleton.service-base';
|
|
@@ -19,8 +19,7 @@ export class DyNTS_SingletonService extends DyNTS_SingletonServiceBase {
|
|
|
19
19
|
): DyFM_Error_Settings {
|
|
20
20
|
return {
|
|
21
21
|
status: (error as DyFM_Error)?.___status ?? 500,
|
|
22
|
-
message: (error as Error)?.message ??
|
|
23
|
-
(error as DyFM_Error)?._message ??
|
|
22
|
+
message: (error as Error)?.message ??
|
|
24
23
|
`${fnName} was UNSUCCESSFUL (${DyNTS_global_settings.systemShortCodeName})`,
|
|
25
24
|
addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
|
|
26
25
|
userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
@@ -52,6 +52,7 @@ export class DyNTS_GlobalService extends DyNTS_SingletonService {
|
|
|
52
52
|
|
|
53
53
|
authService: DyNTS_AuthService;
|
|
54
54
|
dbServiceCollection: DyNTS_Service_Collection<DyNTS_DBService<any>>;
|
|
55
|
+
/* dataServiceCollection: DyNTS_Service_Collection<any>; */
|
|
55
56
|
emailServiceCollection: DyNTS_Service_Collection<DyNTS_EmailService>;
|
|
56
57
|
|
|
57
58
|
static readonly defaultErrorUserMsg: string =
|