@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
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
DyFM_Metadata, DyFM_DataModel_Params, DyFM_DataProperty_Params, DyFM_Error,
|
|
4
4
|
DyFM_Log, DyFM_AnyError, DyFM_Error_Settings, DyFM_ErrorLevel
|
|
5
5
|
} from '@futdevpro/fsm-dynamo';
|
|
6
|
+
|
|
6
7
|
import { DyNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
7
8
|
import { DyNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
8
|
-
|
|
9
|
-
import { DyNTS_DBService } from './db.service';
|
|
10
|
-
import { DyNTS_GlobalService } from '../core/global.service';
|
|
11
9
|
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
10
|
+
import { DyNTS_GlobalService } from '../core/global.service';
|
|
11
|
+
import { DyNTS_DBService } from './db.service';
|
|
12
12
|
|
|
13
13
|
// TODO: 2 type of archiving service system: within list, or separate db elements
|
|
14
14
|
|
|
@@ -79,12 +79,13 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
79
79
|
} catch (error) {
|
|
80
80
|
throw new DyFM_Error({
|
|
81
81
|
...this._getDefaultErrorSettings('constructor', error),
|
|
82
|
-
message: `The dataService construction failed for "${dataParams?.dataName}". ` +
|
|
83
|
-
`at "${this.serviceName}" (${this.constructor.name})` +
|
|
84
|
-
`\nMaybe you forgot to add the dbService to the GlobalService?\n\n`,
|
|
85
|
-
level: DyFM_ErrorLevel.critical,
|
|
86
82
|
|
|
87
83
|
errorCode: 'NTS-DS0-C00',
|
|
84
|
+
message:
|
|
85
|
+
`The dataService construction failed for "${dataParams?.dataName}". ` +
|
|
86
|
+
`at "${this.serviceName}" (${this.constructor.name})` +
|
|
87
|
+
`\nMaybe you forgot to add the dbService to the GlobalService?\n\n`,
|
|
88
|
+
level: DyFM_ErrorLevel.critical,
|
|
88
89
|
});
|
|
89
90
|
/* DyFM_Log.error(
|
|
90
91
|
`\nDyNTS_DataService ERROR: ` +
|
|
@@ -243,6 +244,9 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
243
244
|
),
|
|
244
245
|
|
|
245
246
|
errorCode: 'NTS-DS0-GD2',
|
|
247
|
+
additionalContent: {
|
|
248
|
+
data: this.data,
|
|
249
|
+
},
|
|
246
250
|
});
|
|
247
251
|
}
|
|
248
252
|
|
|
@@ -367,6 +371,9 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
367
371
|
),
|
|
368
372
|
|
|
369
373
|
errorCode: 'NTS-DS0-GLD2',
|
|
374
|
+
additionalContent: {
|
|
375
|
+
data: this.data,
|
|
376
|
+
},
|
|
370
377
|
});
|
|
371
378
|
}
|
|
372
379
|
|
|
@@ -573,24 +580,32 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
573
580
|
* //
|
|
574
581
|
*/
|
|
575
582
|
async updateData(
|
|
576
|
-
set: { filterBy?: DyNTS_DBFilter<T>, update: DyNTS_DBUpdate<T> }
|
|
583
|
+
set: { filterBy?: DyNTS_DBFilter<T>, update: DyNTS_DBUpdate<T> },
|
|
584
|
+
dontUpdateModified?: boolean
|
|
577
585
|
): Promise<void> {
|
|
578
586
|
try {
|
|
579
587
|
if (set.filterBy) {
|
|
580
|
-
await this.dataDBService.updateOne(
|
|
588
|
+
await this.dataDBService.updateOne(
|
|
589
|
+
set.filterBy,
|
|
590
|
+
set.update,
|
|
591
|
+
this.issuer,
|
|
592
|
+
dontUpdateModified
|
|
593
|
+
);
|
|
581
594
|
|
|
582
595
|
} else if (this.data._id) {
|
|
583
596
|
await this.dataDBService.updateOne(
|
|
584
597
|
{ _id: this.data._id } as DyNTS_DBFilter<T>,
|
|
585
598
|
set.update,
|
|
586
|
-
this.issuer
|
|
599
|
+
this.issuer,
|
|
600
|
+
dontUpdateModified
|
|
587
601
|
);
|
|
588
602
|
|
|
589
603
|
} else if (this.depKey && this.data[this.depKey]) {
|
|
590
604
|
await this.dataDBService.updateOne(
|
|
591
605
|
{ [this.depKey]: this.data[this.depKey] } as DyNTS_DBFilter<T>,
|
|
592
606
|
set.update,
|
|
593
|
-
this.issuer
|
|
607
|
+
this.issuer,
|
|
608
|
+
dontUpdateModified
|
|
594
609
|
);
|
|
595
610
|
|
|
596
611
|
} else {
|
|
@@ -604,13 +619,15 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
604
619
|
),
|
|
605
620
|
|
|
606
621
|
errorCode: 'NTS-DS0-UD1',
|
|
622
|
+
additionalContent: {
|
|
623
|
+
data: this.data,
|
|
624
|
+
filterBy: set.filterBy,
|
|
625
|
+
},
|
|
607
626
|
});
|
|
608
627
|
}
|
|
609
|
-
} catch (error) {
|
|
610
|
-
|
|
628
|
+
} catch (error) {
|
|
611
629
|
if (error?.errorCode == 'NTS-DS0-UD1') {
|
|
612
630
|
throw error;
|
|
613
|
-
|
|
614
631
|
} else {
|
|
615
632
|
throw new DyFM_Error({
|
|
616
633
|
...this._getDefaultErrorSettings('updateData', error),
|
|
@@ -621,6 +638,25 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
621
638
|
}
|
|
622
639
|
}
|
|
623
640
|
|
|
641
|
+
protected ensureData(data?: T): T {
|
|
642
|
+
if (!data && this.data) {
|
|
643
|
+
data = this.data;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
if (!data) {
|
|
647
|
+
throw new DyFM_Error({
|
|
648
|
+
...this._getDefaultErrorSettings(
|
|
649
|
+
'saveData',
|
|
650
|
+
new Error(`no data to save! (${this.dataParams.dataName})`)
|
|
651
|
+
),
|
|
652
|
+
|
|
653
|
+
errorCode: 'NTS-DS0-ED0',
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
return data;
|
|
658
|
+
}
|
|
659
|
+
|
|
624
660
|
/**
|
|
625
661
|
* modifies data if the data have ID and already exists in the DB,
|
|
626
662
|
* creates new if the ID is not present or cant find in DB,
|
|
@@ -632,24 +668,11 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
632
668
|
* (when you simultaneously trying to change the same data's
|
|
633
669
|
* different values from different flows)
|
|
634
670
|
*/
|
|
635
|
-
async saveData(data?: T, dontSetToService?: boolean): Promise<T> {
|
|
671
|
+
async saveData(data?: T, dontSetToService?: boolean, dontUpdateModified?: boolean): Promise<T> {
|
|
636
672
|
try {
|
|
637
|
-
|
|
638
|
-
data = this.data;
|
|
639
|
-
}
|
|
673
|
+
data = this.ensureData(data);
|
|
640
674
|
|
|
641
|
-
|
|
642
|
-
throw new DyFM_Error({
|
|
643
|
-
...this._getDefaultErrorSettings(
|
|
644
|
-
'saveData',
|
|
645
|
-
new Error(`no data to save! (${this.dataParams.dataName})`)
|
|
646
|
-
),
|
|
647
|
-
|
|
648
|
-
errorCode: 'NTS-DS0-SD4',
|
|
649
|
-
});
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
await this.validateForSave();
|
|
675
|
+
await this.validateForSave(data);
|
|
653
676
|
|
|
654
677
|
if (!data._id && (!this.depKey || !data[this.depKey])) {
|
|
655
678
|
// if ID of dependencyID is not present, data not exists, create new data
|
|
@@ -666,31 +689,33 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
666
689
|
|
|
667
690
|
// check if data already exists with the specific ID
|
|
668
691
|
if (data._id) {
|
|
669
|
-
dataExists = await this.getDataById(
|
|
670
|
-
|
|
671
|
-
if (dataExists) {
|
|
672
|
-
// if data exists do modify
|
|
673
|
-
data = await this.dataDBService.modifyData(data, this.issuer);
|
|
692
|
+
dataExists = await this.getDataById(data._id, true);
|
|
674
693
|
|
|
675
|
-
|
|
676
|
-
this.data = data;
|
|
677
|
-
}
|
|
678
|
-
|
|
679
|
-
return data;
|
|
680
|
-
|
|
681
|
-
} else {
|
|
694
|
+
if (!dataExists) {
|
|
682
695
|
throw new DyFM_Error({
|
|
683
696
|
...this._getDefaultErrorSettings(
|
|
684
697
|
'saveData',
|
|
685
698
|
new Error(
|
|
686
699
|
`saveData was unsuccessful: provided ID not exists ` +
|
|
687
|
-
`(id: ${data._id}, ${this.dataParams.dataName})`
|
|
700
|
+
`(id: "${data._id}", ${this.dataParams.dataName})`
|
|
688
701
|
)
|
|
689
702
|
),
|
|
690
703
|
|
|
691
704
|
errorCode: 'NTS-DS0-SD1',
|
|
705
|
+
additionalContent: {
|
|
706
|
+
data: data,
|
|
707
|
+
},
|
|
692
708
|
});
|
|
693
709
|
}
|
|
710
|
+
|
|
711
|
+
// if data exists do modify
|
|
712
|
+
data = await this.dataDBService.modifyData(data, this.issuer, dontUpdateModified);
|
|
713
|
+
|
|
714
|
+
if (!dontSetToService) {
|
|
715
|
+
this.data = data;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
return data;
|
|
694
719
|
}
|
|
695
720
|
|
|
696
721
|
if (this.depKey) {
|
|
@@ -705,15 +730,18 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
705
730
|
),
|
|
706
731
|
|
|
707
732
|
errorCode: 'NTS-DS0-SD2',
|
|
733
|
+
additionalContent: {
|
|
734
|
+
data: data,
|
|
735
|
+
},
|
|
708
736
|
});
|
|
709
737
|
}
|
|
710
738
|
|
|
711
739
|
if (this.depKeyIsUnique) {
|
|
712
|
-
dataExists = await this.getDataByDependencyId(
|
|
740
|
+
dataExists = await this.getDataByDependencyId(data[this.depKey], true);
|
|
713
741
|
|
|
714
742
|
if (dataExists) {
|
|
715
743
|
// if data exists do modify
|
|
716
|
-
data = await this.dataDBService.modifyData(data, this.issuer);
|
|
744
|
+
data = await this.dataDBService.modifyData(data, this.issuer, dontUpdateModified);
|
|
717
745
|
|
|
718
746
|
if (!dontSetToService) {
|
|
719
747
|
this.data = data;
|
|
@@ -787,8 +815,12 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
787
815
|
errorCode: 'NTS-DS0-DD1',
|
|
788
816
|
});
|
|
789
817
|
}
|
|
790
|
-
|
|
818
|
+
|
|
791
819
|
await this.dataDBService.deleteDataById(id);
|
|
820
|
+
|
|
821
|
+
if (this.data._id === id) {
|
|
822
|
+
delete this.data._id;
|
|
823
|
+
}
|
|
792
824
|
} catch (error) {
|
|
793
825
|
if (error?.errorCode == 'NTS-DS0-DD1') {
|
|
794
826
|
throw error;
|
|
@@ -807,34 +839,17 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
807
839
|
*/
|
|
808
840
|
async validateForSave(data?: T): Promise<void> {
|
|
809
841
|
try {
|
|
810
|
-
|
|
811
|
-
data = this.data;
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
if (!data) {
|
|
815
|
-
throw new DyFM_Error({
|
|
816
|
-
...this._getDefaultErrorSettings(
|
|
817
|
-
'validateForSave',
|
|
818
|
-
new Error(`validateForSave failed, no data provided! (${this.dataParams.dataName})`)
|
|
819
|
-
),
|
|
820
|
-
|
|
821
|
-
status: 522,
|
|
822
|
-
errorCode: 'NTS-DS0-VD4',
|
|
823
|
-
});
|
|
824
|
-
}
|
|
842
|
+
data = this.ensureData(data);
|
|
825
843
|
|
|
826
844
|
for (const element of this.dataParams.properties) {
|
|
827
845
|
// basic required validations
|
|
828
846
|
if (
|
|
829
|
-
(
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
(data[element.key] === null ||
|
|
836
|
-
data[element.key] === undefined
|
|
837
|
-
)
|
|
847
|
+
(
|
|
848
|
+
element.required ||
|
|
849
|
+
element.index
|
|
850
|
+
) && (
|
|
851
|
+
data[element.key] === null ||
|
|
852
|
+
data[element.key] === undefined
|
|
838
853
|
)
|
|
839
854
|
) {
|
|
840
855
|
throw new DyFM_Error({
|
|
@@ -849,6 +864,9 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
849
864
|
status: 522,
|
|
850
865
|
errorCode: 'NTS-DS0-VD1',
|
|
851
866
|
userMessage: this.defaultValidationErrorUserMsg,
|
|
867
|
+
additionalContent: {
|
|
868
|
+
data: data,
|
|
869
|
+
},
|
|
852
870
|
});
|
|
853
871
|
}
|
|
854
872
|
|
|
@@ -868,6 +886,9 @@ export class DyNTS_DataService<T extends DyFM_Metadata> {
|
|
|
868
886
|
status: 522,
|
|
869
887
|
errorCode: 'NTS-DS0-VD2',
|
|
870
888
|
userMessage: this.defaultValidationErrorUserMsg,
|
|
889
|
+
additionalContent: {
|
|
890
|
+
data: data,
|
|
891
|
+
},
|
|
871
892
|
});
|
|
872
893
|
}
|
|
873
894
|
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
} from '@futdevpro/fsm-dynamo';
|
|
9
9
|
import { DyNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
10
10
|
import { DyNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
11
|
+
import { DyNTS_archiveSuffix } from '../../_collections/archive.util';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* DB Service for MongoDB
|
|
@@ -125,9 +126,11 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
125
126
|
* @param data data
|
|
126
127
|
* @returns data
|
|
127
128
|
*/
|
|
128
|
-
async modifyData(data: T, issuer: string): Promise<T> {
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
async modifyData(data: T, issuer: string, dontUpdateModified?: boolean): Promise<T> {
|
|
130
|
+
if (!dontUpdateModified) {
|
|
131
|
+
data.__lastModified = new Date();
|
|
132
|
+
data.__lastModifiedBy = issuer;
|
|
133
|
+
}
|
|
131
134
|
|
|
132
135
|
/**
|
|
133
136
|
* EZ A SZAR TELJESEN SZAR, nem friss, nem a db-be mentett adatokat ad vissza,
|
|
@@ -718,9 +721,16 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
718
721
|
* @param update update
|
|
719
722
|
* @returns data
|
|
720
723
|
*/
|
|
721
|
-
async findByIdAndUpdate(
|
|
722
|
-
|
|
723
|
-
update
|
|
724
|
+
async findByIdAndUpdate(
|
|
725
|
+
id: string,
|
|
726
|
+
update: DyNTS_DBUpdate<T>,
|
|
727
|
+
issuer: string,
|
|
728
|
+
dontUpdateModified?: boolean
|
|
729
|
+
): Promise<T> {
|
|
730
|
+
if (!dontUpdateModified) {
|
|
731
|
+
update.__lastModified = new Date();
|
|
732
|
+
update.__lastModifiedBy = issuer;
|
|
733
|
+
}
|
|
724
734
|
|
|
725
735
|
let newData: T = await this.dataModel
|
|
726
736
|
.findByIdAndUpdate(id, update)
|
|
@@ -796,10 +806,13 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
796
806
|
async updateOne(
|
|
797
807
|
filterBy: DyNTS_DBFilter<T>,
|
|
798
808
|
update: DyNTS_DBUpdate<T>,
|
|
799
|
-
issuer: string
|
|
809
|
+
issuer: string,
|
|
810
|
+
dontUpdateModified?: boolean
|
|
800
811
|
): Promise<void> {
|
|
801
|
-
|
|
802
|
-
|
|
812
|
+
if (!dontUpdateModified) {
|
|
813
|
+
update.__lastModified = new Date();
|
|
814
|
+
update.__lastModifiedBy = issuer;
|
|
815
|
+
}
|
|
803
816
|
|
|
804
817
|
await this.dataModel
|
|
805
818
|
.updateOne(filterBy, update)
|
|
@@ -869,10 +882,13 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
869
882
|
async updateMany(
|
|
870
883
|
filterBy: DyNTS_DBFilter<T>,
|
|
871
884
|
update: DyNTS_DBUpdate<T>,
|
|
872
|
-
issuer: string
|
|
885
|
+
issuer: string,
|
|
886
|
+
dontUpdateModified?: boolean
|
|
873
887
|
): Promise<void> {
|
|
874
|
-
|
|
875
|
-
|
|
888
|
+
if (!dontUpdateModified) {
|
|
889
|
+
update.__lastModified = new Date();
|
|
890
|
+
update.__lastModifiedBy = issuer;
|
|
891
|
+
}
|
|
876
892
|
|
|
877
893
|
await this.dataModel
|
|
878
894
|
.updateMany(filterBy, update)
|
|
@@ -939,7 +955,11 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
939
955
|
private getSchema(): mongoose.Schema {
|
|
940
956
|
let schema: any = this.buildMongooseSchemaByModelParams();
|
|
941
957
|
|
|
942
|
-
schema = this.
|
|
958
|
+
schema = this.addMetadataToSchema(schema);
|
|
959
|
+
|
|
960
|
+
if (this.dataParams.dataName.includes(DyNTS_archiveSuffix)) {
|
|
961
|
+
schema = this.addArchiveMetadataToSchema(schema);
|
|
962
|
+
}
|
|
943
963
|
|
|
944
964
|
// tslint:disable-next-line: no-string-literal
|
|
945
965
|
if (schema['_id']) {
|
|
@@ -1039,7 +1059,7 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
1039
1059
|
* @param schema schema to update
|
|
1040
1060
|
* @returns updated schema
|
|
1041
1061
|
*/
|
|
1042
|
-
private
|
|
1062
|
+
private addMetadataToSchema(schema: any): any {
|
|
1043
1063
|
schema.__created = { type: Date };
|
|
1044
1064
|
schema.__createdBy = { type: String };
|
|
1045
1065
|
schema.__lastModified = { type: Date };
|
|
@@ -1048,6 +1068,13 @@ export class DyNTS_DBService<T extends DyFM_Metadata> {
|
|
|
1048
1068
|
return schema;
|
|
1049
1069
|
}
|
|
1050
1070
|
|
|
1071
|
+
private addArchiveMetadataToSchema(schema: any): any {
|
|
1072
|
+
schema._originalId = { type: String, required: true, index: true, unique: true };
|
|
1073
|
+
schema._archived = { type: Date, required: true };
|
|
1074
|
+
|
|
1075
|
+
return schema;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1051
1078
|
/**
|
|
1052
1079
|
* sets depDataKey
|
|
1053
1080
|
*/
|
|
@@ -23,6 +23,8 @@ import { DyNTS_Service_Collection } from './service-collection.service';
|
|
|
23
23
|
/* import { DyNTS_EmailServiceCollection } from './email-service-collection.service'; */
|
|
24
24
|
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
25
25
|
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
26
|
+
/* import { DyNTS_archiveFlag } from '../../_collections/archive-flag.const'; */
|
|
27
|
+
import { DyNTS_getArchivedDBName } from '../../_collections/archive.util';
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* This is the main Global/Core Service Collection used by DynamoBE,
|
|
@@ -84,6 +86,18 @@ export class DyNTS_GlobalService extends DyNTS_SingletonService {
|
|
|
84
86
|
private static async setDBServices(dbModels?: DyFM_DataModel_Params[]): Promise<void> {
|
|
85
87
|
try {
|
|
86
88
|
this.instance.dbServiceCollection = {};
|
|
89
|
+
|
|
90
|
+
dbModels?.forEach((dbModel: DyFM_DataModel_Params): void => {
|
|
91
|
+
if (dbModel.addArchive) {
|
|
92
|
+
const archiveModel: DyFM_DataModel_Params = new DyFM_DataModel_Params({
|
|
93
|
+
...dbModel,
|
|
94
|
+
dataName: DyNTS_getArchivedDBName(dbModel.dataName),
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
dbModels.push(archiveModel);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
|
|
87
101
|
dbModels?.forEach((dbModel: DyFM_DataModel_Params): void => {
|
|
88
102
|
if (!dbModel.constructed) {
|
|
89
103
|
throw new DyFM_Error({
|
|
@@ -271,32 +271,36 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
|
|
|
271
271
|
constructor(extended?: boolean){
|
|
272
272
|
super();
|
|
273
273
|
|
|
274
|
-
process.on(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
DyNTS_GlobalService.globalErrorHandler?.(
|
|
284
|
-
new DyFM_Error({
|
|
285
|
-
errorCode: 'NTS-AS0-BASE-UR',
|
|
286
|
-
message: 'Unhandled Rejection!',
|
|
287
|
-
error: new Error(p_passWhatIsThis),
|
|
288
|
-
additionalContent: {
|
|
289
|
-
reason: reason,
|
|
290
|
-
p_noIdeaWhatIsThisFromProcessRejection: p_passWhatIsThis,
|
|
291
|
-
},
|
|
292
|
-
level: DyFM_ErrorLevel.critical,
|
|
293
|
-
})
|
|
274
|
+
process.on(
|
|
275
|
+
'unhandledRejection',
|
|
276
|
+
(reason_theError: object, p_passWhatIsThis_maybeThePromise: any): void => {
|
|
277
|
+
DyFM_Log.H_error(
|
|
278
|
+
'Unhandled Rejection: ', (p_passWhatIsThis_maybeThePromise as Promise<any>)?.toString(),
|
|
279
|
+
'\n Rejection reason:', (reason_theError as Error)?.stack?.split('at')?.[0],
|
|
280
|
+
/* '\n ErrorCode:', (reason as any)?.code, */
|
|
281
|
+
'\n\n Stack:',
|
|
282
|
+
(reason_theError as Error)?.stack?.replaceAll?.('\n at', '\n at'),
|
|
294
283
|
);
|
|
295
284
|
|
|
296
|
-
|
|
297
|
-
|
|
285
|
+
try {
|
|
286
|
+
DyNTS_GlobalService.globalErrorHandler?.(
|
|
287
|
+
new DyFM_Error({
|
|
288
|
+
errorCode: 'NTS-AS0-BASE-UR',
|
|
289
|
+
message: 'Unhandled Rejection!',
|
|
290
|
+
error: reason_theError as Error,
|
|
291
|
+
additionalContent: {
|
|
292
|
+
reason: reason_theError,
|
|
293
|
+
rejectedPromise: p_passWhatIsThis_maybeThePromise,
|
|
294
|
+
},
|
|
295
|
+
level: DyFM_ErrorLevel.critical,
|
|
296
|
+
})
|
|
297
|
+
);
|
|
298
|
+
|
|
299
|
+
} catch (error) {
|
|
300
|
+
DyFM_Log.error('globalErrorHandler (MULTILEVEL) ERROR:', error);
|
|
301
|
+
}
|
|
298
302
|
}
|
|
299
|
-
|
|
303
|
+
);
|
|
300
304
|
|
|
301
305
|
this.asyncConstruct(extended).catch((error: any): void => {
|
|
302
306
|
if (
|
|
@@ -313,7 +317,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
|
|
|
313
317
|
);
|
|
314
318
|
}
|
|
315
319
|
|
|
316
|
-
DyFM_Log.H_warn('
|
|
320
|
+
DyFM_Log.H_warn('asyncConstruct error\n', error?.additionalContent);
|
|
317
321
|
});
|
|
318
322
|
}
|
|
319
323
|
|
package/src/index.ts
CHANGED
|
@@ -33,19 +33,29 @@ export * from './_models/types/db-update.type';
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
// SERVICES
|
|
36
|
+
// services/CORE
|
|
36
37
|
export * from './_services/core/api.service';
|
|
37
|
-
export * from './_services/server/app.server';
|
|
38
38
|
export * from './_services/core/auth.service';
|
|
39
|
-
export * from './_services/route/controller.service';
|
|
40
|
-
export * from './_services/base/data.service';
|
|
41
|
-
export * from './_services/base/db.service';
|
|
42
39
|
export * from './_services/core/email.service';
|
|
43
40
|
export * from './_services/core/global.service';
|
|
41
|
+
export * from './_services/core/service-collection.service';
|
|
42
|
+
|
|
43
|
+
// services/BASE
|
|
44
|
+
export * from './_services/base/archive-data.service';
|
|
45
|
+
export * from './_services/base/data.service';
|
|
46
|
+
export * from './_services/base/db.service';
|
|
47
|
+
export * from './_services/base/singleton.service';
|
|
48
|
+
|
|
49
|
+
// services/SERVER
|
|
50
|
+
export * from './_services/server/app.server';
|
|
51
|
+
|
|
52
|
+
// services/ROUTE
|
|
53
|
+
export * from './_services/route/controller.service';
|
|
44
54
|
export * from './_services/route/controller.service';
|
|
45
55
|
export * from './_services/route/routing-module.service';
|
|
46
|
-
|
|
56
|
+
|
|
57
|
+
// services/SHARED
|
|
47
58
|
export * from './_services/shared.static-service';
|
|
48
|
-
export * from './_services/base/singleton.service';
|
|
49
59
|
|
|
50
60
|
|
|
51
61
|
|