@futdevpro/nts-dynamo 1.9.14 → 1.9.16

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.
Files changed (142) hide show
  1. package/.copilot/patterns.json +7 -7
  2. package/.eslintrc.json +1 -1
  3. package/.github/workflows/main.yml +206 -0
  4. package/HOWTO.md +15 -15
  5. package/README.md +140 -140
  6. package/build/_constants/mocks/auth-service.mock.d.ts +1 -1
  7. package/build/_constants/mocks/auth-service.mock.d.ts.map +1 -1
  8. package/build/_constants/mocks/auth-service.mock.js +1 -1
  9. package/build/_constants/mocks/auth-service.mock.js.map +1 -1
  10. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  11. package/build/_models/control-models/endpoint-params.control-model.js +2 -0
  12. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  13. package/build/_models/control-models/socket-event.control-model.js +1 -1
  14. package/build/_modules/usage/usage.controller.js +1 -1
  15. package/build/_modules/usage/usage.controller.js.map +1 -1
  16. package/build/_services/base/db.service.js +3 -3
  17. package/build/_services/base/db.service.js.map +1 -1
  18. package/build/_services/core/auth.service.d.ts +3 -3
  19. package/build/_services/core/auth.service.d.ts.map +1 -1
  20. package/build/_services/core/global.service.d.ts.map +1 -1
  21. package/build/_services/core/global.service.js +1 -0
  22. package/build/_services/core/global.service.js.map +1 -1
  23. package/build/_services/route/controller.service.d.ts +3 -3
  24. package/build/_services/route/controller.service.js +2 -2
  25. package/build/_services/route/routing-module.service.d.ts +1 -0
  26. package/build/_services/route/routing-module.service.d.ts.map +1 -1
  27. package/build/_services/route/routing-module.service.js +17 -23
  28. package/build/_services/route/routing-module.service.js.map +1 -1
  29. package/build/_services/server/app.server.d.ts.map +1 -1
  30. package/build/_services/server/app.server.js +4 -1
  31. package/build/_services/server/app.server.js.map +1 -1
  32. package/build/_services/socket/socket-client.service.d.ts.map +1 -1
  33. package/build/_services/socket/socket-client.service.js +1 -0
  34. package/build/_services/socket/socket-client.service.js.map +1 -1
  35. package/nodemon.json +17 -15
  36. package/package.json +6 -6
  37. package/src/_constants/global-settings.const.ts +27 -27
  38. package/src/_constants/index.ts +2 -2
  39. package/src/_constants/mocks/app-extended-server.mock.ts +198 -198
  40. package/src/_constants/mocks/app-params.mock.ts +9 -9
  41. package/src/_constants/mocks/app-server.mock.ts +185 -185
  42. package/src/_constants/mocks/auth-service.mock.ts +28 -28
  43. package/src/_constants/mocks/controller.mock.ts +16 -16
  44. package/src/_constants/mocks/data-model.mock.ts +83 -83
  45. package/src/_constants/mocks/email-service-collection.mock.ts +13 -13
  46. package/src/_constants/mocks/email-service.mock.ts +19 -19
  47. package/src/_constants/mocks/email-template.mock.html +14 -14
  48. package/src/_constants/mocks/endpoint.mock.ts +90 -90
  49. package/src/_constants/mocks/socket-client.mock.ts +43 -43
  50. package/src/_constants/mocks/socket-server.mock.ts +43 -43
  51. package/src/_enums/data-model-type.enum.ts +14 -14
  52. package/src/_enums/data-service-function.enum.ts +15 -15
  53. package/src/_enums/http/http-call-type.enum.ts +12 -12
  54. package/src/_enums/http/http-response-type.enum.ts +7 -7
  55. package/src/_enums/http/socket-event-type.enum.ts +18 -18
  56. package/src/_enums/index.ts +13 -13
  57. package/src/_enums/predefined-data-types.enum.ts +27 -27
  58. package/src/_enums/route-security.enum.ts +12 -12
  59. package/src/_enums/socket-security.enum.ts +11 -11
  60. package/src/_models/control-models/api-call-params.control-model.ts +126 -126
  61. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  62. package/src/_models/control-models/app-params.control-model.ts +45 -45
  63. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  64. package/src/_models/control-models/endpoint-params.control-model.ts +309 -307
  65. package/src/_models/control-models/http-settings.control-model.ts +29 -29
  66. package/src/_models/control-models/index.ts +13 -13
  67. package/src/_models/control-models/socket-client-service-params.control-model.ts +28 -28
  68. package/src/_models/control-models/socket-event.control-model.ts +150 -150
  69. package/src/_models/control-models/socket-presence.control-model.ts +207 -207
  70. package/src/_models/control-models/socket-server-service-params.control-model.ts +20 -20
  71. package/src/_models/control-models/system-control.control-model.ts +12 -12
  72. package/src/_models/index.ts +9 -9
  73. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  74. package/src/_models/interfaces/global-service-settings.interface.ts +45 -45
  75. package/src/_models/interfaces/global-settings.interface.ts +83 -83
  76. package/src/_models/interfaces/index.ts +7 -7
  77. package/src/_models/interfaces/routing-module-settings.interface.ts +20 -20
  78. package/src/_models/types/db-filter.type.ts +108 -108
  79. package/src/_models/types/db-update.type.ts +100 -100
  80. package/src/_models/types/index.ts +5 -5
  81. package/src/_modules/api-service.index.ts +12 -12
  82. package/src/_modules/app-extended.index.ts +28 -28
  83. package/src/_modules/app.index.ts +24 -24
  84. package/src/_modules/auth.index.ts +7 -7
  85. package/src/_modules/constants.index.ts +2 -2
  86. package/src/_modules/controller.index.ts +10 -10
  87. package/src/_modules/custom-data/custom-data.controller.ts +69 -69
  88. package/src/_modules/custom-data/custom-data.data-service.ts +20 -20
  89. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +23 -23
  90. package/src/_modules/custom-data/index.ts +6 -6
  91. package/src/_modules/custom-data-module.index.ts +2 -2
  92. package/src/_modules/data-service.index.ts +9 -9
  93. package/src/_modules/email.index.ts +8 -8
  94. package/src/_modules/enums.index.ts +2 -2
  95. package/src/_modules/extended.index.ts +8 -8
  96. package/src/_modules/models.index.ts +2 -2
  97. package/src/_modules/services.index.ts +2 -2
  98. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  99. package/src/_modules/test/index.ts +5 -5
  100. package/src/_modules/test/test.controller.ts +115 -115
  101. package/src/_modules/test-module.index.ts +2 -2
  102. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  103. package/src/_modules/usage/index.ts +7 -7
  104. package/src/_modules/usage/usage.controller.ts +120 -120
  105. package/src/_modules/usage/usage.data-service.ts +172 -172
  106. package/src/_modules/usage-module.index.ts +2 -2
  107. package/src/_services/base/data.service.ts +921 -921
  108. package/src/_services/base/db.service.spec.ts +32 -32
  109. package/src/_services/base/db.service.ts +1063 -1063
  110. package/src/_services/base/singleton.service.ts +21 -21
  111. package/src/_services/core/api.service.ts +453 -453
  112. package/src/_services/core/auth.service.ts +172 -172
  113. package/src/_services/core/email.service.ts +678 -678
  114. package/src/_services/core/global.service.ts +270 -269
  115. package/src/_services/core/service-collection.service.ts +5 -5
  116. package/src/_services/index.ts +23 -23
  117. package/src/_services/route/controller.service.ts +129 -129
  118. package/src/_services/route/routing-module.service.ts +293 -273
  119. package/src/_services/server/app-extended.server.spec.ts +76 -76
  120. package/src/_services/server/app-extended.server.ts +520 -520
  121. package/src/_services/server/app.server.spec.ts +67 -67
  122. package/src/_services/server/app.server.ts +1181 -1179
  123. package/src/_services/shared.service.spec.ts +19 -19
  124. package/src/_services/shared.static-service.ts +73 -73
  125. package/src/_services/socket/socket-client.service.ts +236 -235
  126. package/src/_services/socket/socket-server.service.spec.ts +11 -11
  127. package/src/_services/socket/socket-server.service.ts +761 -761
  128. package/src/index.ts +18 -18
  129. package/tsconfig.json +41 -46
  130. package/build/tsconfig.tsbuildinfo +0 -1
  131. package/src/_enums/http/http-call-type.enum.d.ts +0 -12
  132. package/src/_enums/http/http-call-type.enum.d.ts.map +0 -1
  133. package/src/_enums/http/http-call-type.enum.js +0 -16
  134. package/src/_enums/http/http-call-type.enum.js.map +0 -1
  135. package/src/_enums/http/http-response-type.enum.d.ts +0 -7
  136. package/src/_enums/http/http-response-type.enum.d.ts.map +0 -1
  137. package/src/_enums/http/http-response-type.enum.js +0 -11
  138. package/src/_enums/http/http-response-type.enum.js.map +0 -1
  139. package/src/_enums/http/socket-event-type.enum.d.ts +0 -15
  140. package/src/_enums/http/socket-event-type.enum.d.ts.map +0 -1
  141. package/src/_enums/http/socket-event-type.enum.js +0 -19
  142. package/src/_enums/http/socket-event-type.enum.js.map +0 -1
