@futdevpro/nts-dynamo 1.2.90

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 (179) hide show
  1. package/BuildPackage.bat +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +17 -0
  4. package/lib/_constants/dynamobe-global.settings.d.ts +2 -0
  5. package/lib/_constants/dynamobe-global.settings.d.ts.map +1 -0
  6. package/lib/_constants/dynamobe-global.settings.js +11 -0
  7. package/lib/_enum/data-model-types.enum.d.ts +5 -0
  8. package/lib/_enum/data-model-types.enum.d.ts.map +1 -0
  9. package/lib/_enum/data-model-types.enum.js +9 -0
  10. package/lib/_enum/dynamobe-data-service-function.enum.d.ts +7 -0
  11. package/lib/_enum/dynamobe-data-service-function.enum.d.ts.map +1 -0
  12. package/lib/_enum/dynamobe-data-service-function.enum.js +14 -0
  13. package/lib/_enum/dynamobe-route-security.enum.d.ts +5 -0
  14. package/lib/_enum/dynamobe-route-security.enum.d.ts.map +1 -0
  15. package/lib/_enum/dynamobe-route-security.enum.js +9 -0
  16. package/lib/_enum/http/http-call-type.enum.d.ts +7 -0
  17. package/lib/_enum/http/http-call-type.enum.d.ts.map +1 -0
  18. package/lib/_enum/http/http-call-type.enum.js +11 -0
  19. package/lib/_enum/http/http-response-type.enum.d.ts +6 -0
  20. package/lib/_enum/http/http-response-type.enum.d.ts.map +1 -0
  21. package/lib/_enum/http/http-response-type.enum.js +10 -0
  22. package/lib/_enum/log-style.enum.d.ts +25 -0
  23. package/lib/_enum/log-style.enum.d.ts.map +1 -0
  24. package/lib/_enum/log-style.enum.js +29 -0
  25. package/lib/_enum/predefined-data-types.enum.d.ts +7 -0
  26. package/lib/_enum/predefined-data-types.enum.d.ts.map +1 -0
  27. package/lib/_enum/predefined-data-types.enum.js +11 -0
  28. package/lib/_models/dynamobe-api-call-params.d.ts +34 -0
  29. package/lib/_models/dynamobe-api-call-params.d.ts.map +1 -0
  30. package/lib/_models/dynamobe-api-call-params.js +24 -0
  31. package/lib/_models/dynamobe-app-params.d.ts +14 -0
  32. package/lib/_models/dynamobe-app-params.d.ts.map +1 -0
  33. package/lib/_models/dynamobe-app-params.js +13 -0
  34. package/lib/_models/dynamobe-data-model-params.d.ts +12 -0
  35. package/lib/_models/dynamobe-data-model-params.d.ts.map +1 -0
  36. package/lib/_models/dynamobe-data-model-params.js +14 -0
  37. package/lib/_models/dynamobe-endpoint-control.d.ts +28 -0
  38. package/lib/_models/dynamobe-endpoint-control.d.ts.map +1 -0
  39. package/lib/_models/dynamobe-endpoint-control.js +85 -0
  40. package/lib/_models/dynamobe-global-settings.d.ts +8 -0
  41. package/lib/_models/dynamobe-global-settings.d.ts.map +1 -0
  42. package/lib/_models/dynamobe-global-settings.js +6 -0
  43. package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts +17 -0
  44. package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts.map +1 -0
  45. package/lib/_models/fullstack-models/control-models/daily-usage-data.js +21 -0
  46. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts +27 -0
  47. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts.map +1 -0
  48. package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.js +66 -0
  49. package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts +17 -0
  50. package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts.map +1 -0
  51. package/lib/_models/fullstack-models/control-models/dynamobe-error.js +195 -0
  52. package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts +25 -0
  53. package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts.map +1 -0
  54. package/lib/_models/fullstack-models/control-models/geo-ip-location.js +2 -0
  55. package/lib/_models/fullstack-models/control-models/usage-action.d.ts +8 -0
  56. package/lib/_models/fullstack-models/control-models/usage-action.d.ts.map +1 -0
  57. package/lib/_models/fullstack-models/control-models/usage-action.js +12 -0
  58. package/lib/_models/fullstack-models/control-models/usage-data.d.ts +13 -0
  59. package/lib/_models/fullstack-models/control-models/usage-data.d.ts.map +1 -0
  60. package/lib/_models/fullstack-models/control-models/usage-data.js +15 -0
  61. package/lib/_models/fullstack-models/data-models/custom-data.d.ts +15 -0
  62. package/lib/_models/fullstack-models/data-models/custom-data.d.ts.map +1 -0
  63. package/lib/_models/fullstack-models/data-models/custom-data.js +23 -0
  64. package/lib/_models/fullstack-models/data-models/metadata.d.ts +16 -0
  65. package/lib/_models/fullstack-models/data-models/metadata.d.ts.map +1 -0
  66. package/lib/_models/fullstack-models/data-models/metadata.js +16 -0
  67. package/lib/_models/fullstack-models/data-models/usage-session.d.ts +33 -0
  68. package/lib/_models/fullstack-models/data-models/usage-session.d.ts.map +1 -0
  69. package/lib/_models/fullstack-models/data-models/usage-session.js +48 -0
  70. package/lib/_modules/test-route/custom-data.service.d.ts +5 -0
  71. package/lib/_modules/test-route/custom-data.service.d.ts.map +1 -0
  72. package/lib/_modules/test-route/custom-data.service.js +12 -0
  73. package/lib/_modules/test-route/test-controller.d.ts +5 -0
  74. package/lib/_modules/test-route/test-controller.d.ts.map +1 -0
  75. package/lib/_modules/test-route/test-controller.js +125 -0
  76. package/lib/_modules/usage-route/usage-controller.d.ts +6 -0
  77. package/lib/_modules/usage-route/usage-controller.d.ts.map +1 -0
  78. package/lib/_modules/usage-route/usage-controller.js +88 -0
  79. package/lib/_modules/usage-route/usage.service.d.ts +18 -0
  80. package/lib/_modules/usage-route/usage.service.d.ts.map +1 -0
  81. package/lib/_modules/usage-route/usage.service.js +110 -0
  82. package/lib/_services/dynamobe-api.service.d.ts +9 -0
  83. package/lib/_services/dynamobe-api.service.d.ts.map +1 -0
  84. package/lib/_services/dynamobe-api.service.js +130 -0
  85. package/lib/_services/dynamobe-app.d.ts +11 -0
  86. package/lib/_services/dynamobe-app.d.ts.map +1 -0
  87. package/lib/_services/dynamobe-app.js +38 -0
  88. package/lib/_services/dynamobe-auth.service.d.ts +25 -0
  89. package/lib/_services/dynamobe-auth.service.d.ts.map +1 -0
  90. package/lib/_services/dynamobe-auth.service.js +24 -0
  91. package/lib/_services/dynamobe-controller.service.d.ts +10 -0
  92. package/lib/_services/dynamobe-controller.service.d.ts.map +1 -0
  93. package/lib/_services/dynamobe-controller.service.js +11 -0
  94. package/lib/_services/dynamobe-data.service.d.ts +51 -0
  95. package/lib/_services/dynamobe-data.service.d.ts.map +1 -0
  96. package/lib/_services/dynamobe-data.service.js +224 -0
  97. package/lib/_services/dynamobe-db-service-collection.service.d.ts +5 -0
  98. package/lib/_services/dynamobe-db-service-collection.service.d.ts.map +1 -0
  99. package/lib/_services/dynamobe-db-service-collection.service.js +7 -0
  100. package/lib/_services/dynamobe-db.service.d.ts +150 -0
  101. package/lib/_services/dynamobe-db.service.d.ts.map +1 -0
  102. package/lib/_services/dynamobe-db.service.js +577 -0
  103. package/lib/_services/dynamobe-email-service-collection.service.d.ts +5 -0
  104. package/lib/_services/dynamobe-email-service-collection.service.d.ts.map +1 -0
  105. package/lib/_services/dynamobe-email-service-collection.service.js +7 -0
  106. package/lib/_services/dynamobe-email.service.d.ts +32 -0
  107. package/lib/_services/dynamobe-email.service.d.ts.map +1 -0
  108. package/lib/_services/dynamobe-email.service.js +144 -0
  109. package/lib/_services/dynamobe-global.service.d.ts +22 -0
  110. package/lib/_services/dynamobe-global.service.d.ts.map +1 -0
  111. package/lib/_services/dynamobe-global.service.js +84 -0
  112. package/lib/_services/dynamobe-routing-module.service.d.ts +25 -0
  113. package/lib/_services/dynamobe-routing-module.service.d.ts.map +1 -0
  114. package/lib/_services/dynamobe-routing-module.service.js +112 -0
  115. package/lib/_services/dynamobe-server.d.ts +31 -0
  116. package/lib/_services/dynamobe-server.d.ts.map +1 -0
  117. package/lib/_services/dynamobe-server.js +179 -0
  118. package/lib/_services/dynamobe-shared.service.d.ts +100 -0
  119. package/lib/_services/dynamobe-shared.service.d.ts.map +1 -0
  120. package/lib/_services/dynamobe-shared.service.js +294 -0
  121. package/lib/_services/dynamobe-singleton.service.d.ts +5 -0
  122. package/lib/_services/dynamobe-singleton.service.d.ts.map +1 -0
  123. package/lib/_services/dynamobe-singleton.service.js +15 -0
  124. package/lib/index-newo.d.ts +0 -0
  125. package/lib/index-newo.d.ts.map +1 -0
  126. package/lib/index-newo.js +71 -0
  127. package/lib/index-old.d.ts +39 -0
  128. package/lib/index-old.js +49 -0
  129. package/lib/index.d.ts +39 -0
  130. package/lib/index.d.ts.map +1 -0
  131. package/lib/index.js +49 -0
  132. package/lib/tsconfig.tsbuildinfo +2080 -0
  133. package/nodemon.json +6 -0
  134. package/package.json +52 -0
  135. package/src/_constants/dynamobe-global.settings.ts +11 -0
  136. package/src/_enum/data-model-types.enum.ts +6 -0
  137. package/src/_enum/dynamobe-data-service-function.enum.ts +11 -0
  138. package/src/_enum/dynamobe-route-security.enum.ts +6 -0
  139. package/src/_enum/http/http-call-type.enum.ts +8 -0
  140. package/src/_enum/http/http-response-type.enum.ts +7 -0
  141. package/src/_enum/log-style.enum.ts +30 -0
  142. package/src/_enum/predefined-data-types.enum.ts +8 -0
  143. package/src/_models/dynamobe-api-call-params.ts +62 -0
  144. package/src/_models/dynamobe-app-params.ts +24 -0
  145. package/src/_models/dynamobe-data-model-params.ts +23 -0
  146. package/src/_models/dynamobe-endpoint-control.ts +127 -0
  147. package/src/_models/dynamobe-global-settings.ts +9 -0
  148. package/src/_models/fullstack-models/control-models/daily-usage-data.ts +34 -0
  149. package/src/_models/fullstack-models/control-models/dynamobe-data-property-params.ts +98 -0
  150. package/src/_models/fullstack-models/control-models/dynamobe-error.ts +207 -0
  151. package/src/_models/fullstack-models/control-models/geo-ip-location.ts +26 -0
  152. package/src/_models/fullstack-models/control-models/usage-action.ts +18 -0
  153. package/src/_models/fullstack-models/control-models/usage-data.ts +26 -0
  154. package/src/_models/fullstack-models/data-models/custom-data.ts +37 -0
  155. package/src/_models/fullstack-models/data-models/metadata.ts +28 -0
  156. package/src/_models/fullstack-models/data-models/usage-session.ts +82 -0
  157. package/src/_modules/test-route/custom-data.service.ts +21 -0
  158. package/src/_modules/test-route/test-controller.ts +136 -0
  159. package/src/_modules/usage-route/usage-controller.ts +114 -0
  160. package/src/_modules/usage-route/usage.service.ts +125 -0
  161. package/src/_services/dynamobe-api.service.ts +135 -0
  162. package/src/_services/dynamobe-app.ts +49 -0
  163. package/src/_services/dynamobe-auth.service.ts +42 -0
  164. package/src/_services/dynamobe-controller.service.ts +20 -0
  165. package/src/_services/dynamobe-data.service.ts +215 -0
  166. package/src/_services/dynamobe-db-service-collection.service.ts +9 -0
  167. package/src/_services/dynamobe-db.service.ts +556 -0
  168. package/src/_services/dynamobe-email-service-collection.service.ts +9 -0
  169. package/src/_services/dynamobe-email.service.ts +169 -0
  170. package/src/_services/dynamobe-global.service.ts +99 -0
  171. package/src/_services/dynamobe-routing-module.service.ts +141 -0
  172. package/src/_services/dynamobe-server.ts +225 -0
  173. package/src/_services/dynamobe-shared.service.ts +320 -0
  174. package/src/_services/dynamobe-singleton.service.ts +16 -0
  175. package/src/index-newo.ts +71 -0
  176. package/src/index.ts +50 -0
  177. package/src/version.json +2 -0
  178. package/tsconfig.app.json +12 -0
  179. package/tsconfig.json +72 -0
