@futdevpro/nts-dynamo 1.8.5 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.copilot/patterns.json +1 -1
- package/.eslintrc.json +9 -1
- package/lib/_constants/mocks/app-extended-server.mock.js +5 -5
- package/lib/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/lib/_constants/mocks/app-server.mock.js +4 -4
- package/lib/_constants/mocks/app-server.mock.js.map +1 -1
- package/lib/_constants/mocks/data-model.mock.d.ts +5 -5
- package/lib/_constants/mocks/data-model.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/data-model.mock.js +4 -4
- package/lib/_constants/mocks/data-model.mock.js.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.js.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +19 -18
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-event.control-model.js +7 -7
- package/lib/_models/control-models/socket-event.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.js +8 -8
- package/lib/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/lib/_models/interfaces/global-service-settings.interface.d.ts +3 -3
- package/lib/_models/interfaces/global-service-settings.interface.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.js +4 -4
- package/lib/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.d.ts +3 -3
- package/lib/_modules/custom-data/custom-data.data-service.d.ts.map +1 -1
- package/lib/_modules/custom-data/custom-data.data-service.js +4 -4
- package/lib/_modules/custom-data/custom-data.data-service.js.map +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js +1 -1
- package/lib/_modules/custom-data/get-custom-data-routing-module.util.js.map +1 -1
- package/lib/_modules/test/get-test-routing-module.util.js +1 -1
- package/lib/_modules/test/get-test-routing-module.util.js.map +1 -1
- package/lib/_modules/test/test.controller.js +6 -6
- package/lib/_modules/test/test.controller.js.map +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.js +1 -1
- package/lib/_modules/usage/get-usage-routing-module.util.js.map +1 -1
- package/lib/_modules/usage/usage.controller.js +5 -5
- package/lib/_modules/usage/usage.controller.js.map +1 -1
- package/lib/_modules/usage/usage.data-service.d.ts +8 -8
- package/lib/_modules/usage/usage.data-service.d.ts.map +1 -1
- package/lib/_modules/usage/usage.data-service.js +8 -8
- package/lib/_modules/usage/usage.data-service.js.map +1 -1
- package/lib/_services/base/data.service.d.ts +4 -4
- package/lib/_services/base/data.service.d.ts.map +1 -1
- package/lib/_services/base/data.service.js +35 -35
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.d.ts +6 -6
- package/lib/_services/base/db.service.d.ts.map +1 -1
- package/lib/_services/base/db.service.js +31 -31
- package/lib/_services/base/db.service.js.map +1 -1
- package/lib/_services/core/api.service.js +25 -25
- package/lib/_services/core/api.service.js.map +1 -1
- package/lib/_services/core/auth.service.d.ts +6 -6
- package/lib/_services/core/auth.service.js +2 -2
- package/lib/_services/core/auth.service.js.map +1 -1
- package/lib/_services/core/email.service.js +23 -23
- package/lib/_services/core/email.service.js.map +1 -1
- package/lib/_services/core/global.service.d.ts +3 -3
- package/lib/_services/core/global.service.d.ts.map +1 -1
- package/lib/_services/core/global.service.js +7 -7
- package/lib/_services/core/global.service.js.map +1 -1
- package/lib/_services/route/controller.service.js +1 -1
- package/lib/_services/route/controller.service.js.map +1 -1
- package/lib/_services/route/routing-module.service.d.ts.map +1 -1
- package/lib/_services/route/routing-module.service.js +23 -12
- package/lib/_services/route/routing-module.service.js.map +1 -1
- package/lib/_services/server/app-extended.server.d.ts +2 -2
- package/lib/_services/server/app-extended.server.js +25 -25
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app-extended.server.spec.js +3 -3
- package/lib/_services/server/app-extended.server.spec.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +4 -4
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +89 -88
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/_services/server/app.server.spec.js +5 -5
- package/lib/_services/server/app.server.spec.js.map +1 -1
- package/lib/_services/shared.static-service.d.ts +4 -4
- package/lib/_services/shared.static-service.d.ts.map +1 -1
- package/lib/_services/shared.static-service.js +1 -1
- package/lib/_services/shared.static-service.js.map +1 -1
- package/lib/_services/socket/socket-client.service.js +19 -19
- package/lib/_services/socket/socket-client.service.js.map +1 -1
- package/lib/_services/socket/socket-server.service.js +46 -46
- package/lib/_services/socket/socket-server.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +233 -230
- package/src/_constants/mocks/app-extended-server.mock.ts +8 -8
- package/src/_constants/mocks/app-server.mock.ts +6 -6
- package/src/_constants/mocks/data-model.mock.ts +5 -5
- package/src/_constants/mocks/endpoint.mock.ts +50 -47
- package/src/_models/control-models/api-call-params.control-model.ts +2 -2
- package/src/_models/control-models/endpoint-params.control-model.ts +30 -29
- package/src/_models/control-models/socket-event.control-model.ts +8 -8
- package/src/_models/control-models/socket-presence.control-model.ts +14 -14
- package/src/_models/interfaces/global-service-settings.interface.ts +3 -3
- package/src/_modules/custom-data/custom-data.controller.ts +6 -6
- package/src/_modules/custom-data/custom-data.data-service.ts +5 -5
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +2 -2
- package/src/_modules/test/get-test-routing-module.util.ts +2 -2
- package/src/_modules/test/test.controller.ts +7 -7
- package/src/_modules/usage/get-usage-routing-module.util.ts +2 -2
- package/src/_modules/usage/usage.controller.ts +7 -7
- package/src/_modules/usage/usage.data-service.ts +28 -28
- package/src/_services/base/data.service.ts +46 -46
- package/src/_services/base/db.service.ts +45 -45
- package/src/_services/core/api.service.ts +32 -32
- package/src/_services/core/auth.service.ts +9 -9
- package/src/_services/core/email.service.ts +29 -29
- package/src/_services/core/global.service.ts +12 -12
- package/src/_services/route/controller.service.ts +2 -2
- package/src/_services/route/routing-module.service.ts +26 -16
- package/src/_services/server/app-extended.server.spec.ts +4 -4
- package/src/_services/server/app-extended.server.ts +26 -26
- package/src/_services/server/app.server.spec.ts +6 -6
- package/src/_services/server/app.server.ts +99 -97
- package/src/_services/shared.static-service.ts +4 -4
- package/src/_services/socket/socket-client.service.ts +21 -21
- package/src/_services/socket/socket-server.service.ts +52 -52
- package/tsconfig.json +7 -7
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Request, Response } from 'express';
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
|
-
|
|
5
|
+
DynamoFM_usageModule_settings, DynamoFM_UsageSession, DynamoFM_RelativeDate
|
|
6
6
|
} from '@futdevpro/fsm-dynamo/usage-module';
|
|
7
7
|
|
|
8
8
|
import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
|
|
@@ -30,13 +30,13 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
|
|
|
30
30
|
new DynamoNTS_Endpoint_Params({
|
|
31
31
|
name: 'newSession',
|
|
32
32
|
type: DynamoNTS_HttpCallType.get,
|
|
33
|
-
endpoint:
|
|
33
|
+
endpoint: DynamoFM_usageModule_settings.endPoints.newSession,
|
|
34
34
|
tasks: [
|
|
35
35
|
async (req: Request, res: Response, issuer: string): Promise<void> => {
|
|
36
36
|
const authService = DynamoNTS_GlobalService.getAuthService();
|
|
37
37
|
const username = authService.getUsernameFromRequest(req);
|
|
38
38
|
const usageService = new DynamoNTS_Usage_DataService({
|
|
39
|
-
usageSession: new
|
|
39
|
+
usageSession: new DynamoFM_UsageSession({
|
|
40
40
|
sessionStart: new Date(),
|
|
41
41
|
issuer: username,
|
|
42
42
|
}),
|
|
@@ -56,7 +56,7 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
|
|
|
56
56
|
new DynamoNTS_Endpoint_Params({
|
|
57
57
|
name: 'updateUsage',
|
|
58
58
|
type: DynamoNTS_HttpCallType.post,
|
|
59
|
-
endpoint:
|
|
59
|
+
endpoint: DynamoFM_usageModule_settings.endPoints.updateUsage,
|
|
60
60
|
logRequestsContent: false,
|
|
61
61
|
tasks: [
|
|
62
62
|
async (req: Request, res: Response, issuer: string): Promise<void> => {
|
|
@@ -78,7 +78,7 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
|
|
|
78
78
|
new DynamoNTS_Endpoint_Params({
|
|
79
79
|
name: 'closeSession',
|
|
80
80
|
type: DynamoNTS_HttpCallType.get,
|
|
81
|
-
endpoint:
|
|
81
|
+
endpoint: DynamoFM_usageModule_settings.endPoints.closeSession,
|
|
82
82
|
tasks: [
|
|
83
83
|
async (req: Request, res: Response, issuer: string): Promise<void> => {
|
|
84
84
|
const usageService = new DynamoNTS_Usage_DataService({
|
|
@@ -98,11 +98,11 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
|
|
|
98
98
|
new DynamoNTS_Endpoint_Params({
|
|
99
99
|
name: 'getUsageData',
|
|
100
100
|
type: DynamoNTS_HttpCallType.get,
|
|
101
|
-
endpoint:
|
|
101
|
+
endpoint: DynamoFM_usageModule_settings.endPoints.getUsageData,
|
|
102
102
|
preProcessess: [this.authService.authTokenPermAccUsageData],
|
|
103
103
|
tasks: [
|
|
104
104
|
async (req: Request, res: Response): Promise<void> => {
|
|
105
|
-
const range:
|
|
105
|
+
const range: DynamoFM_RelativeDate = req.params.range as DynamoFM_RelativeDate;
|
|
106
106
|
|
|
107
107
|
const usageService = new DynamoNTS_Usage_DataService();
|
|
108
108
|
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
|
|
2
2
|
import { Request } from 'express';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { DynamoFM_Error, DynamoFM_Time, DynamoFM_RelativeDate } from '@futdevpro/fsm-dynamo';
|
|
4
|
+
import { DynamoFM_UsageSession, DynamoFM_usageSessionModel_params, DynamoFM_UsageData,
|
|
5
|
+
DynamoFM_DailyUsageData } from '@futdevpro/fsm-dynamo/usage-module';
|
|
6
6
|
|
|
7
7
|
import { DynamoNTS_DataService } from '../../_services/base/data.service';
|
|
8
8
|
import { DynamoNTS_Shared } from '../../_services/shared.static-service';
|
|
9
9
|
|
|
10
|
-
export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<
|
|
11
|
-
usageData:
|
|
12
|
-
simplifiedDailyUsage:
|
|
10
|
+
export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<DynamoFM_UsageSession> {
|
|
11
|
+
usageData: DynamoFM_UsageData[] = [];
|
|
12
|
+
simplifiedDailyUsage: DynamoFM_DailyUsageData[] = [];
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
15
15
|
set?: {
|
|
16
|
-
usageSession?:
|
|
17
|
-
usageData?:
|
|
16
|
+
usageSession?: DynamoFM_UsageSession,
|
|
17
|
+
usageData?: DynamoFM_UsageData[],
|
|
18
18
|
issuer?: string,
|
|
19
19
|
}
|
|
20
20
|
) {
|
|
21
21
|
super(
|
|
22
|
-
new
|
|
23
|
-
|
|
22
|
+
new DynamoFM_UsageSession(set?.usageSession),
|
|
23
|
+
DynamoFM_usageSessionModel_params,
|
|
24
24
|
set?.issuer
|
|
25
25
|
);
|
|
26
26
|
this.usageData = set?.usageData ? set?.usageData : [];
|
|
@@ -33,7 +33,7 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
33
33
|
|
|
34
34
|
/* console.log(`...getLocationDataFromRequest... ip: ${this.data.address}`, this.data.locationData); */
|
|
35
35
|
} catch (error) {
|
|
36
|
-
throw new
|
|
36
|
+
throw new DynamoFM_Error({
|
|
37
37
|
...this.getDefaultErrorSettings('getLocationDataFromRequest', error),
|
|
38
38
|
|
|
39
39
|
errorCode: 'NTS-US0-GLD',
|
|
@@ -42,23 +42,23 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
async getUsage(range:
|
|
45
|
+
async getUsage(range: DynamoFM_RelativeDate = DynamoFM_RelativeDate.lastWeek): Promise<void> {
|
|
46
46
|
try {
|
|
47
47
|
await this.dataDBService.find({
|
|
48
|
-
sessionStart: { $gte:
|
|
49
|
-
}).then((res:
|
|
48
|
+
sessionStart: { $gte: DynamoFM_Time.getDateByRelativeDate(range) },
|
|
49
|
+
}).then((res: DynamoFM_UsageSession[]): void => {
|
|
50
50
|
this.dataList = res;
|
|
51
51
|
});
|
|
52
52
|
this.simplifiedDailyUsage = [];
|
|
53
|
-
this.dataList.forEach((session:
|
|
53
|
+
this.dataList.forEach((session: DynamoFM_UsageSession): void => {
|
|
54
54
|
let dateIndex = this.simplifiedDailyUsage.findIndex(
|
|
55
|
-
(dailyData:
|
|
55
|
+
(dailyData: DynamoFM_DailyUsageData): boolean => dailyData.date === session.date
|
|
56
56
|
);
|
|
57
57
|
|
|
58
58
|
if (-1 < dateIndex) {
|
|
59
59
|
this.simplifiedDailyUsage[dateIndex].visitations.push(session);
|
|
60
60
|
} else {
|
|
61
|
-
const newUsageSimple = new
|
|
61
|
+
const newUsageSimple = new DynamoFM_DailyUsageData({
|
|
62
62
|
date: session.date,
|
|
63
63
|
visitations: [ session ],
|
|
64
64
|
});
|
|
@@ -82,18 +82,18 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
this.simplifiedDailyUsage.sort(
|
|
85
|
-
(a:
|
|
85
|
+
(a: DynamoFM_DailyUsageData, b: DynamoFM_DailyUsageData): number =>
|
|
86
86
|
+new Date(b.date) - +new Date(a.date)
|
|
87
87
|
);
|
|
88
|
-
this.simplifiedDailyUsage.forEach((daily:
|
|
88
|
+
this.simplifiedDailyUsage.forEach((daily: DynamoFM_DailyUsageData): void => {
|
|
89
89
|
daily.visitations.sort(
|
|
90
|
-
(a:
|
|
90
|
+
(a: DynamoFM_UsageSession, b: DynamoFM_UsageSession): number =>
|
|
91
91
|
+a.sessionStart - +b.sessionStart
|
|
92
92
|
);
|
|
93
93
|
});
|
|
94
94
|
|
|
95
95
|
} catch (error) {
|
|
96
|
-
throw new
|
|
96
|
+
throw new DynamoFM_Error({
|
|
97
97
|
...this.getDefaultErrorSettings('getLastWeekUsage', error),
|
|
98
98
|
|
|
99
99
|
errorCode: 'NTS-US0-GLW',
|
|
@@ -108,7 +108,7 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
108
108
|
this.data.usageData = this.usageData;
|
|
109
109
|
let totalTime = 0;
|
|
110
110
|
|
|
111
|
-
this.data.usageData.forEach((data:
|
|
111
|
+
this.data.usageData.forEach((data: DynamoFM_UsageData): void => {
|
|
112
112
|
totalTime += data.timeSpentOnPage;
|
|
113
113
|
});
|
|
114
114
|
|
|
@@ -118,7 +118,7 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
118
118
|
this.data.totalSessionTime = totalTime;
|
|
119
119
|
await this.saveData();
|
|
120
120
|
} catch (error) {
|
|
121
|
-
throw new
|
|
121
|
+
throw new DynamoFM_Error({
|
|
122
122
|
...this.getDefaultErrorSettings('updateUsageData', error),
|
|
123
123
|
|
|
124
124
|
errorCode: 'NTS-US0-UU0',
|
|
@@ -140,12 +140,12 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
140
140
|
this.getLocationDataFromRequest(req);
|
|
141
141
|
}
|
|
142
142
|
this.data.usageData.sort(
|
|
143
|
-
(a:
|
|
143
|
+
(a: DynamoFM_UsageData, b: DynamoFM_UsageData): number => +a.opened - +b.opened
|
|
144
144
|
);
|
|
145
145
|
this.data.totalSessionTime = newTotalSessionTime;
|
|
146
146
|
await this.saveData();
|
|
147
147
|
} catch (error) {
|
|
148
|
-
throw new
|
|
148
|
+
throw new DynamoFM_Error({
|
|
149
149
|
...this.getDefaultErrorSettings('closeSession', error),
|
|
150
150
|
|
|
151
151
|
errorCode: 'NTS-US0-CS0',
|
|
@@ -157,10 +157,10 @@ export class DynamoNTS_Usage_DataService extends DynamoNTS_DataService<Dynamo_Us
|
|
|
157
157
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
158
158
|
private getDefaultErrorSettings(
|
|
159
159
|
fnName: string,
|
|
160
|
-
error: Error |
|
|
161
|
-
)/* :
|
|
160
|
+
error: Error | DynamoFM_Error
|
|
161
|
+
)/* : DynamoFM_ErrorSettings */ {
|
|
162
162
|
return {
|
|
163
|
-
status: (error as
|
|
163
|
+
status: (error as DynamoFM_Error)?.___status ?? 417,
|
|
164
164
|
message: (error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS; ${this.serviceName})`,
|
|
165
165
|
addECToUserMsg: true,
|
|
166
166
|
userMessage: this.defaultErrorUserMsg,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
|
|
4
|
+
DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
|
|
5
5
|
} from '@futdevpro/fsm-dynamo';
|
|
6
6
|
import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
|
|
7
7
|
import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
|
|
@@ -28,7 +28,7 @@ import { DynamoNTS_GlobalService } from '../core/global.service';
|
|
|
28
28
|
* }
|
|
29
29
|
* }
|
|
30
30
|
*/
|
|
31
|
-
export class DynamoNTS_DataService<T extends
|
|
31
|
+
export class DynamoNTS_DataService<T extends DynamoFM_Metadata> {
|
|
32
32
|
|
|
33
33
|
serviceName: string;
|
|
34
34
|
|
|
@@ -43,7 +43,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
43
43
|
depKeyIsRequired?: boolean;
|
|
44
44
|
private depDataDBService: DynamoNTS_DBService<any>;
|
|
45
45
|
|
|
46
|
-
dataParams:
|
|
46
|
+
dataParams: DynamoFM_DataModel_Params;
|
|
47
47
|
|
|
48
48
|
defaultErrorUserMsg: string =
|
|
49
49
|
`We encountered an unhandled Data Service Error, ` +
|
|
@@ -60,7 +60,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
60
60
|
/**
|
|
61
61
|
* DB data prams will be used to connect to usable dbService on GlobalService
|
|
62
62
|
*/
|
|
63
|
-
dataParams:
|
|
63
|
+
dataParams: DynamoFM_DataModel_Params,
|
|
64
64
|
/**
|
|
65
65
|
* Initial set for issuer to be able to follow the issuer's activity
|
|
66
66
|
*/
|
|
@@ -74,7 +74,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
74
74
|
this.lookForDependencyDataSettings();
|
|
75
75
|
this.issuer = issuer;
|
|
76
76
|
} catch (error) {
|
|
77
|
-
|
|
77
|
+
DynamoFM_Log.error(
|
|
78
78
|
`\nDynamoNTS_DataService ERROR: ` +
|
|
79
79
|
`\nThe dataService construction failed for ` +
|
|
80
80
|
`${dataParams?.dataName}. ${this.serviceName} (${this.constructor.name})` +
|
|
@@ -92,7 +92,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
92
92
|
try {
|
|
93
93
|
const dataListExists: T[] = await this.dataDBService.getAll().catch((error): T[] => {
|
|
94
94
|
if (error?.errorCode === 'NTS-DBS-GA1') {
|
|
95
|
-
|
|
95
|
+
DynamoFM_Log.warn(`getAll ${this.dataParams.dataName} didn't found any.`);
|
|
96
96
|
|
|
97
97
|
return [];
|
|
98
98
|
} else {
|
|
@@ -106,7 +106,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
106
106
|
|
|
107
107
|
return dataListExists;
|
|
108
108
|
} catch (error) {
|
|
109
|
-
throw new
|
|
109
|
+
throw new DynamoFM_Error({
|
|
110
110
|
...this._getDefaultErrorSettings('getAll', error),
|
|
111
111
|
|
|
112
112
|
errorCode: 'NTS-DS0-GA0',
|
|
@@ -133,7 +133,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
133
133
|
async getDataById(id?: string, dontSetToService?: boolean): Promise<T> {
|
|
134
134
|
try {
|
|
135
135
|
if (!id && !this.data._id) {
|
|
136
|
-
throw new
|
|
136
|
+
throw new DynamoFM_Error({
|
|
137
137
|
...this._getDefaultErrorSettings(
|
|
138
138
|
'getDataById',
|
|
139
139
|
new Error(
|
|
@@ -158,7 +158,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
158
158
|
if (error?.errorCode == 'NTS-DS0-GI1') {
|
|
159
159
|
throw error;
|
|
160
160
|
} else {
|
|
161
|
-
throw new
|
|
161
|
+
throw new DynamoFM_Error({
|
|
162
162
|
...this._getDefaultErrorSettings('getDataById', error),
|
|
163
163
|
errorCode: 'NTS-DS0-GI0',
|
|
164
164
|
});
|
|
@@ -169,7 +169,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
169
169
|
async getDataByIds(ids: string[], dontSetToService?: boolean): Promise<T[]> {
|
|
170
170
|
try {
|
|
171
171
|
if (!ids) {
|
|
172
|
-
throw new
|
|
172
|
+
throw new DynamoFM_Error({
|
|
173
173
|
...this._getDefaultErrorSettings(
|
|
174
174
|
'getDataByIds',
|
|
175
175
|
new Error(`getDataByIds failed, ids is missing! (${this.dataParams.dataName})`)
|
|
@@ -191,7 +191,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
191
191
|
|
|
192
192
|
return datas;
|
|
193
193
|
} catch (error) {
|
|
194
|
-
throw new
|
|
194
|
+
throw new DynamoFM_Error({
|
|
195
195
|
...this._getDefaultErrorSettings('getDataByIds', error),
|
|
196
196
|
|
|
197
197
|
errorCode: 'NTS-DS0-GIS0',
|
|
@@ -207,7 +207,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
207
207
|
async getDataByDependencyId(dependencyId?: string, dontSetToService?: boolean): Promise<T> {
|
|
208
208
|
try {
|
|
209
209
|
if (!this.depKey) {
|
|
210
|
-
throw new
|
|
210
|
+
throw new DynamoFM_Error({
|
|
211
211
|
...this._getDefaultErrorSettings(
|
|
212
212
|
'getDataByDependencyId',
|
|
213
213
|
new Error(
|
|
@@ -221,7 +221,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
if (!dependencyId && !this.data[this.depKey]) {
|
|
224
|
-
throw new
|
|
224
|
+
throw new DynamoFM_Error({
|
|
225
225
|
...this._getDefaultErrorSettings(
|
|
226
226
|
'getDataByDependencyId',
|
|
227
227
|
new Error(
|
|
@@ -238,7 +238,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
238
238
|
dependencyId ?? this.data[this.depKey]
|
|
239
239
|
).catch((error): null => {
|
|
240
240
|
if (error?.errorCode === 'NTS-DBS-GD2') {
|
|
241
|
-
|
|
241
|
+
DynamoFM_Log.warn(
|
|
242
242
|
`getDataByDependencyId failed; ${this.dataParams.dataName} ` +
|
|
243
243
|
`(${this.depKey}: ${dependencyId ?? this.data[this.depKey]}) didn't found any.`
|
|
244
244
|
);
|
|
@@ -258,7 +258,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
258
258
|
if ([ 'NTS-DS0-GD1', 'NTS-DS0-GD2' ].includes(error?.errorCode)) {
|
|
259
259
|
throw error;
|
|
260
260
|
} else {
|
|
261
|
-
throw new
|
|
261
|
+
throw new DynamoFM_Error({
|
|
262
262
|
...this._getDefaultErrorSettings('getDataByDependencyId', error),
|
|
263
263
|
|
|
264
264
|
errorCode: 'NTS-DS0-GD0',
|
|
@@ -270,7 +270,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
270
270
|
async getDatasByDependencyIds(dependencyIds: string[], dontSetToService?: boolean): Promise<T[]> {
|
|
271
271
|
try {
|
|
272
272
|
if (!this.depKey) {
|
|
273
|
-
throw new
|
|
273
|
+
throw new DynamoFM_Error({
|
|
274
274
|
...this._getDefaultErrorSettings(
|
|
275
275
|
'getDatasByDependencyIds',
|
|
276
276
|
new Error(
|
|
@@ -284,7 +284,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
if (!dependencyIds) {
|
|
287
|
-
throw new
|
|
287
|
+
throw new DynamoFM_Error({
|
|
288
288
|
...this._getDefaultErrorSettings(
|
|
289
289
|
'getDatasByDependencyIds',
|
|
290
290
|
new Error(
|
|
@@ -312,7 +312,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
312
312
|
if ([ 'NTS-DS0-GDS1', 'NTS-DS0-GDS2' ].includes(error?.errorCode)) {
|
|
313
313
|
throw error;
|
|
314
314
|
} else {
|
|
315
|
-
throw new
|
|
315
|
+
throw new DynamoFM_Error({
|
|
316
316
|
...this._getDefaultErrorSettings('getDatasByDependencyIds', error),
|
|
317
317
|
|
|
318
318
|
errorCode: 'NTS-DS0-GDS0',
|
|
@@ -328,7 +328,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
328
328
|
async getDataListByDependencyId(dependencyId?: string, dontSetToService?: boolean): Promise<T[]> {
|
|
329
329
|
try {
|
|
330
330
|
if (!this.depKey) {
|
|
331
|
-
throw new
|
|
331
|
+
throw new DynamoFM_Error({
|
|
332
332
|
...this._getDefaultErrorSettings(
|
|
333
333
|
'getDataListByDependencyId',
|
|
334
334
|
new Error(
|
|
@@ -342,7 +342,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
if (!dependencyId && !this.data[this.depKey]) {
|
|
345
|
-
throw new
|
|
345
|
+
throw new DynamoFM_Error({
|
|
346
346
|
...this._getDefaultErrorSettings(
|
|
347
347
|
'getDataListByDependencyId',
|
|
348
348
|
new Error(
|
|
@@ -359,7 +359,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
359
359
|
dependencyId ?? this.data[this.depKey]
|
|
360
360
|
).catch((error): T[] => {
|
|
361
361
|
if (error?.errorCode === 'NTS-DBS-GLD2') {
|
|
362
|
-
|
|
362
|
+
DynamoFM_Log.warn(
|
|
363
363
|
`getDataListByDependencyId ${this.dataParams.dataName} ` +
|
|
364
364
|
`(${this.depKey}: ${dependencyId ?? this.data[this.depKey]}) didn't found any.`
|
|
365
365
|
);
|
|
@@ -379,7 +379,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
379
379
|
if (['NTS-DS0-GLD1', 'NTS-DS0-GLD2'].includes(error?.errorCode)) {
|
|
380
380
|
throw error;
|
|
381
381
|
} else {
|
|
382
|
-
throw new
|
|
382
|
+
throw new DynamoFM_Error({
|
|
383
383
|
...this._getDefaultErrorSettings('getDataListByDependencyId', error),
|
|
384
384
|
|
|
385
385
|
errorCode: 'NTS-DS0-GLD0',
|
|
@@ -423,7 +423,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
423
423
|
try {
|
|
424
424
|
const dataExists: T = await this.dataDBService.findOne(filterBy).catch((error): null => {
|
|
425
425
|
if (error?.errorCode === 'NTS-DBS-FO1') {
|
|
426
|
-
|
|
426
|
+
DynamoFM_Log.warn(`findData ${this.dataParams.dataName} didn't found any.`);
|
|
427
427
|
|
|
428
428
|
return null;
|
|
429
429
|
} else {
|
|
@@ -437,7 +437,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
437
437
|
|
|
438
438
|
return dataExists;
|
|
439
439
|
} catch (error) {
|
|
440
|
-
throw new
|
|
440
|
+
throw new DynamoFM_Error({
|
|
441
441
|
...this._getDefaultErrorSettings('findData', error),
|
|
442
442
|
|
|
443
443
|
errorCode: 'NTS-DS0-FD0',
|
|
@@ -479,7 +479,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
479
479
|
try {
|
|
480
480
|
const dataListExists: T[] = await this.dataDBService.find(filterBy).catch((error): T[] => {
|
|
481
481
|
if (error?.errorCode === 'NTS-DBS-F1') {
|
|
482
|
-
|
|
482
|
+
DynamoFM_Log.warn(`findDatas ${this.dataParams.dataName} didn't found any.`);
|
|
483
483
|
|
|
484
484
|
return [];
|
|
485
485
|
} else {
|
|
@@ -493,7 +493,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
493
493
|
|
|
494
494
|
return dataListExists;
|
|
495
495
|
} catch (error) {
|
|
496
|
-
throw new
|
|
496
|
+
throw new DynamoFM_Error({
|
|
497
497
|
...this._getDefaultErrorSettings('findDatas', error),
|
|
498
498
|
|
|
499
499
|
errorCode: 'NTS-DS0-FDS0',
|
|
@@ -579,7 +579,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
579
579
|
);
|
|
580
580
|
|
|
581
581
|
} else {
|
|
582
|
-
throw new
|
|
582
|
+
throw new DynamoFM_Error({
|
|
583
583
|
...this._getDefaultErrorSettings(
|
|
584
584
|
'updateData',
|
|
585
585
|
new Error(
|
|
@@ -597,7 +597,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
597
597
|
throw error;
|
|
598
598
|
|
|
599
599
|
} else {
|
|
600
|
-
throw new
|
|
600
|
+
throw new DynamoFM_Error({
|
|
601
601
|
...this._getDefaultErrorSettings('updateData', error),
|
|
602
602
|
|
|
603
603
|
errorCode: 'NTS-DS0-UD0',
|
|
@@ -620,7 +620,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
620
620
|
async saveData(): Promise<T> {
|
|
621
621
|
try {
|
|
622
622
|
if (!this.data) {
|
|
623
|
-
throw new
|
|
623
|
+
throw new DynamoFM_Error({
|
|
624
624
|
...this._getDefaultErrorSettings(
|
|
625
625
|
'saveData',
|
|
626
626
|
new Error(`no data to save! (${this.dataParams.dataName})`)
|
|
@@ -650,7 +650,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
650
650
|
return this.data;
|
|
651
651
|
|
|
652
652
|
} else {
|
|
653
|
-
throw new
|
|
653
|
+
throw new DynamoFM_Error({
|
|
654
654
|
...this._getDefaultErrorSettings(
|
|
655
655
|
'saveData',
|
|
656
656
|
new Error(
|
|
@@ -666,7 +666,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
666
666
|
|
|
667
667
|
if (this.depKey) {
|
|
668
668
|
if (!this.data[this.depKey]) {
|
|
669
|
-
throw new
|
|
669
|
+
throw new DynamoFM_Error({
|
|
670
670
|
...this._getDefaultErrorSettings(
|
|
671
671
|
'saveData',
|
|
672
672
|
new Error(
|
|
@@ -695,7 +695,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
695
695
|
.catch();
|
|
696
696
|
|
|
697
697
|
if (!dependencyExists) {
|
|
698
|
-
throw new
|
|
698
|
+
throw new DynamoFM_Error({
|
|
699
699
|
...this._getDefaultErrorSettings(
|
|
700
700
|
'saveData',
|
|
701
701
|
new Error(
|
|
@@ -722,7 +722,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
722
722
|
throw error;
|
|
723
723
|
|
|
724
724
|
} else {
|
|
725
|
-
throw new
|
|
725
|
+
throw new DynamoFM_Error({
|
|
726
726
|
...this._getDefaultErrorSettings('saveData', error),
|
|
727
727
|
|
|
728
728
|
errorCode: 'NTS-DS0-SD0',
|
|
@@ -737,7 +737,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
737
737
|
async deleteData(): Promise<void> {
|
|
738
738
|
try {
|
|
739
739
|
if (!this.data._id) {
|
|
740
|
-
throw new
|
|
740
|
+
throw new DynamoFM_Error({
|
|
741
741
|
...this._getDefaultErrorSettings(
|
|
742
742
|
'deleteData',
|
|
743
743
|
new Error(`deleteData failed, ID is missing! (${this.dataParams.dataName})`)
|
|
@@ -752,7 +752,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
752
752
|
if (error?.errorCode == 'NTS-DS0-DD1') {
|
|
753
753
|
throw error;
|
|
754
754
|
} else {
|
|
755
|
-
throw new
|
|
755
|
+
throw new DynamoFM_Error({
|
|
756
756
|
...this._getDefaultErrorSettings('deleteData', error),
|
|
757
757
|
|
|
758
758
|
errorCode: 'NTS-DS0-DD0',
|
|
@@ -780,7 +780,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
780
780
|
)
|
|
781
781
|
)
|
|
782
782
|
) {
|
|
783
|
-
throw new
|
|
783
|
+
throw new DynamoFM_Error({
|
|
784
784
|
...this._getDefaultErrorSettings(
|
|
785
785
|
'validateForSave',
|
|
786
786
|
new Error(
|
|
@@ -799,7 +799,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
799
799
|
if (this.dataParams.properties[i].type === 'Date' &&
|
|
800
800
|
!(new Date(this.data[this.dataParams.properties[i].key]) instanceof Date)
|
|
801
801
|
) {
|
|
802
|
-
throw new
|
|
802
|
+
throw new DynamoFM_Error({
|
|
803
803
|
...this._getDefaultErrorSettings(
|
|
804
804
|
'validateForSave',
|
|
805
805
|
new Error(
|
|
@@ -827,7 +827,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
827
827
|
if (['NTS-DS0-VD1', 'NTS-DS0-VD2'].includes(error?.errorCode)) {
|
|
828
828
|
throw error;
|
|
829
829
|
} else {
|
|
830
|
-
throw new
|
|
830
|
+
throw new DynamoFM_Error({
|
|
831
831
|
...this._getDefaultErrorSettings('validateForSave', error),
|
|
832
832
|
|
|
833
833
|
status: 422,
|
|
@@ -841,8 +841,8 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
841
841
|
* setting up dependency dataHook by DynamoBEDataModelParams
|
|
842
842
|
*/
|
|
843
843
|
private lookForDependencyDataSettings(): void {
|
|
844
|
-
const dependencyParam:
|
|
845
|
-
(modelParams:
|
|
844
|
+
const dependencyParam: DynamoFM_DataProperty_Params = this.dataParams.properties.find(
|
|
845
|
+
(modelParams: DynamoFM_DataProperty_Params): boolean => modelParams.isDependencyHook
|
|
846
846
|
);
|
|
847
847
|
|
|
848
848
|
if (dependencyParam) {
|
|
@@ -868,7 +868,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
868
868
|
*/
|
|
869
869
|
getDependencyDataDBService(): DynamoNTS_DBService<any> {
|
|
870
870
|
if (!this.depDBServiceKey) {
|
|
871
|
-
throw new
|
|
871
|
+
throw new DynamoFM_Error({
|
|
872
872
|
...this._getDefaultErrorSettings(
|
|
873
873
|
'getDependencyDataDBService',
|
|
874
874
|
new Error(
|
|
@@ -891,14 +891,14 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
|
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
|
|
894
|
-
private _getDefaultErrorSettings(fnName: string, error:
|
|
894
|
+
private _getDefaultErrorSettings(fnName: string, error: DynamoFM_AnyError): DynamoFM_Error_Settings {
|
|
895
895
|
return {
|
|
896
|
-
status: (error as
|
|
896
|
+
status: (error as DynamoFM_Error)?.___status ?? 500,
|
|
897
897
|
message:
|
|
898
898
|
(error as Error)?.message ??
|
|
899
899
|
`${fnName} was UNSUCCESFUL (NTS; ${this.dataParams.dataName})`,
|
|
900
|
-
addECToUserMsg: !(error as
|
|
901
|
-
userMessage: (error as
|
|
900
|
+
addECToUserMsg: !(error as DynamoFM_Error)?.__userMessage,
|
|
901
|
+
userMessage: (error as DynamoFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
|
|
902
902
|
issuer: this.issuer,
|
|
903
903
|
issuerService: this.serviceName + ` (${this?.constructor?.name}-DynamoNTS_DataService)`,
|
|
904
904
|
error: error,
|