@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.
- package/BuildPackage.bat +1 -0
- package/LICENSE +21 -0
- package/README.md +17 -0
- package/lib/_constants/dynamobe-global.settings.d.ts +2 -0
- package/lib/_constants/dynamobe-global.settings.d.ts.map +1 -0
- package/lib/_constants/dynamobe-global.settings.js +11 -0
- package/lib/_enum/data-model-types.enum.d.ts +5 -0
- package/lib/_enum/data-model-types.enum.d.ts.map +1 -0
- package/lib/_enum/data-model-types.enum.js +9 -0
- package/lib/_enum/dynamobe-data-service-function.enum.d.ts +7 -0
- package/lib/_enum/dynamobe-data-service-function.enum.d.ts.map +1 -0
- package/lib/_enum/dynamobe-data-service-function.enum.js +14 -0
- package/lib/_enum/dynamobe-route-security.enum.d.ts +5 -0
- package/lib/_enum/dynamobe-route-security.enum.d.ts.map +1 -0
- package/lib/_enum/dynamobe-route-security.enum.js +9 -0
- package/lib/_enum/http/http-call-type.enum.d.ts +7 -0
- package/lib/_enum/http/http-call-type.enum.d.ts.map +1 -0
- package/lib/_enum/http/http-call-type.enum.js +11 -0
- package/lib/_enum/http/http-response-type.enum.d.ts +6 -0
- package/lib/_enum/http/http-response-type.enum.d.ts.map +1 -0
- package/lib/_enum/http/http-response-type.enum.js +10 -0
- package/lib/_enum/log-style.enum.d.ts +25 -0
- package/lib/_enum/log-style.enum.d.ts.map +1 -0
- package/lib/_enum/log-style.enum.js +29 -0
- package/lib/_enum/predefined-data-types.enum.d.ts +7 -0
- package/lib/_enum/predefined-data-types.enum.d.ts.map +1 -0
- package/lib/_enum/predefined-data-types.enum.js +11 -0
- package/lib/_models/dynamobe-api-call-params.d.ts +34 -0
- package/lib/_models/dynamobe-api-call-params.d.ts.map +1 -0
- package/lib/_models/dynamobe-api-call-params.js +24 -0
- package/lib/_models/dynamobe-app-params.d.ts +14 -0
- package/lib/_models/dynamobe-app-params.d.ts.map +1 -0
- package/lib/_models/dynamobe-app-params.js +13 -0
- package/lib/_models/dynamobe-data-model-params.d.ts +12 -0
- package/lib/_models/dynamobe-data-model-params.d.ts.map +1 -0
- package/lib/_models/dynamobe-data-model-params.js +14 -0
- package/lib/_models/dynamobe-endpoint-control.d.ts +28 -0
- package/lib/_models/dynamobe-endpoint-control.d.ts.map +1 -0
- package/lib/_models/dynamobe-endpoint-control.js +85 -0
- package/lib/_models/dynamobe-global-settings.d.ts +8 -0
- package/lib/_models/dynamobe-global-settings.d.ts.map +1 -0
- package/lib/_models/dynamobe-global-settings.js +6 -0
- package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts +17 -0
- package/lib/_models/fullstack-models/control-models/daily-usage-data.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/daily-usage-data.js +21 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts +27 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-data-property-params.js +66 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts +17 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-error.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/dynamobe-error.js +195 -0
- package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts +25 -0
- package/lib/_models/fullstack-models/control-models/geo-ip-location.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/geo-ip-location.js +2 -0
- package/lib/_models/fullstack-models/control-models/usage-action.d.ts +8 -0
- package/lib/_models/fullstack-models/control-models/usage-action.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/usage-action.js +12 -0
- package/lib/_models/fullstack-models/control-models/usage-data.d.ts +13 -0
- package/lib/_models/fullstack-models/control-models/usage-data.d.ts.map +1 -0
- package/lib/_models/fullstack-models/control-models/usage-data.js +15 -0
- package/lib/_models/fullstack-models/data-models/custom-data.d.ts +15 -0
- package/lib/_models/fullstack-models/data-models/custom-data.d.ts.map +1 -0
- package/lib/_models/fullstack-models/data-models/custom-data.js +23 -0
- package/lib/_models/fullstack-models/data-models/metadata.d.ts +16 -0
- package/lib/_models/fullstack-models/data-models/metadata.d.ts.map +1 -0
- package/lib/_models/fullstack-models/data-models/metadata.js +16 -0
- package/lib/_models/fullstack-models/data-models/usage-session.d.ts +33 -0
- package/lib/_models/fullstack-models/data-models/usage-session.d.ts.map +1 -0
- package/lib/_models/fullstack-models/data-models/usage-session.js +48 -0
- package/lib/_modules/test-route/custom-data.service.d.ts +5 -0
- package/lib/_modules/test-route/custom-data.service.d.ts.map +1 -0
- package/lib/_modules/test-route/custom-data.service.js +12 -0
- package/lib/_modules/test-route/test-controller.d.ts +5 -0
- package/lib/_modules/test-route/test-controller.d.ts.map +1 -0
- package/lib/_modules/test-route/test-controller.js +125 -0
- package/lib/_modules/usage-route/usage-controller.d.ts +6 -0
- package/lib/_modules/usage-route/usage-controller.d.ts.map +1 -0
- package/lib/_modules/usage-route/usage-controller.js +88 -0
- package/lib/_modules/usage-route/usage.service.d.ts +18 -0
- package/lib/_modules/usage-route/usage.service.d.ts.map +1 -0
- package/lib/_modules/usage-route/usage.service.js +110 -0
- package/lib/_services/dynamobe-api.service.d.ts +9 -0
- package/lib/_services/dynamobe-api.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-api.service.js +130 -0
- package/lib/_services/dynamobe-app.d.ts +11 -0
- package/lib/_services/dynamobe-app.d.ts.map +1 -0
- package/lib/_services/dynamobe-app.js +38 -0
- package/lib/_services/dynamobe-auth.service.d.ts +25 -0
- package/lib/_services/dynamobe-auth.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-auth.service.js +24 -0
- package/lib/_services/dynamobe-controller.service.d.ts +10 -0
- package/lib/_services/dynamobe-controller.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-controller.service.js +11 -0
- package/lib/_services/dynamobe-data.service.d.ts +51 -0
- package/lib/_services/dynamobe-data.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-data.service.js +224 -0
- package/lib/_services/dynamobe-db-service-collection.service.d.ts +5 -0
- package/lib/_services/dynamobe-db-service-collection.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-db-service-collection.service.js +7 -0
- package/lib/_services/dynamobe-db.service.d.ts +150 -0
- package/lib/_services/dynamobe-db.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-db.service.js +577 -0
- package/lib/_services/dynamobe-email-service-collection.service.d.ts +5 -0
- package/lib/_services/dynamobe-email-service-collection.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-email-service-collection.service.js +7 -0
- package/lib/_services/dynamobe-email.service.d.ts +32 -0
- package/lib/_services/dynamobe-email.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-email.service.js +144 -0
- package/lib/_services/dynamobe-global.service.d.ts +22 -0
- package/lib/_services/dynamobe-global.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-global.service.js +84 -0
- package/lib/_services/dynamobe-routing-module.service.d.ts +25 -0
- package/lib/_services/dynamobe-routing-module.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-routing-module.service.js +112 -0
- package/lib/_services/dynamobe-server.d.ts +31 -0
- package/lib/_services/dynamobe-server.d.ts.map +1 -0
- package/lib/_services/dynamobe-server.js +179 -0
- package/lib/_services/dynamobe-shared.service.d.ts +100 -0
- package/lib/_services/dynamobe-shared.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-shared.service.js +294 -0
- package/lib/_services/dynamobe-singleton.service.d.ts +5 -0
- package/lib/_services/dynamobe-singleton.service.d.ts.map +1 -0
- package/lib/_services/dynamobe-singleton.service.js +15 -0
- package/lib/index-newo.d.ts +0 -0
- package/lib/index-newo.d.ts.map +1 -0
- package/lib/index-newo.js +71 -0
- package/lib/index-old.d.ts +39 -0
- package/lib/index-old.js +49 -0
- package/lib/index.d.ts +39 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +49 -0
- package/lib/tsconfig.tsbuildinfo +2080 -0
- package/nodemon.json +6 -0
- package/package.json +52 -0
- package/src/_constants/dynamobe-global.settings.ts +11 -0
- package/src/_enum/data-model-types.enum.ts +6 -0
- package/src/_enum/dynamobe-data-service-function.enum.ts +11 -0
- package/src/_enum/dynamobe-route-security.enum.ts +6 -0
- package/src/_enum/http/http-call-type.enum.ts +8 -0
- package/src/_enum/http/http-response-type.enum.ts +7 -0
- package/src/_enum/log-style.enum.ts +30 -0
- package/src/_enum/predefined-data-types.enum.ts +8 -0
- package/src/_models/dynamobe-api-call-params.ts +62 -0
- package/src/_models/dynamobe-app-params.ts +24 -0
- package/src/_models/dynamobe-data-model-params.ts +23 -0
- package/src/_models/dynamobe-endpoint-control.ts +127 -0
- package/src/_models/dynamobe-global-settings.ts +9 -0
- package/src/_models/fullstack-models/control-models/daily-usage-data.ts +34 -0
- package/src/_models/fullstack-models/control-models/dynamobe-data-property-params.ts +98 -0
- package/src/_models/fullstack-models/control-models/dynamobe-error.ts +207 -0
- package/src/_models/fullstack-models/control-models/geo-ip-location.ts +26 -0
- package/src/_models/fullstack-models/control-models/usage-action.ts +18 -0
- package/src/_models/fullstack-models/control-models/usage-data.ts +26 -0
- package/src/_models/fullstack-models/data-models/custom-data.ts +37 -0
- package/src/_models/fullstack-models/data-models/metadata.ts +28 -0
- package/src/_models/fullstack-models/data-models/usage-session.ts +82 -0
- package/src/_modules/test-route/custom-data.service.ts +21 -0
- package/src/_modules/test-route/test-controller.ts +136 -0
- package/src/_modules/usage-route/usage-controller.ts +114 -0
- package/src/_modules/usage-route/usage.service.ts +125 -0
- package/src/_services/dynamobe-api.service.ts +135 -0
- package/src/_services/dynamobe-app.ts +49 -0
- package/src/_services/dynamobe-auth.service.ts +42 -0
- package/src/_services/dynamobe-controller.service.ts +20 -0
- package/src/_services/dynamobe-data.service.ts +215 -0
- package/src/_services/dynamobe-db-service-collection.service.ts +9 -0
- package/src/_services/dynamobe-db.service.ts +556 -0
- package/src/_services/dynamobe-email-service-collection.service.ts +9 -0
- package/src/_services/dynamobe-email.service.ts +169 -0
- package/src/_services/dynamobe-global.service.ts +99 -0
- package/src/_services/dynamobe-routing-module.service.ts +141 -0
- package/src/_services/dynamobe-server.ts +225 -0
- package/src/_services/dynamobe-shared.service.ts +320 -0
- package/src/_services/dynamobe-singleton.service.ts +16 -0
- package/src/index-newo.ts +71 -0
- package/src/index.ts +50 -0
- package/src/version.json +2 -0
- package/tsconfig.app.json +12 -0
- package/tsconfig.json +72 -0
package/nodemon.json
ADDED
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,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,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,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
|
+
}
|