package/nodemon.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "watch": ["src"],
3
+ "ext": ".ts,.js",
4
+ "ignore": [],
5
+ "exec": "ts-node ./src/index.ts"
6
+ }
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@futdevpro/nts-dynamo",
3
+ "version": "01.02.90",
4
+ "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Ltd.",
5
+ "main": "./lib/index.ts",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://gitlab.com/futdevpro/dynamo-be.git"
9
+ },
10
+ "type": "module",
11
+ "scripts": {
12
+ "test": "echo \"Error: no test specified\" && exit 1",
13
+ "build": "npx tsc",
14
+ "build2": "rimraf ./build && tsc"
15
+ },
16
+ "keywords": [
17
+ "nodejs",
18
+ "typescript",
19
+ "mongodb"
20
+ ],
21
+ "author": "Future Development Program Ltd.",
22
+ "license": "ISC",
23
+ "bugs": {
24
+ "url": "https://gitlab.com/futdevpro/dynamo-be/issues"
25
+ },
26
+ "homepage": "https:/futdevpro.hu/projects/dynamo",
27
+ "dependencies": {
28
+ "@types/express": "^4.17.7",
29
+ "@types/mongoose": "^5.7.34",
30
+ "@types/node": "^14.0.27",
31
+ "@types/oauth2orize": "^1.8.8",
32
+ "@types/passport": "^1.0.4",
33
+ "@types/axios": "^0.14.0",
34
+ "@types/geoip-lite": "^1.4.1",
35
+ "@types/jsonwebtoken": "^8.5.0",
36
+ "@types/nodemailer": "^6.4.4",
37
+ "axios": "^0.21.4",
38
+ "crypto-js": "^4.1.1",
39
+ "geoip-lite": "^1.4.5",
40
+ "express": "^4.17.1",
41
+ "mongoose": "^5.9.27",
42
+ "nodemon": "^2.0.4",
43
+ "passport": "^0.4.1",
44
+ "nodemailer": "^6.4.11",
45
+ "rimraf": "^3.0.2",
46
+ "ts-node": "^8.10.2",
47
+ "typescript": "^3.9.7",
48
+ "rxjs": "^7.4.0",
49
+ "jsonwebtoken": "^8.5.1",
50
+ "tslib": "^2.0.1"
51
+ }
52
+ }
@@ -0,0 +1,11 @@
1
+
2
+ import { DynamoBERouteSecurity } from '../_enum/dynamobe-route-security.enum';
3
+ import { DynamoBEGlobalSettings } from '../_models/dynamobe-global-settings';
4
+
5
+ export const dynamoBEDefaultGlobalSettings: DynamoBEGlobalSettings = {
6
+ defaultRouteSecurity: DynamoBERouteSecurity.open,
7
+ logSetup: false,
8
+ logRequests: true,
9
+ logRequestsContent: true,
10
+ logResponseContent: false,
11
+ };
@@ -0,0 +1,6 @@
1
+
2
+ export enum DataModelType {
3
+ dataModel = 'data-model',
4
+ controlModel = 'control-model',
5
+ interfaceModel = 'interface-model',
6
+ }
@@ -0,0 +1,11 @@
1
+
2
+ /* DataServiceFunction */
3
+ export enum DynamoBEDSF {
4
+ getAll = 'getAll',
5
+ getDataById = 'getDataById',
6
+ /* checkIfDataExists = 'checkIfDataExists',
7
+ createData = 'createNewData', */
8
+ modifyData = 'modifyData',
9
+ deleteData = 'deleteData',
10
+ getProvidedData = 'getProvidedData',
11
+ }
@@ -0,0 +1,6 @@
1
+
2
+ export enum DynamoBERouteSecurity {
3
+ open = 'open',
4
+ secure = 'secure',
5
+ both = 'both',
6
+ }
@@ -0,0 +1,8 @@
1
+
2
+ export enum HttpCallType {
3
+ get = 'get',
4
+ post = 'post',
5
+ put = 'put',
6
+ patch = 'patch',
7
+ delete = 'delete'
8
+ }
@@ -0,0 +1,7 @@
1
+
2
+ export enum HttpResponseType {
3
+ arraybuffer = 'arraybuffer',
4
+ blob = 'blob',
5
+ json = 'json',
6
+ text = 'text'
7
+ }
@@ -0,0 +1,30 @@
1
+
2
+
3
+ export enum LogStyle {
4
+ reset = '\x1b[0m',
5
+
6
+ bright = '\x1b[1m',
7
+ dim = '\x1b[2m',
8
+ underline = '\x1b[4m',
9
+ blink = '\x1b[5m',
10
+ reverse = '\x1b[7m',
11
+ hidden = '\x1b[8m',
12
+
13
+ black = '\x1b[30m',
14
+ red = '\x1b[31m',
15
+ green = '\x1b[32m',
16
+ yellow = '\x1b[33m',
17
+ blue = '\x1b[34m',
18
+ magenta = '\x1b[35m',
19
+ cyan = '\x1b[36m',
20
+ white = '\x1b[37m',
21
+
22
+ BgBlack = '\x1b[40m',
23
+ BgRed = '\x1b[41m',
24
+ BgGreen = '\x1b[42m',
25
+ BgYellow = '\x1b[43m',
26
+ BgBlue = '\x1b[44m',
27
+ BgMagenta = '\x1b[45m',
28
+ BgCyan = '\x1b[46m',
29
+ BgWhite = '\x1b[47m',
30
+ }
@@ -0,0 +1,8 @@
1
+
2
+ export enum PredefinedDataTypes {
3
+ 'string',
4
+ 'number',
5
+ 'boolean',
6
+ 'Date',
7
+ 'object',
8
+ }
@@ -0,0 +1,62 @@
1
+
2
+ /* import { HttpHeaders, HttpParams } from '@angular/common/http'; */
3
+ import { HttpCallType } from "../_enum/http/http-call-type.enum";
4
+ import { HttpResponseType } from "../_enum/http/http-response-type.enum";
5
+
6
+ export class DynamoBEApiCallParams {
7
+ name: string;
8
+ type: HttpCallType;
9
+ baseUrl: string;
10
+ endPoint: string;
11
+
12
+ httpOptions: any;
13
+
14
+ constructor(
15
+ settings: {
16
+ name: string,
17
+ type: HttpCallType,
18
+ endPoint: string,
19
+ baseUrl: string,
20
+ httpOptions?: HttpOptions,
21
+ }
22
+ ) {
23
+ this.name = settings.name;
24
+ this.type = settings.type;
25
+ this.endPoint = settings.endPoint;
26
+ this.baseUrl = settings.baseUrl;
27
+ this.httpOptions = settings.httpOptions ? settings.httpOptions : {};
28
+ }
29
+ }
30
+
31
+ export class HttpOptions {
32
+ responseType?: HttpResponseType;
33
+ /* params?: HttpParams | {
34
+ [param: string]: string | string[];
35
+ }; */
36
+ headers?: {
37
+ [header: string]: string | string[];
38
+ };
39
+ observe?: 'body';
40
+ reportProgress?: boolean;
41
+ withCredentials?: boolean;
42
+
43
+ constructor(options: {
44
+ responseType?: HttpResponseType,
45
+ /* params?: HttpParams | {
46
+ [param: string]: string | string[];
47
+ }, */
48
+ headers?: {
49
+ [header: string]: string | string[];
50
+ },
51
+ observe?: 'body',
52
+ reportProgress?: boolean,
53
+ withCredentials?: boolean
54
+ }) {
55
+ this.responseType = options.responseType;
56
+ /* this.params = options.params; */
57
+ this.headers = options.headers;
58
+ this.observe = options.observe;
59
+ this.reportProgress = options.reportProgress;
60
+ this.withCredentials = options.withCredentials;
61
+ }
62
+ }
@@ -0,0 +1,24 @@
1
+
2
+ export class DynamoBEAppParams {
3
+ name: string;
4
+ title: string;
5
+ version: string;
6
+ dbUri: string;
7
+ dbName: string;
8
+
9
+ constructor(
10
+ set: {
11
+ name: string,
12
+ title?: string,
13
+ version: string,
14
+ dbName: string,
15
+ dbUri?: string,
16
+ }
17
+ ) {
18
+ this.name = set.name;
19
+ this.title = set.title ? set.title : '';
20
+ this.version = set.version;
21
+ this.dbName = set.dbName;
22
+ this.dbUri = set.dbUri ? set.dbUri : `mongodb://localhost:27017/${this.dbName}`;
23
+ }
24
+ }
@@ -0,0 +1,23 @@
1
+
2
+ import { DataModelType } from '../_enum/data-model-types.enum';
3
+ import { DynamoBEDataPropertyParams } from './fullstack-models/control-models/dynamobe-data-property-params';
4
+
5
+ export class DynamoBEDataModelParams {
6
+ dataName: string;
7
+ type: DataModelType;
8
+ properties: DynamoBEDataPropertyParams[] = [];
9
+
10
+ constructor(
11
+ set?: {
12
+ dataName: string,
13
+ type: DataModelType,
14
+ properties: DynamoBEDataPropertyParams[],
15
+ }
16
+ ) {
17
+ if (set) {
18
+ this.dataName = set.dataName;
19
+ this.type = set.type;
20
+ this.properties = set.properties ? set.properties : [];
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,127 @@
1
+
2
+
3
+ import { NextFunction, Request, Response } from 'express';
4
+ import { HttpCallType } from '../_enum/http/http-call-type.enum';
5
+ import { DynamoBERouteSecurity as DynamoBERouteSecurity } from '../_enum/dynamobe-route-security.enum';
6
+ import { DBE_Shared } from '../_services/dynamobe-shared.service';
7
+ import { DBE_Global_S } from '../_services/dynamobe-global.service';
8
+
9
+ export class DynamoBEEndpointParams{
10
+ name: string;
11
+ security: DynamoBERouteSecurity;
12
+
13
+ type: HttpCallType;
14
+ endpoint: string;
15
+
16
+ pathParams: string[];
17
+
18
+ preProcessess: ((req: Request, res: Response, next: NextFunction) => Promise<void>)[]
19
+ tasks: ((req: Request, res: Response, issuer?: string) => Promise<void>)[];
20
+
21
+ logRequest: boolean;
22
+ logRequestsContent: boolean;
23
+ logResponseContent: boolean;
24
+
25
+ constructor(
26
+ set: {
27
+ name: string,
28
+ security?: DynamoBERouteSecurity,
29
+
30
+ type: HttpCallType,
31
+ endpoint: string,
32
+
33
+ preProcessess?: ((req: Request, res: Response, next: NextFunction) => Promise<void>)[],
34
+ tasks: ((req: Request, res: Response, issuer?: string) => Promise<void>)[],
35
+
36
+ logRequest?: boolean,
37
+ logRequestsContent?: boolean,
38
+ logResponseContent?: boolean,
39
+ }
40
+ ) {
41
+ this.name = set.name ? set.name : set.endpoint;
42
+ this.security = set.security ? set.security : DBE_Global_S.getGlobalSettings().defaultRouteSecurity;
43
+
44
+ this.type = set.type;
45
+ this.endpoint = set.endpoint;
46
+
47
+ let pathParts: string[] = this.endpoint.split('/');
48
+ pathParts = pathParts.filter((part: string) => part[0] === ':');
49
+ pathParts = pathParts.map((part: string) => part = part.replace(':', ''));
50
+ this.pathParams = pathParts;
51
+
52
+ this.preProcessess = set.preProcessess ? set.preProcessess : [];
53
+ this.tasks = set.tasks;
54
+
55
+ this.logRequest = set.logRequest !== undefined ? set.logRequest : DBE_Global_S.getGlobalSettings().logRequests;
56
+ this.logRequestsContent = set.logRequestsContent !== undefined ? set.logRequestsContent : DBE_Global_S.getGlobalSettings().logRequestsContent;
57
+ this.logResponseContent = set.logResponseContent !== undefined ? set.logResponseContent : DBE_Global_S.getGlobalSettings().logResponseContent;
58
+
59
+ if (this.logRequest) {
60
+ this.preProcessess.unshift(this.getPreLog());
61
+ }
62
+ }
63
+
64
+ getPreLog(): (req: Request, res: Response, next: NextFunction) => Promise<void> {
65
+ return async (req: Request, res: Response, next: NextFunction) => {
66
+ if (this.logRequest) {
67
+ if (this.logRequestsContent) {
68
+ let inputs = '';
69
+ for(let i = 0; i < this.pathParams.length; i++) {
70
+ inputs += ` ${this.pathParams[i]}: ${req.params[this.pathParams[i]]}`;
71
+ if (i + 1 < this.pathParams.length || req.body && req.body !== {}) {
72
+ inputs += ',';
73
+ }
74
+ }
75
+
76
+ if (req.body && 0 < Object.keys(req.body).length) {
77
+ console.log(`==> incoming ${this.name} request...${inputs} body:`, req.body);
78
+ } else {
79
+ console.log(`==> incoming ${this.name} request...${inputs}`);
80
+ }
81
+ } else {
82
+ console.log(`==> incoming ${this.name} request...`);
83
+ }
84
+ }
85
+
86
+ next();
87
+ };
88
+ }
89
+
90
+ getTasksExecution(): (req: Request, res: Response) => Promise<void> {
91
+ return async (req: Request, res: Response) => {
92
+ try {
93
+ const issuer: string = DBE_Global_S.getAuthService().getAccountIdFromRequest(req);
94
+
95
+ await this.tasks.forEach(async (task: (req: Request, res: Response, issuer?: string) => Promise<void>) => {
96
+ await task(req, res, issuer);
97
+ });
98
+
99
+ if (this.logRequest) {
100
+ if (this.logResponseContent) {
101
+ DBE_Shared.logSuccess(` <<<===== ${this.name} result sent.`);
102
+ DBE_Shared.logSuccess('sorry, the logResponseContent is not implemented yet.');
103
+ } else {
104
+ DBE_Shared.logSuccess(` <<<===== ${this.name} result sent.`);
105
+ }
106
+ }
107
+ } catch (error) {
108
+ DBE_Shared.logError(`${this.name} ERROR`, error, '\n');
109
+ res.status(error.status ? error.status : 501);
110
+ res.send(error);
111
+
112
+ if (this.logRequest) {
113
+ if (this.logResponseContent) {
114
+ DBE_Shared.logError(` <<<===== ${this.name} error sent.`);
115
+ DBE_Shared.logError('sorry, the logResponseContent is not implemented yet.');
116
+ } else {
117
+ DBE_Shared.logError(` <<<===== ${this.name} error sent.`);
118
+ }
119
+ }
120
+ }
121
+ };
122
+ }
123
+ }
124
+
125
+
126
+
127
+
@@ -0,0 +1,9 @@
1
+ import { DynamoBERouteSecurity } from '../_enum/dynamobe-route-security.enum';
2
+
3
+ export class DynamoBEGlobalSettings {
4
+ defaultRouteSecurity?: DynamoBERouteSecurity;
5
+ logSetup?: boolean;
6
+ logRequests?: boolean;
7
+ logRequestsContent?: boolean;
8
+ logResponseContent?: boolean;
9
+ }
@@ -0,0 +1,34 @@
1
+
2
+ import { DynamoUsageSession } from "../data-models/usage-session";
3
+
4
+ export class DailyUsageData {
5
+ date?: string;
6
+ totalVisitTime?: number = 0;
7
+ averageVisitTime?: number = 0;
8
+ visitorsHun?: number = 0;
9
+ visitorsElse?: number = 0;
10
+
11
+ visitations?: DynamoUsageSession[] = [];
12
+
13
+ constructor(
14
+ set?: {
15
+ date?: string,
16
+ totalVisitTime?: number,
17
+ averageVisitTime?: number,
18
+ visitorsHun?: number,
19
+ visitorsElse?: number,
20
+
21
+ visitations?: DynamoUsageSession[],
22
+ }
23
+ ) {
24
+ if (set) {
25
+ this.date = set.date;
26
+ this.totalVisitTime = set.totalVisitTime ? set.totalVisitTime : 0;
27
+ this.averageVisitTime = set.averageVisitTime ? set.averageVisitTime : 0;
28
+ this.visitorsHun = set.visitorsHun ? set.visitorsHun : 0;
29
+ this.visitorsElse = set.visitorsElse ? set.visitorsElse : 0;
30
+
31
+ this.visitations = set.visitations ? set.visitations : [];
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,98 @@
1
+
2
+ import { DynamoBEError } from './dynamobe-error';
3
+
4
+ export class DynamoBEDataPropertyParams {
5
+ key: string;
6
+ type: 'string' | 'number' | 'boolean' | 'Date' | 'object' | string;
7
+
8
+ unique?: boolean;
9
+ required?: boolean;
10
+ index?: boolean;
11
+
12
+ isDependencyHook?: boolean;
13
+ dependencyDBServiceName?: string;
14
+
15
+ minlength?: number;
16
+ maxlength?: number;
17
+
18
+ subObjectParams?: DynamoBEDataPropertyParams[] = [];
19
+
20
+ additionalValidators?: ((data) => void)[];
21
+
22
+ constructor(
23
+ set: {
24
+ key: string,
25
+ type: 'string' | 'number' | 'boolean' | 'Date' | 'object' | string,
26
+
27
+ unique?: boolean,
28
+ required?: boolean,
29
+ index?: boolean,
30
+
31
+ isDependencyHook?: boolean,
32
+ dependencyDBServiceName?: string,
33
+
34
+ minlength?: number,
35
+ maxlength?: number,
36
+
37
+ subObjectParams?: DynamoBEDataPropertyParams[],
38
+
39
+ additionalValidators?: ((data) => void)[],
40
+ }
41
+ ) {
42
+
43
+ if (set) {
44
+ this.key = set.key;
45
+ this.type = set.type;
46
+
47
+ if (this.getBEType() === Object) {
48
+ if (set?.subObjectParams) {
49
+ this.subObjectParams = set.subObjectParams;
50
+ } else {
51
+ console.log('DYNAMO ERROR: \n subObjectParams missing', '\n\n', new Error());
52
+ throw new DynamoBEError({ message: 'subObjectParams missing' });
53
+ }
54
+ }
55
+
56
+ if (set.isDependencyHook) {
57
+ if (set.dependencyDBServiceName) {
58
+ this.isDependencyHook = set.isDependencyHook;
59
+ this.dependencyDBServiceName = set.dependencyDBServiceName;
60
+ } else {
61
+ this.isDependencyHook = set.isDependencyHook;
62
+ console.log('DYNAMO ERROR: \n dependencyDBServiceName missing for dependencyHook', '\n\n', new Error());
63
+ }
64
+ }
65
+ this.unique = set.unique;
66
+ this.required = set.required;
67
+ this.index = set.index;
68
+ this.minlength = set.minlength;
69
+ this.maxlength = set.maxlength;
70
+ this.additionalValidators = set.additionalValidators;
71
+ } else {
72
+ console.log('DYNAMO ERROR: \nMISSING DynamoBEDataPropertyParams constructor input', '\n\n', new Error());
73
+ }
74
+ }
75
+
76
+ // tslint:disable-next-line: ban-types
77
+ getBEType?(): String | Number | Boolean | Object | Function | Array<any> | Date {
78
+ switch (this.type) {
79
+ case 'string':
80
+ return String;
81
+ case 'number':
82
+ return Number;
83
+ case 'boolean':
84
+ return Boolean;
85
+ case 'Date':
86
+ return Date;
87
+ case 'object':
88
+ default:
89
+ if (this.type.includes('[]')) {
90
+ return Array;
91
+ } else if (this.type.includes('=>') || this.type.includes('function')) {
92
+ return Function;
93
+ } else {
94
+ return Object;
95
+ }
96
+ }
97
+ }
98
+ }