@futdevpro/nts-dynamo 1.9.38 → 1.9.40
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/_collections/archive.util.d.ts +3 -0
- package/build/_collections/archive.util.d.ts.map +1 -0
- package/build/_collections/archive.util.js +9 -0
- package/build/_collections/archive.util.js.map +1 -0
- package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/endpoint-params.control-model.js +19 -2
- package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.d.ts.map +1 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.js +1 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.js.map +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js +1 -1
- package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
- package/build/_modules/socket/_services/socket-server.service.js +44 -28
- package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
- package/build/_services/base/archive-data.service.d.ts +24 -0
- package/build/_services/base/archive-data.service.d.ts.map +1 -0
- package/build/_services/base/archive-data.service.js +135 -0
- package/build/_services/base/archive-data.service.js.map +1 -0
- package/build/_services/base/data.service.d.ts +3 -2
- package/build/_services/base/data.service.d.ts.map +1 -1
- package/build/_services/base/data.service.js +61 -46
- package/build/_services/base/data.service.js.map +1 -1
- package/build/_services/base/db.service.d.ts +6 -5
- package/build/_services/base/db.service.d.ts.map +1 -1
- package/build/_services/base/db.service.js +31 -14
- package/build/_services/base/db.service.js.map +1 -1
- package/build/_services/core/global.service.d.ts.map +1 -1
- package/build/_services/core/global.service.js +11 -0
- package/build/_services/core/global.service.js.map +1 -1
- package/build/_services/server/app.server.d.ts.map +1 -1
- package/build/_services/server/app.server.js +8 -6
- package/build/_services/server/app.server.js.map +1 -1
- package/build/index.d.ts +7 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +12 -6
- package/build/index.js.map +1 -1
- package/package.json +3 -3
- package/src/_collections/archive.util.ts +9 -0
- package/src/_models/control-models/endpoint-params.control-model.ts +32 -3
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +2 -1
- package/src/_modules/socket/_models/socket-presence.control-model.ts +1 -1
- package/src/_modules/socket/_services/socket-server.service.ts +56 -28
- package/src/_services/base/archive-data.service.ts +207 -0
- package/src/_services/base/data.service.ts +91 -70
- package/src/_services/base/db.service.ts +41 -14
- package/src/_services/core/global.service.ts +14 -0
- package/src/_services/server/app.server.ts +28 -24
- package/src/index.ts +16 -6
|
@@ -68,7 +68,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
68
68
|
|
|
69
69
|
this.asyncConstructor().catch((error: any) => {
|
|
70
70
|
DyFM_Log.error(
|
|
71
|
-
`Socket Server Service setup failed: ${this.params?.name} (${this.params?.port})`,
|
|
71
|
+
`Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`,
|
|
72
72
|
error
|
|
73
73
|
);
|
|
74
74
|
});
|
|
@@ -91,12 +91,12 @@ export abstract class DyNTS_SocketServerService<
|
|
|
91
91
|
await this.prepareEvents();
|
|
92
92
|
|
|
93
93
|
if (this.logSetup) console.log(
|
|
94
|
-
`Socket Server Service setup done: ${this.params.name} (${this.params.port}) ` +
|
|
94
|
+
`Socket Server Service setup done: "${this.params.name}" (${this.params.port}) ` +
|
|
95
95
|
`security: ${this.params.security}\n`
|
|
96
96
|
);
|
|
97
97
|
} catch (error) {
|
|
98
98
|
DyFM_Log.error(
|
|
99
|
-
`Socket Server Service setup failed: ${this.params?.name} (${this.params?.port})`,
|
|
99
|
+
`Socket Server Service setup failed: "${this.params?.name}" (${this.params?.port})`,
|
|
100
100
|
error
|
|
101
101
|
);
|
|
102
102
|
|
|
@@ -225,7 +225,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
225
225
|
} else {
|
|
226
226
|
DyFM_Log.error(
|
|
227
227
|
'getPresenceFromSubscriptionEventContent is not set',
|
|
228
|
-
|
|
228
|
+
`"${this.params.name}" (${this.params.port})`
|
|
229
229
|
);
|
|
230
230
|
}
|
|
231
231
|
|
|
@@ -236,7 +236,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
236
236
|
} catch (error) {
|
|
237
237
|
DyFM_Log.error(
|
|
238
238
|
`Socket Server Service - Event Preparation setup failed: ` +
|
|
239
|
-
|
|
239
|
+
`"${this.params?.name}" (${this.params?.port})`,
|
|
240
240
|
error
|
|
241
241
|
);
|
|
242
242
|
|
|
@@ -272,13 +272,13 @@ export abstract class DyNTS_SocketServerService<
|
|
|
272
272
|
if (DyNTS_global_settings.log_settings.socket_eventContent) {
|
|
273
273
|
DyFM_Log.log(
|
|
274
274
|
`--=> incoming socket(${this.params.name}) ` +
|
|
275
|
-
`event: ${DyFM_SocketEvent_Key.subscribe};` +
|
|
275
|
+
`event: "${DyFM_SocketEvent_Key.subscribe}";` +
|
|
276
276
|
`\ncontent:`, content
|
|
277
277
|
);
|
|
278
278
|
} else {
|
|
279
279
|
DyFM_Log.log(
|
|
280
280
|
`--=> incoming socket(${this.params.name}) ` +
|
|
281
|
-
`event: ${DyFM_SocketEvent_Key.subscribe}`
|
|
281
|
+
`event: "${DyFM_SocketEvent_Key.subscribe}"`
|
|
282
282
|
);
|
|
283
283
|
}
|
|
284
284
|
|
|
@@ -309,13 +309,13 @@ export abstract class DyNTS_SocketServerService<
|
|
|
309
309
|
} catch (error) {
|
|
310
310
|
if (DyNTS_global_settings.log_settings.socket_eventContent) {
|
|
311
311
|
DyFM_Log.error(
|
|
312
|
-
`Socket Subscription failed: ${this.params.name} ` ,
|
|
312
|
+
`Socket Subscription failed: "${this.params.name}" ` ,
|
|
313
313
|
`(${this.params.port}) will disconnect now...`,
|
|
314
314
|
error
|
|
315
315
|
);
|
|
316
316
|
} else {
|
|
317
317
|
DyFM_Log.error(
|
|
318
|
-
`Socket Subscription failed: ${this.params.name} ` ,
|
|
318
|
+
`Socket Subscription failed: "${this.params.name}" ` ,
|
|
319
319
|
`(${this.params.port}) will disconnect now...`
|
|
320
320
|
);
|
|
321
321
|
}
|
|
@@ -368,13 +368,13 @@ export abstract class DyNTS_SocketServerService<
|
|
|
368
368
|
} catch (error) {
|
|
369
369
|
if (DyNTS_global_settings.log_settings.socket_eventContent) {
|
|
370
370
|
DyFM_Log.error(
|
|
371
|
-
`Socket unsubscribe failed: ${this.params.name} ` ,
|
|
371
|
+
`Socket unsubscribe failed: "${this.params.name}" ` ,
|
|
372
372
|
`(${this.params.port}) will disconnect now...`,
|
|
373
373
|
error
|
|
374
374
|
);
|
|
375
375
|
} else {
|
|
376
376
|
DyFM_Log.error(
|
|
377
|
-
`Socket unsubscribe failed: ${this.params.name} ` ,
|
|
377
|
+
`Socket unsubscribe failed: "${this.params.name}" ` ,
|
|
378
378
|
`(${this.params.port}) will disconnect now...`
|
|
379
379
|
);
|
|
380
380
|
}
|
|
@@ -392,7 +392,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
392
392
|
await event.executeEventTasks(content, issuer);
|
|
393
393
|
} catch (error) {
|
|
394
394
|
DyFM_Log.error(
|
|
395
|
-
`Socket Event failed: ${this.params.name} (${this.params.port})`,
|
|
395
|
+
`Socket Event failed: "${this.params.name}" (${this.params.port})`,
|
|
396
396
|
error
|
|
397
397
|
);
|
|
398
398
|
socket.emit(DyFM_SocketEvent_Key.error, error);
|
|
@@ -406,7 +406,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
406
406
|
}
|
|
407
407
|
} catch (error) {
|
|
408
408
|
DyFM_Log.error(
|
|
409
|
-
`Socket Connection failed: ${this.params.name} ` +
|
|
409
|
+
`Socket Connection failed: "${this.params.name}" ` +
|
|
410
410
|
`(${this.params.port}) will disconnect now...`,
|
|
411
411
|
error
|
|
412
412
|
);
|
|
@@ -418,8 +418,8 @@ export abstract class DyNTS_SocketServerService<
|
|
|
418
418
|
newSocketServer.listen(this.params.port);
|
|
419
419
|
|
|
420
420
|
DyFM_Log.success(
|
|
421
|
-
`\nsocket server setup finished: ${this.params.name}` +
|
|
422
|
-
`\nsocket server listening on port: ${this.params.port}`
|
|
421
|
+
`\nsocket server setup finished: "${this.params.name}"` +
|
|
422
|
+
`\nsocket server listening on port: "${this.params.port}"`
|
|
423
423
|
);
|
|
424
424
|
|
|
425
425
|
successCallback();
|
|
@@ -435,7 +435,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
435
435
|
}
|
|
436
436
|
} catch (error) {
|
|
437
437
|
DyFM_Log.error(
|
|
438
|
-
`Socket Server Service - Deep Setup failed: ${this.params?.name} ` +
|
|
438
|
+
`Socket Server Service - Deep Setup failed: "${this.params?.name}" ` +
|
|
439
439
|
`(${this.params?.port})`,
|
|
440
440
|
error
|
|
441
441
|
);
|
|
@@ -458,12 +458,12 @@ export abstract class DyNTS_SocketServerService<
|
|
|
458
458
|
} catch (error) {
|
|
459
459
|
if (DyNTS_global_settings.log_settings.socket_eventContent) {
|
|
460
460
|
DyFM_Log.error(
|
|
461
|
-
`Socket Subscription failed: ${this.params?.name} (${this.params?.port})`,
|
|
461
|
+
`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`,
|
|
462
462
|
error
|
|
463
463
|
);
|
|
464
464
|
} else {
|
|
465
465
|
DyFM_Log.error(
|
|
466
|
-
`Socket Subscription failed: ${this.params?.name} (${this.params?.port})`
|
|
466
|
+
`Socket Subscription failed: "${this.params?.name}" (${this.params?.port})`
|
|
467
467
|
);
|
|
468
468
|
}
|
|
469
469
|
|
|
@@ -516,8 +516,8 @@ export abstract class DyNTS_SocketServerService<
|
|
|
516
516
|
...this._getDefaultErrorSettings(
|
|
517
517
|
'sendEventForId',
|
|
518
518
|
new Error(
|
|
519
|
-
`socket subscription for ${issuer} and ` +
|
|
520
|
-
|
|
519
|
+
`socket subscription for "${issuer}" and ` +
|
|
520
|
+
`"${activePresence.issuerLocalId}" does not match.`
|
|
521
521
|
),
|
|
522
522
|
issuer
|
|
523
523
|
),
|
|
@@ -568,7 +568,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
568
568
|
),
|
|
569
569
|
|
|
570
570
|
errorCode: 'NTS-SSS-200',
|
|
571
|
-
message: `socket(${this.params.name}) Subscription Removal failed: ${this.params?.name}`,
|
|
571
|
+
message: `socket(${this.params.name}) Subscription Removal failed: "${this.params?.name}"`,
|
|
572
572
|
});
|
|
573
573
|
}
|
|
574
574
|
}
|
|
@@ -630,6 +630,32 @@ export abstract class DyNTS_SocketServerService<
|
|
|
630
630
|
|
|
631
631
|
async sendEventForId(id: string, event: string, content: any, issuer: string): Promise<void> {
|
|
632
632
|
try {
|
|
633
|
+
if (!event) {
|
|
634
|
+
throw new DyFM_Error({
|
|
635
|
+
...this._getDefaultErrorSettings(
|
|
636
|
+
'sendEventForId',
|
|
637
|
+
new Error('No event was provided'),
|
|
638
|
+
content?.source
|
|
639
|
+
),
|
|
640
|
+
|
|
641
|
+
status: 400,
|
|
642
|
+
errorCode: 'NTS-SSS-300',
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
if (!id) {
|
|
647
|
+
throw new DyFM_Error({
|
|
648
|
+
...this._getDefaultErrorSettings(
|
|
649
|
+
'sendEventForId',
|
|
650
|
+
new Error('No ID was provided'),
|
|
651
|
+
content?.source
|
|
652
|
+
),
|
|
653
|
+
|
|
654
|
+
status: 400,
|
|
655
|
+
errorCode: 'NTS-SSS-301',
|
|
656
|
+
});
|
|
657
|
+
}
|
|
658
|
+
|
|
633
659
|
const presence: DyNTS_SocketPresence = this.presences.find(
|
|
634
660
|
(pres: DyNTS_SocketPresence) => pres.issuerLocalId === id
|
|
635
661
|
);
|
|
@@ -638,7 +664,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
638
664
|
throw new DyFM_Error({
|
|
639
665
|
...this._getDefaultErrorSettings(
|
|
640
666
|
'sendEventForId',
|
|
641
|
-
new Error(`No active socket with this specific ID: ${id}`),
|
|
667
|
+
new Error(`No active socket with this specific ID: "${id}"`),
|
|
642
668
|
content?.source
|
|
643
669
|
),
|
|
644
670
|
|
|
@@ -651,13 +677,13 @@ export abstract class DyNTS_SocketServerService<
|
|
|
651
677
|
|
|
652
678
|
if (DyNTS_global_settings.log_settings.socket_eventContent) {
|
|
653
679
|
DyFM_Log.success(
|
|
654
|
-
` <--= emitted socket(${this.params.name}) event
|
|
655
|
-
`\n presenceId: ${id}, sockets: ${presence.sockets.length}` +
|
|
680
|
+
` <--= emitted socket(${this.params.name}) event: "${event}", ` +
|
|
681
|
+
`\n presenceId: "${id}", sockets: ${presence.sockets.length}` +
|
|
656
682
|
`\n content:`, content
|
|
657
683
|
);
|
|
658
684
|
} else {
|
|
659
685
|
DyFM_Log.success(
|
|
660
|
-
` <--= emitted socket(${this.params.name}) event
|
|
686
|
+
` <--= emitted socket(${this.params.name}) event: "${event}", ` +
|
|
661
687
|
`\n presenceId: ${id}, sockets: ${presence.sockets.length}`
|
|
662
688
|
);
|
|
663
689
|
}
|
|
@@ -678,7 +704,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
678
704
|
throw new DyFM_Error({
|
|
679
705
|
...this._getDefaultErrorSettings(
|
|
680
706
|
'sendEventForId',
|
|
681
|
-
new Error(`No active socket(${this.params.name}) with this specific ID: ${id}`),
|
|
707
|
+
new Error(`No active socket(${this.params.name}) with this specific ID: "${id}"`),
|
|
682
708
|
content?.source
|
|
683
709
|
),
|
|
684
710
|
|
|
@@ -709,7 +735,7 @@ export abstract class DyNTS_SocketServerService<
|
|
|
709
735
|
|
|
710
736
|
broadcastEvent(event: string, content: any, issuer: string): void {
|
|
711
737
|
try {
|
|
712
|
-
DyFM_Log.log(` <=-== broadcasting socket(${this.params.name}) event: ${event}`);
|
|
738
|
+
DyFM_Log.log(` <=-== broadcasting socket(${this.params.name}) event: "${event}"`);
|
|
713
739
|
|
|
714
740
|
this.presences.forEach((presence: DyNTS_SocketPresence) => {
|
|
715
741
|
presence.emitEvent(event, content, issuer);
|
|
@@ -733,7 +759,9 @@ export abstract class DyNTS_SocketServerService<
|
|
|
733
759
|
): DyFM_Error_Settings {
|
|
734
760
|
return {
|
|
735
761
|
status: (error as DyFM_Error)?.___status ?? 500,
|
|
736
|
-
message: (error as Error)?.message ??
|
|
762
|
+
message: (error as Error)?.message ??
|
|
763
|
+
(error as DyFM_Error)?._message ??
|
|
764
|
+
`${fnName} was UNSUCCESSFUL (NTS)`,
|
|
737
765
|
addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
|
|
738
766
|
userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
739
767
|
issuer: issuer,
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
|
|
2
|
+
import {
|
|
3
|
+
DyFM_Metadata, DyFM_DataModel_Params, DyFM_Error
|
|
4
|
+
} from '@futdevpro/fsm-dynamo';
|
|
5
|
+
|
|
6
|
+
import { DyNTS_DataService } from './data.service';
|
|
7
|
+
import { DyNTS_getArchivedDBName } from '../../_collections/archive.util';
|
|
8
|
+
import { DyNTS_GlobalService } from '../core/global.service';
|
|
9
|
+
import { DyNTS_DBService } from './db.service';
|
|
10
|
+
import { DyNTS_DBFilterSimple } from '../../_models/types/db-filter.type';
|
|
11
|
+
|
|
12
|
+
// TODO: 3 type of archiving service system:
|
|
13
|
+
// 1.: within list (data have a list that have elements to archive)
|
|
14
|
+
// 2.: separate db elements needs to be archived
|
|
15
|
+
// 3.: from separate db elements to archive list elements
|
|
16
|
+
|
|
17
|
+
export class DyNTS_ArchiveDataService<T extends DyFM_Metadata> extends DyNTS_DataService<T> {
|
|
18
|
+
|
|
19
|
+
originalDBService: DyNTS_DBService<T>;
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
/**
|
|
23
|
+
* Initial data, this will be used by functions on default
|
|
24
|
+
*/
|
|
25
|
+
data: T,
|
|
26
|
+
/**
|
|
27
|
+
* DB data prams will be used to connect to usable dbService on GlobalService
|
|
28
|
+
*/
|
|
29
|
+
dataParams: DyFM_DataModel_Params,
|
|
30
|
+
/**
|
|
31
|
+
* Initial set for issuer to be able to follow the issuer's activity
|
|
32
|
+
*/
|
|
33
|
+
issuer: string
|
|
34
|
+
) {
|
|
35
|
+
const originalDataParams = { ...dataParams };
|
|
36
|
+
|
|
37
|
+
dataParams = {
|
|
38
|
+
...dataParams,
|
|
39
|
+
dataName: DyNTS_getArchivedDBName(dataParams.dataName),
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
super(data, dataParams, issuer);
|
|
43
|
+
|
|
44
|
+
this.originalDBService = DyNTS_GlobalService.getDBService<T>(originalDataParams);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
async archiveDataById(id: string): Promise<T> {
|
|
48
|
+
try {
|
|
49
|
+
if (!id) {
|
|
50
|
+
throw new DyFM_Error({
|
|
51
|
+
...this.getDefaultErrorSettings(
|
|
52
|
+
'archiveDataById',
|
|
53
|
+
new Error('archiveDataById failed, id is missing!')
|
|
54
|
+
),
|
|
55
|
+
|
|
56
|
+
errorCode: 'NTS-ADS-ADI1',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const data = await this.originalDBService.getDataById(id);
|
|
61
|
+
|
|
62
|
+
if (!data) {
|
|
63
|
+
throw new DyFM_Error({
|
|
64
|
+
...this.getDefaultErrorSettings(
|
|
65
|
+
'archiveDataById',
|
|
66
|
+
new Error('archiveDataById failed, data not found!')
|
|
67
|
+
),
|
|
68
|
+
|
|
69
|
+
errorCode: 'NTS-ADS-ADI2',
|
|
70
|
+
additionalContent: {
|
|
71
|
+
id: id,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return await this.archiveData(data);
|
|
77
|
+
} catch (error) {
|
|
78
|
+
throw new DyFM_Error({
|
|
79
|
+
...this.getDefaultErrorSettings(
|
|
80
|
+
'archiveDataById',
|
|
81
|
+
error
|
|
82
|
+
),
|
|
83
|
+
|
|
84
|
+
errorCode: 'NTS-ADS-ADI0',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async getDataByOriginalId(originalId: string, dontSetToService?: boolean): Promise<T> {
|
|
90
|
+
try {
|
|
91
|
+
return await this.findData(
|
|
92
|
+
{
|
|
93
|
+
_originalId: originalId,
|
|
94
|
+
} as DyNTS_DBFilterSimple<T>,
|
|
95
|
+
dontSetToService
|
|
96
|
+
);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw new DyFM_Error({
|
|
99
|
+
...this.getDefaultErrorSettings(
|
|
100
|
+
'getDataByOriginalId',
|
|
101
|
+
error
|
|
102
|
+
),
|
|
103
|
+
|
|
104
|
+
errorCode: 'NTS-ADS-GDOI0',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async archiveData(data?: T, dontSetToService?: boolean): Promise<T> {
|
|
110
|
+
try {
|
|
111
|
+
data = this.ensureData(data);
|
|
112
|
+
|
|
113
|
+
if (data?._originalId) {
|
|
114
|
+
throw new DyFM_Error({
|
|
115
|
+
...this.getDefaultErrorSettings(
|
|
116
|
+
'archiveData',
|
|
117
|
+
new Error(
|
|
118
|
+
`archiveData failed, originalId is already exists! (${this.dataParams.dataName})`
|
|
119
|
+
)
|
|
120
|
+
),
|
|
121
|
+
|
|
122
|
+
errorCode: 'NTS-ADS-AD1',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (data?._archived) {
|
|
127
|
+
throw new DyFM_Error({
|
|
128
|
+
...this.getDefaultErrorSettings(
|
|
129
|
+
'archiveData',
|
|
130
|
+
new Error(
|
|
131
|
+
`archiveData failed, data is already archived! (${this.dataParams.dataName})`
|
|
132
|
+
)
|
|
133
|
+
),
|
|
134
|
+
|
|
135
|
+
errorCode: 'NTS-ADS-AD2',
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (!data?._id) {
|
|
140
|
+
throw new DyFM_Error({
|
|
141
|
+
...this.getDefaultErrorSettings(
|
|
142
|
+
'archiveData',
|
|
143
|
+
new Error(`archiveData failed, id is missing! (${this.dataParams.dataName})`)
|
|
144
|
+
),
|
|
145
|
+
|
|
146
|
+
errorCode: 'NTS-ADS-AD3',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
await this.originalDBService.deleteDataById(data._id);
|
|
151
|
+
|
|
152
|
+
data._originalId = data._id;
|
|
153
|
+
data._archived = new Date();
|
|
154
|
+
delete data._id;
|
|
155
|
+
|
|
156
|
+
return await this.saveData(data, dontSetToService);
|
|
157
|
+
} catch (error) {
|
|
158
|
+
throw new DyFM_Error({
|
|
159
|
+
...this.getDefaultErrorSettings(
|
|
160
|
+
'archiveData',
|
|
161
|
+
error
|
|
162
|
+
),
|
|
163
|
+
|
|
164
|
+
errorCode: 'NTS-ADS-AD0',
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
override async saveData(data?: T, dontSetToService?: boolean): Promise<T> {
|
|
170
|
+
try {
|
|
171
|
+
data = this.ensureData(data);
|
|
172
|
+
|
|
173
|
+
if (!data?._originalId) {
|
|
174
|
+
throw new DyFM_Error({
|
|
175
|
+
...this.getDefaultErrorSettings(
|
|
176
|
+
'saveData',
|
|
177
|
+
new Error(`saveData failed, originalId is missing! (${this.dataParams.dataName})`)
|
|
178
|
+
),
|
|
179
|
+
|
|
180
|
+
errorCode: 'NTS-ADS-SD1',
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!data?._archived) {
|
|
185
|
+
throw new DyFM_Error({
|
|
186
|
+
...this.getDefaultErrorSettings(
|
|
187
|
+
'saveData',
|
|
188
|
+
new Error(`saveData failed, data is not archived! (${this.dataParams.dataName})`)
|
|
189
|
+
),
|
|
190
|
+
|
|
191
|
+
errorCode: 'NTS-ADS-SD2',
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return await super.saveData(data, dontSetToService);
|
|
196
|
+
} catch (error) {
|
|
197
|
+
throw new DyFM_Error({
|
|
198
|
+
...this.getDefaultErrorSettings(
|
|
199
|
+
'saveData',
|
|
200
|
+
error
|
|
201
|
+
),
|
|
202
|
+
|
|
203
|
+
errorCode: 'NTS-ADS-SD0',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|