@@ -1,115 +1,115 @@
1
-
2
- import { Request, Response } from 'express';
3
-
4
- import { DynamoFM_testModule_settings } from '@futdevpro/fsm-dynamo/test-module';
5
-
6
- import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
7
- import { DynamoNTS_Controller } from '../../_services/route/controller.service';
8
- import {
9
- DynamoNTS_Endpoint_Params
10
- } from '../../_models/control-models/endpoint-params.control-model';
11
- import { DynamoNTS_GlobalService } from '../../_services/core/global.service';
12
-
13
- export class DynamoNTS_Test_Controller extends DynamoNTS_Controller {
14
-
15
- static getInstance(): DynamoNTS_Test_Controller {
16
- return DynamoNTS_Test_Controller.getSingletonInstance();
17
- }
18
-
19
- setupEndpoints(): void {
20
- this.endpoints = [
21
- // TESTS
22
- new DynamoNTS_Endpoint_Params({
23
- name: 'testGet',
24
- type: DynamoNTS_HttpCallType.get,
25
- endpoint: DynamoFM_testModule_settings.endPoints.testGet,
26
- tasks: [
27
- async (req: Request, res: Response): Promise<void> => {
28
- res.send({
29
- url: req.url,
30
- result: 'test-get call was successful!',
31
- request: req.body,
32
- });
33
- },
34
- ],
35
- }),
36
-
37
- new DynamoNTS_Endpoint_Params({
38
- name: 'testPost',
39
- type: DynamoNTS_HttpCallType.post,
40
- endpoint: DynamoFM_testModule_settings.endPoints.testPost,
41
- tasks: [
42
- async (req: Request, res: Response): Promise<void> => {
43
- res.send({
44
- url: req.url,
45
- result: 'test-post call was successful!',
46
- request: req.body,
47
- });
48
- },
49
- ],
50
- }),
51
-
52
- /* new DynamoNTS_Endpoint_Params({
53
- name: 'testPut',
54
- type: DynamoNTS_HttpCallType.put,
55
- endpoint: DynamoFM_testModule_settings.endPoints.testPut,
56
- tasks: [
57
- async (req: Request, res: Response): Promise<void> => {
58
- res.send({
59
- url: req.url,
60
- result: 'test-put call was successful!',
61
- request: req.body,
62
- });
63
- },
64
- ],
65
- }), */
66
-
67
- /* new DynamoNTS_Endpoint_Params({
68
- name: 'testPatch',
69
- type: DynamoNTS_HttpCallType.patch,
70
- endpoint: DynamoFM_testModule_settings.endPoints.testPatch,
71
- tasks: [
72
- async (req: Request, res: Response): Promise<void> => {
73
- res.send({
74
- url: req.url,
75
- result: 'test-patch call was successful!',
76
- request: req.body,
77
- });
78
- },
79
- ],
80
- }), */
81
-
82
- new DynamoNTS_Endpoint_Params({
83
- name: 'testDelete',
84
- type: DynamoNTS_HttpCallType.delete,
85
- endpoint: DynamoFM_testModule_settings.endPoints.testDelete,
86
- tasks: [
87
- async (req: Request, res: Response): Promise<void> => {
88
- res.send({
89
- url: req.url,
90
- result: 'test-delete call was successful!',
91
- request: req.body,
92
- });
93
- },
94
- ],
95
- }),
96
-
97
- new DynamoNTS_Endpoint_Params({
98
- name: 'getServerStatus',
99
- type: DynamoNTS_HttpCallType.get,
100
- endpoint: DynamoFM_testModule_settings.endPoints.getServerStatus,
101
- tasks: [
102
- async (req: Request, res: Response): Promise<void> => {
103
-
104
- res.send({
105
- status: 'ready',
106
- version: DynamoNTS_GlobalService.params.version,
107
- upTime: DynamoNTS_GlobalService.upTime,
108
- });
109
- },
110
- ],
111
- }),
112
- ];
113
- }
114
- }
115
-
1
+
2
+ import { Request, Response } from 'express';
3
+
4
+ import { DynamoFM_testModule_settings } from '@futdevpro/fsm-dynamo/test-module';
5
+
6
+ import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
7
+ import { DynamoNTS_Controller } from '../../_services/route/controller.service';
8
+ import {
9
+ DynamoNTS_Endpoint_Params
10
+ } from '../../_models/control-models/endpoint-params.control-model';
11
+ import { DynamoNTS_GlobalService } from '../../_services/core/global.service';
12
+
13
+ export class DynamoNTS_Test_Controller extends DynamoNTS_Controller {
14
+
15
+ static getInstance(): DynamoNTS_Test_Controller {
16
+ return DynamoNTS_Test_Controller.getSingletonInstance();
17
+ }
18
+
19
+ setupEndpoints(): void {
20
+ this.endpoints = [
21
+ // TESTS
22
+ new DynamoNTS_Endpoint_Params({
23
+ name: 'testGet',
24
+ type: DynamoNTS_HttpCallType.get,
25
+ endpoint: DynamoFM_testModule_settings.endPoints.testGet,
26
+ tasks: [
27
+ async (req: Request, res: Response): Promise<void> => {
28
+ res.send({
29
+ url: req.url,
30
+ result: 'test-get call was successful!',
31
+ request: req.body,
32
+ });
33
+ },
34
+ ],
35
+ }),
36
+
37
+ new DynamoNTS_Endpoint_Params({
38
+ name: 'testPost',
39
+ type: DynamoNTS_HttpCallType.post,
40
+ endpoint: DynamoFM_testModule_settings.endPoints.testPost,
41
+ tasks: [
42
+ async (req: Request, res: Response): Promise<void> => {
43
+ res.send({
44
+ url: req.url,
45
+ result: 'test-post call was successful!',
46
+ request: req.body,
47
+ });
48
+ },
49
+ ],
50
+ }),
51
+
52
+ /* new DynamoNTS_Endpoint_Params({
53
+ name: 'testPut',
54
+ type: DynamoNTS_HttpCallType.put,
55
+ endpoint: DynamoFM_testModule_settings.endPoints.testPut,
56
+ tasks: [
57
+ async (req: Request, res: Response): Promise<void> => {
58
+ res.send({
59
+ url: req.url,
60
+ result: 'test-put call was successful!',
61
+ request: req.body,
62
+ });
63
+ },
64
+ ],
65
+ }), */
66
+
67
+ /* new DynamoNTS_Endpoint_Params({
68
+ name: 'testPatch',
69
+ type: DynamoNTS_HttpCallType.patch,
70
+ endpoint: DynamoFM_testModule_settings.endPoints.testPatch,
71
+ tasks: [
72
+ async (req: Request, res: Response): Promise<void> => {
73
+ res.send({
74
+ url: req.url,
75
+ result: 'test-patch call was successful!',
76
+ request: req.body,
77
+ });
78
+ },
79
+ ],
80
+ }), */
81
+
82
+ new DynamoNTS_Endpoint_Params({
83
+ name: 'testDelete',
84
+ type: DynamoNTS_HttpCallType.delete,
85
+ endpoint: DynamoFM_testModule_settings.endPoints.testDelete,
86
+ tasks: [
87
+ async (req: Request, res: Response): Promise<void> => {
88
+ res.send({
89
+ url: req.url,
90
+ result: 'test-delete call was successful!',
91
+ request: req.body,
92
+ });
93
+ },
94
+ ],
95
+ }),
96
+
97
+ new DynamoNTS_Endpoint_Params({
98
+ name: 'getServerStatus',
99
+ type: DynamoNTS_HttpCallType.get,
100
+ endpoint: DynamoFM_testModule_settings.endPoints.getServerStatus,
101
+ tasks: [
102
+ async (req: Request, res: Response): Promise<void> => {
103
+
104
+ res.send({
105
+ status: 'ready',
106
+ version: DynamoNTS_GlobalService.params.version,
107
+ upTime: DynamoNTS_GlobalService.upTime,
108
+ });
109
+ },
110
+ ],
111
+ }),
112
+ ];
113
+ }
114
+ }
115
+
@@ -1,2 +1,2 @@
1
-
2
- export * from './test';
1
+
2
+ export * from './test';
@@ -1,23 +1,23 @@
1
-
2
- import { DynamoFM_usageModule_settings } from '@futdevpro/fsm-dynamo/usage-module';
3
- import { DynamoNTS_RouteSecurity } from '../../_enums/route-security.enum';
4
- import {
5
- DynamoNTS_RoutingModule_Settings
6
- } from '../../_models/interfaces/routing-module-settings.interface';
7
- import { DynamoNTS_RoutingModule } from '../../_services/route/routing-module.service';
8
- import { DynamoNTS_Usage_Controller } from './usage.controller';
9
-
10
- export function DynamoNTS_getUsageRoutingModule(
11
- securityOverride?: DynamoNTS_RouteSecurity
12
- ): DynamoNTS_RoutingModule {
13
- const set: DynamoNTS_RoutingModule_Settings = {
14
- route: DynamoFM_usageModule_settings.mainRoute,
15
- controllers: [ DynamoNTS_Usage_Controller.getInstance() ],
16
- };
17
-
18
- if (securityOverride) {
19
- set.securityOverride = securityOverride;
20
- }
21
-
22
- return new DynamoNTS_RoutingModule(set);
1
+
2
+ import { DynamoFM_usageModule_settings } from '@futdevpro/fsm-dynamo/usage-module';
3
+ import { DynamoNTS_RouteSecurity } from '../../_enums/route-security.enum';
4
+ import {
5
+ DynamoNTS_RoutingModule_Settings
6
+ } from '../../_models/interfaces/routing-module-settings.interface';
7
+ import { DynamoNTS_RoutingModule } from '../../_services/route/routing-module.service';
8
+ import { DynamoNTS_Usage_Controller } from './usage.controller';
9
+
10
+ export function DynamoNTS_getUsageRoutingModule(
11
+ securityOverride?: DynamoNTS_RouteSecurity
12
+ ): DynamoNTS_RoutingModule {
13
+ const set: DynamoNTS_RoutingModule_Settings = {
14
+ route: DynamoFM_usageModule_settings.mainRoute,
15
+ controllers: [ DynamoNTS_Usage_Controller.getInstance() ],
16
+ };
17
+
18
+ if (securityOverride) {
19
+ set.securityOverride = securityOverride;
20
+ }
21
+
22
+ return new DynamoNTS_RoutingModule(set);
23
23
  }
@@ -1,7 +1,7 @@
1
-
2
- // USAGE MODULE
3
- export * from './usage.controller';
4
- export * from './usage.data-service';
5
- export * from './get-usage-routing-module.util';
6
- export * from '@futdevpro/fsm-dynamo/usage-module';
7
-
1
+
2
+ // USAGE MODULE
3
+ export * from './usage.controller';
4
+ export * from './usage.data-service';
5
+ export * from './get-usage-routing-module.util';
6
+ export * from '@futdevpro/fsm-dynamo/usage-module';
7
+
@@ -1,120 +1,120 @@
1
-
2
- import { Request, Response } from 'express';
3
-
4
- import {
5
- DynamoFM_usageModule_settings, DynamoFM_UsageSession, DynamoFM_RelativeDate
6
- } from '@futdevpro/fsm-dynamo/usage-module';
7
-
8
- import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
9
- import { DynamoNTS_AuthService } from '../../_services/core/auth.service';
10
- import { DynamoNTS_Controller } from '../../_services/route/controller.service';
11
- import { DynamoNTS_GlobalService } from '../../_services/core/global.service';
12
- import {
13
- DynamoNTS_Endpoint_Params
14
- } from '../../_models/control-models/endpoint-params.control-model';
15
- import { DynamoNTS_Usage_DataService } from './usage.data-service';
16
-
17
- export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
18
-
19
- static getInstance(): DynamoNTS_Usage_Controller {
20
- return DynamoNTS_Usage_Controller.getSingletonInstance();
21
- }
22
-
23
- // SERVICES
24
- private authService: DynamoNTS_AuthService;
25
-
26
- setupEndpoints(): void {
27
- this.authService = DynamoNTS_GlobalService.getAuthService();
28
-
29
- this.endpoints = [
30
- new DynamoNTS_Endpoint_Params({
31
- name: 'newSession',
32
- type: DynamoNTS_HttpCallType.get,
33
- endpoint: DynamoFM_usageModule_settings.endPoints.newSession,
34
- tasks: [
35
- async (req: Request, res: Response, issuer: string): Promise<void> => {
36
- const authService = DynamoNTS_GlobalService.getAuthService();
37
- const username = authService.getUsernameFromRequest(req);
38
- const usageService = new DynamoNTS_Usage_DataService({
39
- usageSession: new DynamoFM_UsageSession({
40
- sessionStart: new Date(),
41
- issuer: username,
42
- }),
43
- issuer,
44
- });
45
-
46
- await usageService.getLocationDataFromRequest(req);
47
- await usageService.saveData();
48
-
49
- res.send(
50
- usageService.data
51
- );
52
- },
53
- ],
54
- }),
55
-
56
- new DynamoNTS_Endpoint_Params({
57
- name: 'updateUsage',
58
- type: DynamoNTS_HttpCallType.post,
59
- endpoint: DynamoFM_usageModule_settings.endPoints.updateUsage,
60
- logRequestsContent: false,
61
- tasks: [
62
- async (req: Request, res: Response, issuer: string): Promise<void> => {
63
- const usageService = new DynamoNTS_Usage_DataService({
64
- usageSession: { _id: req.params.sessionId },
65
- usageData: req.body,
66
- issuer,
67
- });
68
-
69
- await usageService.updateUsageData(req);
70
-
71
- res.send(
72
- usageService.data
73
- );
74
- },
75
- ],
76
- }),
77
-
78
- new DynamoNTS_Endpoint_Params({
79
- name: 'closeSession',
80
- type: DynamoNTS_HttpCallType.get,
81
- endpoint: DynamoFM_usageModule_settings.endPoints.closeSession,
82
- tasks: [
83
- async (req: Request, res: Response, issuer: string): Promise<void> => {
84
- const usageService = new DynamoNTS_Usage_DataService({
85
- usageSession: { _id: req.params.sessionId },
86
- issuer,
87
- });
88
-
89
- await usageService.closeSession(req);
90
-
91
- res.send(
92
- usageService.data
93
- );
94
- },
95
- ],
96
- }),
97
-
98
- new DynamoNTS_Endpoint_Params({
99
- name: 'getUsageData',
100
- type: DynamoNTS_HttpCallType.get,
101
- endpoint: DynamoFM_usageModule_settings.endPoints.getUsageData,
102
- preProcesses: [ this.authService.authenticate_tokenPermAccUsageData ],
103
- tasks: [
104
- async (req: Request, res: Response): Promise<void> => {
105
- const range: DynamoFM_RelativeDate = req.params.range as DynamoFM_RelativeDate;
106
-
107
- const usageService = new DynamoNTS_Usage_DataService();
108
-
109
- await usageService.getUsage(range);
110
-
111
- res.send(
112
- usageService.simplifiedDailyUsage
113
- );
114
- },
115
- ],
116
- }),
117
- ];
118
- }
119
- }
120
-
1
+
2
+ import { Request, Response } from 'express';
3
+
4
+ import {
5
+ DynamoFM_usageModule_settings, DynamoFM_UsageSession, DynamoFM_RelativeDate
6
+ } from '@futdevpro/fsm-dynamo/usage-module';
7
+
8
+ import { DynamoNTS_HttpCallType } from '../../_enums/http/http-call-type.enum';
9
+ import { DynamoNTS_AuthService } from '../../_services/core/auth.service';
10
+ import { DynamoNTS_Controller } from '../../_services/route/controller.service';
11
+ import { DynamoNTS_GlobalService } from '../../_services/core/global.service';
12
+ import {
13
+ DynamoNTS_Endpoint_Params
14
+ } from '../../_models/control-models/endpoint-params.control-model';
15
+ import { DynamoNTS_Usage_DataService } from './usage.data-service';
16
+
17
+ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
18
+
19
+ static getInstance(): DynamoNTS_Usage_Controller {
20
+ return DynamoNTS_Usage_Controller.getSingletonInstance();
21
+ }
22
+
23
+ // SERVICES
24
+ private authService: DynamoNTS_AuthService;
25
+
26
+ setupEndpoints(): void {
27
+ this.authService = DynamoNTS_GlobalService.getAuthService();
28
+
29
+ this.endpoints = [
30
+ new DynamoNTS_Endpoint_Params({
31
+ name: 'newSession',
32
+ type: DynamoNTS_HttpCallType.get,
33
+ endpoint: DynamoFM_usageModule_settings.endPoints.newSession,
34
+ tasks: [
35
+ async (req: Request, res: Response, issuer: string): Promise<void> => {
36
+ const authService = DynamoNTS_GlobalService.getAuthService();
37
+ const username = authService.getUsernameFromRequest(req);
38
+ const usageService = new DynamoNTS_Usage_DataService({
39
+ usageSession: new DynamoFM_UsageSession({
40
+ sessionStart: new Date(),
41
+ issuer: username,
42
+ }),
43
+ issuer,
44
+ });
45
+
46
+ await usageService.getLocationDataFromRequest(req);
47
+ await usageService.saveData();
48
+
49
+ res.send(
50
+ usageService.data
51
+ );
52
+ },
53
+ ],
54
+ }),
55
+
56
+ new DynamoNTS_Endpoint_Params({
57
+ name: 'updateUsage',
58
+ type: DynamoNTS_HttpCallType.post,
59
+ endpoint: DynamoFM_usageModule_settings.endPoints.updateUsage,
60
+ logRequestsContent: false,
61
+ tasks: [
62
+ async (req: Request, res: Response, issuer: string): Promise<void> => {
63
+ const usageService = new DynamoNTS_Usage_DataService({
64
+ usageSession: { _id: req.params.sessionId },
65
+ usageData: req.body,
66
+ issuer,
67
+ });
68
+
69
+ await usageService.updateUsageData(req);
70
+
71
+ res.send(
72
+ usageService.data
73
+ );
74
+ },
75
+ ],
76
+ }),
77
+
78
+ new DynamoNTS_Endpoint_Params({
79
+ name: 'closeSession',
80
+ type: DynamoNTS_HttpCallType.get,
81
+ endpoint: DynamoFM_usageModule_settings.endPoints.closeSession,
82
+ tasks: [
83
+ async (req: Request, res: Response, issuer: string): Promise<void> => {
84
+ const usageService = new DynamoNTS_Usage_DataService({
85
+ usageSession: { _id: req.params.sessionId },
86
+ issuer,
87
+ });
88
+
89
+ await usageService.closeSession(req);
90
+
91
+ res.send(
92
+ usageService.data
93
+ );
94
+ },
95
+ ],
96
+ }),
97
+
98
+ new DynamoNTS_Endpoint_Params({
99
+ name: 'getUsageData',
100
+ type: DynamoNTS_HttpCallType.get,
101
+ endpoint: DynamoFM_usageModule_settings.endPoints.getUsageData,
102
+ preProcesses: [ this.authService.authenticate_tokenPerm_accUsageData ],
103
+ tasks: [
104
+ async (req: Request, res: Response): Promise<void> => {
105
+ const range: DynamoFM_RelativeDate = req.params.range as DynamoFM_RelativeDate;
106
+
107
+ const usageService = new DynamoNTS_Usage_DataService();
108
+
109
+ await usageService.getUsage(range);
110
+
111
+ res.send(
112
+ usageService.simplifiedDailyUsage
113
+ );
114
+ },
115
+ ],
116
+ }),
117
+ ];
118
+ }
119
+ }
120
+