@futdevpro/nts-dynamo 1.6.58 → 1.6.71
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/lib/_constants/mocks/app-extended-server.mock.js +8 -13
- package/lib/_constants/mocks/app-extended-server.mock.js.map +1 -1
- package/lib/_constants/mocks/app-server.mock.js +4 -9
- package/lib/_constants/mocks/app-server.mock.js.map +1 -1
- package/lib/_constants/mocks/auth-service.mock.js +3 -10
- package/lib/_constants/mocks/auth-service.mock.js.map +1 -1
- package/lib/_constants/mocks/data-model.mock.js +17 -0
- package/lib/_constants/mocks/data-model.mock.js.map +1 -1
- package/lib/_constants/mocks/email-service-collection.mock.js +1 -4
- package/lib/_constants/mocks/email-service-collection.mock.js.map +1 -1
- package/lib/_constants/mocks/endpoint.mock.js +12 -13
- package/lib/_constants/mocks/endpoint.mock.js.map +1 -1
- package/lib/_constants/mocks/socket-client.mock.js +2 -3
- package/lib/_constants/mocks/socket-client.mock.js.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.js +2 -5
- package/lib/_constants/mocks/socket-server.mock.js.map +1 -1
- package/lib/_enums/http/socket-event-type.enum.d.ts +1 -0
- package/lib/_enums/http/socket-event-type.enum.d.ts.map +1 -1
- package/lib/_enums/http/socket-event-type.enum.js +1 -0
- package/lib/_enums/http/socket-event-type.enum.js.map +1 -1
- package/lib/_models/control-models/api-call-params.control-model.js +32 -0
- package/lib/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/lib/_models/control-models/app-params.control-model.js +31 -4
- package/lib/_models/control-models/app-params.control-model.js.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model copy.js +3 -5
- package/lib/_models/control-models/app-system-controls.control-model copy.js.map +1 -1
- package/lib/_models/control-models/app-system-controls.control-model.js +4 -6
- package/lib/_models/control-models/app-system-controls.control-model.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +91 -88
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-client-service-params.control-model.js +8 -5
- package/lib/_models/control-models/socket-client-service-params.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-event.control-model.js +35 -34
- package/lib/_models/control-models/socket-event.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/socket-presence.control-model.js +14 -11
- package/lib/_models/control-models/socket-presence.control-model.js.map +1 -1
- package/lib/_models/control-models/socket-server-service-params.control-model.js +3 -0
- package/lib/_models/control-models/socket-server-service-params.control-model.js.map +1 -1
- package/lib/_models/control-models/system-control.control-model.js +3 -5
- package/lib/_models/control-models/system-control.control-model.js.map +1 -1
- package/lib/_modules/custom-data/custom-data.controller.js +6 -7
- package/lib/_modules/custom-data/custom-data.controller.js.map +1 -1
- package/lib/_modules/test/test.controller.js +12 -13
- package/lib/_modules/test/test.controller.js.map +1 -1
- package/lib/_modules/usage/usage.controller.js +15 -14
- package/lib/_modules/usage/usage.controller.js.map +1 -1
- package/lib/_modules/usage/usage.data-service.js +88 -96
- package/lib/_modules/usage/usage.data-service.js.map +1 -1
- package/lib/_services/base/data.service.d.ts +2 -0
- package/lib/_services/base/data.service.d.ts.map +1 -1
- package/lib/_services/base/data.service.js +376 -253
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.d.ts +1 -0
- package/lib/_services/base/db.service.d.ts.map +1 -1
- package/lib/_services/base/db.service.js +321 -247
- package/lib/_services/base/db.service.js.map +1 -1
- package/lib/_services/base/singleton.service.js +2 -0
- package/lib/_services/base/singleton.service.js.map +1 -1
- package/lib/_services/core/api.service.js +185 -188
- package/lib/_services/core/api.service.js.map +1 -1
- package/lib/_services/core/auth.service.js +3 -3
- package/lib/_services/core/auth.service.js.map +1 -1
- package/lib/_services/core/email.service.js +103 -88
- package/lib/_services/core/email.service.js.map +1 -1
- package/lib/_services/core/global.service.d.ts +1 -1
- package/lib/_services/core/global.service.d.ts.map +1 -1
- package/lib/_services/core/global.service.js +41 -41
- package/lib/_services/core/global.service.js.map +1 -1
- package/lib/_services/route/controller.service.js +28 -0
- package/lib/_services/route/controller.service.js.map +1 -1
- package/lib/_services/route/routing-module.service.js +11 -8
- package/lib/_services/route/routing-module.service.js.map +1 -1
- package/lib/_services/server/app-extended.server.js +241 -247
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app-extended.server.spec.js +18 -19
- package/lib/_services/server/app-extended.server.spec.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +2 -1
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +413 -410
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/_services/server/app.server.spec.js +12 -13
- package/lib/_services/server/app.server.spec.js.map +1 -1
- package/lib/_services/shared.static-service.js +15 -17
- package/lib/_services/shared.static-service.js.map +1 -1
- package/lib/_services/socket/socket-client.service.js +134 -145
- package/lib/_services/socket/socket-client.service.js.map +1 -1
- package/lib/_services/socket/socket-server.service.js +294 -263
- package/lib/_services/socket/socket-server.service.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -21
- package/src/_enums/http/socket-event-type.enum.ts +2 -0
- package/src/_models/control-models/socket-presence.control-model.ts +8 -2
- package/src/_services/base/data.service.ts +79 -0
- package/src/_services/base/db.service.ts +47 -28
- package/src/_services/core/global.service.ts +4 -2
- package/src/_services/server/app-extended.server.ts +2 -2
- package/src/_services/server/app.server.ts +18 -4
- package/tsconfig.json +2 -2
|
@@ -9,6 +9,12 @@ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
|
9
9
|
* DB Service for MongoDB
|
|
10
10
|
*/
|
|
11
11
|
class DynamoNTS_DBService {
|
|
12
|
+
dataParams;
|
|
13
|
+
serviceName;
|
|
14
|
+
dataModel; // = mongoose.model(this.dataParams.dbName, this.getSchema());
|
|
15
|
+
depDataName;
|
|
16
|
+
defaultErrorUserMsg = `We encountered an unhandled DB Error, ` +
|
|
17
|
+
`\nplease contact the responsible development team.`;
|
|
12
18
|
/**
|
|
13
19
|
* @param dataName name the model
|
|
14
20
|
* @param typeSample sample data for scheme creation (dont include Dynamo_Metadata!)
|
|
@@ -16,12 +22,9 @@ class DynamoNTS_DBService {
|
|
|
16
22
|
* schemaSettings also MUST contain specific types that differs from the listed above (Array, Date)
|
|
17
23
|
*/
|
|
18
24
|
constructor(dataParams) {
|
|
19
|
-
var _a;
|
|
20
25
|
this.dataParams = dataParams;
|
|
21
|
-
this.defaultErrorUserMsg = `We encountered an unhandled DB Error, ` +
|
|
22
|
-
`\nplease contact the responsible development team.`;
|
|
23
26
|
try {
|
|
24
|
-
this.serviceName =
|
|
27
|
+
this.serviceName = this.constructor?.name;
|
|
25
28
|
try {
|
|
26
29
|
this.dataModel = mongoose.model(this.dataParams.dbName, this.getSchema());
|
|
27
30
|
}
|
|
@@ -44,76 +47,97 @@ class DynamoNTS_DBService {
|
|
|
44
47
|
* @param data data
|
|
45
48
|
* @returns data
|
|
46
49
|
*/
|
|
47
|
-
createData(data, issuer) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
50
|
+
async createData(data, issuer) {
|
|
51
|
+
data.__created = new Date();
|
|
52
|
+
data.__lastModified = new Date();
|
|
53
|
+
data.__createdBy = issuer;
|
|
54
|
+
data.__lastModifiedBy = issuer;
|
|
55
|
+
const dataModel = new this.dataModel(data);
|
|
56
|
+
let newData = await dataModel.save().then(res => {
|
|
57
|
+
if (res) {
|
|
58
|
+
return res?.toObject();
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
62
|
+
...this._getDefaultErrorSettings('createData', new Error(`createData failed, save ${this.dataParams.dbName} result not found! (NTS DB)`), issuer),
|
|
63
|
+
status: 204,
|
|
64
|
+
errorCode: 'NTS-DBS-CD1',
|
|
65
|
+
issuer,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}).catch(error => {
|
|
69
|
+
if (error?.flag?.includes('DYNAMO')) {
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
74
|
+
...this._getDefaultErrorSettings('createData', error, issuer),
|
|
75
|
+
status: 422,
|
|
76
|
+
errorCode: 'NTS-DBS-CD0',
|
|
77
|
+
message: `createData failed, Create new ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
78
|
+
issuer,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
72
81
|
});
|
|
82
|
+
data = this.stringifyDataId(newData, 'createData');
|
|
83
|
+
return data;
|
|
73
84
|
}
|
|
74
85
|
/**
|
|
75
86
|
* Find data by _id and update
|
|
76
87
|
* @param data data
|
|
77
88
|
* @returns data
|
|
78
89
|
*/
|
|
79
|
-
modifyData(data, issuer) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
async modifyData(data, issuer) {
|
|
91
|
+
data.__lastModified = new Date();
|
|
92
|
+
data.__lastModifiedBy = issuer;
|
|
93
|
+
const dataModel = new this.dataModel(data);
|
|
94
|
+
let newData = await this.dataModel.findByIdAndUpdate(data._id, dataModel).then(res => {
|
|
95
|
+
if (res) {
|
|
96
|
+
return res?.toObject();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
100
|
+
...this._getDefaultErrorSettings('modifyData', new Error(`modifyData failed, modify ${this.dataParams.dbName} result not found! (NTS DB)`), issuer),
|
|
101
|
+
status: 204,
|
|
102
|
+
errorCode: 'NTS-DBS-FU1',
|
|
103
|
+
issuer,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}).catch(error => {
|
|
107
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
108
|
+
...this._getDefaultErrorSettings('modifyData', error, issuer),
|
|
109
|
+
errorCode: 'NTS-DBS-FU0',
|
|
110
|
+
message: `modifyData ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
111
|
+
issuer,
|
|
93
112
|
});
|
|
94
|
-
data = this.stringifyDataId(newData, 'modifyData');
|
|
95
|
-
return data;
|
|
96
113
|
});
|
|
114
|
+
data = this.stringifyDataId(newData, 'modifyData');
|
|
115
|
+
return data;
|
|
97
116
|
}
|
|
98
117
|
/**
|
|
99
118
|
* returns data by _id,
|
|
100
119
|
* @param id id
|
|
101
120
|
* @returns data
|
|
102
121
|
*/
|
|
103
|
-
getDataById(id) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
async getDataById(id) {
|
|
123
|
+
if (!id) {
|
|
124
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
125
|
+
...this._getDefaultErrorSettings('getDataById', new Error(`No ID provided! (NTS DB)`)),
|
|
126
|
+
errorCode: 'NTS-DBS-GI1',
|
|
127
|
+
message: `get ${this.dataParams.dbName} by ID was unsuccessful (NTS DB)`,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
let data = await this.dataModel.findById(id).then(res => {
|
|
131
|
+
return res?.toObject() ?? null;
|
|
132
|
+
}).catch(error => {
|
|
133
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
134
|
+
...this._getDefaultErrorSettings('getDataById', error),
|
|
135
|
+
errorCode: 'NTS-DBS-GI0',
|
|
136
|
+
message: `get ${this.dataParams.dbName} by ID was unsuccessful (NTS DB)`,
|
|
113
137
|
});
|
|
114
|
-
data = this.stringifyDataId(data, 'getDataById');
|
|
115
|
-
return data;
|
|
116
138
|
});
|
|
139
|
+
data = this.stringifyDataId(data, 'getDataById');
|
|
140
|
+
return data;
|
|
117
141
|
}
|
|
118
142
|
/**
|
|
119
143
|
* get data by dependency data id,
|
|
@@ -122,20 +146,25 @@ class DynamoNTS_DBService {
|
|
|
122
146
|
* @param dependencyId id
|
|
123
147
|
* @returns data
|
|
124
148
|
*/
|
|
125
|
-
getDataByDependencyId(dependencyId) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
149
|
+
async getDataByDependencyId(dependencyId) {
|
|
150
|
+
if (!this.depDataName) {
|
|
151
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
152
|
+
...this._getDefaultErrorSettings('getDataByDependencyId', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
153
|
+
status: 501,
|
|
154
|
+
errorCode: 'NTS-DBS-GD0',
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
let data = await this.dataModel.findOne({ [this.depDataName]: dependencyId }).then(res => {
|
|
158
|
+
return res?.toObject() ?? null;
|
|
159
|
+
}).catch(error => {
|
|
160
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
161
|
+
...this._getDefaultErrorSettings('getDataByDependencyId', error),
|
|
162
|
+
errorCode: 'NTS-DBS-GD1',
|
|
163
|
+
message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
135
164
|
});
|
|
136
|
-
data = this.stringifyDataId(data, 'getDataByDependencyId');
|
|
137
|
-
return data;
|
|
138
165
|
});
|
|
166
|
+
data = this.stringifyDataId(data, 'getDataByDependencyId');
|
|
167
|
+
return data;
|
|
139
168
|
}
|
|
140
169
|
/**
|
|
141
170
|
* get data by dependency data id,
|
|
@@ -144,24 +173,49 @@ class DynamoNTS_DBService {
|
|
|
144
173
|
* @param dependencyId id
|
|
145
174
|
* @returns dataList
|
|
146
175
|
*/
|
|
147
|
-
getDataListByDependencyId(dependencyId) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
var _a;
|
|
154
|
-
return (_a = res) !== null && _a !== void 0 ? _a : [];
|
|
155
|
-
}).catch(error => {
|
|
156
|
-
throw new fsm_dynamo_1.Dynamo_Error(Object.assign(Object.assign({}, this._getDefaultErrorSettings('getDataListByDependencyId', error)), { errorCode: 'NTS-DBS-GLD1', message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)` }));
|
|
176
|
+
async getDataListByDependencyId(dependencyId) {
|
|
177
|
+
if (!this.depDataName) {
|
|
178
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
179
|
+
...this._getDefaultErrorSettings('getDataListByDependencyId', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
180
|
+
status: 501,
|
|
181
|
+
errorCode: 'NTS-DBS-GLD0',
|
|
157
182
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
183
|
+
}
|
|
184
|
+
let dataList = await this.dataModel.find({ [this.depDataName]: dependencyId }).then(res => {
|
|
185
|
+
return res ?? [];
|
|
186
|
+
}).catch(error => {
|
|
187
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
188
|
+
...this._getDefaultErrorSettings('getDataListByDependencyId', error),
|
|
189
|
+
errorCode: 'NTS-DBS-GLD1',
|
|
190
|
+
message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
dataList.forEach((data) => {
|
|
194
|
+
data = this.stringifyDataId(data, 'getDataListByDependencyId');
|
|
195
|
+
});
|
|
196
|
+
return dataList;
|
|
197
|
+
}
|
|
198
|
+
async getDatasByDependencyIds(dependencyIds) {
|
|
199
|
+
if (!this.depDataName) {
|
|
200
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
201
|
+
...this._getDefaultErrorSettings('getDatasByDependencyIds', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
202
|
+
status: 501,
|
|
203
|
+
errorCode: 'NTS-DBS-GLDS0',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
let dataList = await this.dataModel.find({ [this.depDataName]: { $in: dependencyIds } }).then(res => {
|
|
207
|
+
return res ?? [];
|
|
208
|
+
}).catch(error => {
|
|
209
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
210
|
+
...this._getDefaultErrorSettings('getDatasByDependencyIds', error),
|
|
211
|
+
errorCode: 'NTS-DBS-GLDS1',
|
|
212
|
+
message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
dataList.forEach((data) => {
|
|
216
|
+
data = this.stringifyDataId(data, 'getDatasByDependencyIds');
|
|
164
217
|
});
|
|
218
|
+
return dataList;
|
|
165
219
|
}
|
|
166
220
|
/**
|
|
167
221
|
* get multiple data objects by a list of DependencyIDs,
|
|
@@ -170,24 +224,27 @@ class DynamoNTS_DBService {
|
|
|
170
224
|
* @param ids ids
|
|
171
225
|
* @returns dataList
|
|
172
226
|
*/
|
|
173
|
-
getDataListByDependencyIds(ids) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
227
|
+
async getDataListByDependencyIds(ids) {
|
|
228
|
+
if (!this.depDataName) {
|
|
229
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
230
|
+
...this._getDefaultErrorSettings('getDataListByDependencyIds', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
231
|
+
status: 501,
|
|
232
|
+
errorCode: 'NTS-DBS-GLDS0',
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
let dataList = await this.dataModel.find({ [this.depDataName]: { $in: ids } }).then(res => {
|
|
236
|
+
return res ?? [];
|
|
237
|
+
}).catch(error => {
|
|
238
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
239
|
+
...this._getDefaultErrorSettings('getDataListByDependencyIds', error),
|
|
240
|
+
errorCode: 'NTS-DBS-GLDS1',
|
|
241
|
+
message: `get ${this.dataParams.dbName}s by ${this.depDataName}s was unsuccessful (NTS DB)`,
|
|
183
242
|
});
|
|
184
|
-
if (0 < dataList.length) {
|
|
185
|
-
dataList.forEach((data) => {
|
|
186
|
-
data = this.stringifyDataId(data, 'getDataListByDependencyIds');
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
return dataList;
|
|
190
243
|
});
|
|
244
|
+
dataList.forEach((data) => {
|
|
245
|
+
data = this.stringifyDataId(data, 'getDataListByDependencyIds');
|
|
246
|
+
});
|
|
247
|
+
return dataList;
|
|
191
248
|
}
|
|
192
249
|
/**
|
|
193
250
|
* returns all data from database,
|
|
@@ -195,31 +252,32 @@ class DynamoNTS_DBService {
|
|
|
195
252
|
*
|
|
196
253
|
* @returns dataList
|
|
197
254
|
*/
|
|
198
|
-
getAll() {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
255
|
+
async getAll() {
|
|
256
|
+
let dataList = await this.dataModel.find({})
|
|
257
|
+
.then(res => {
|
|
258
|
+
return res ?? [];
|
|
259
|
+
}).catch(error => {
|
|
260
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
261
|
+
...this._getDefaultErrorSettings('getAll', error),
|
|
262
|
+
errorCode: 'NTS-DBS-GA0',
|
|
263
|
+
message: `get all ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
206
264
|
});
|
|
207
|
-
if (0 < dataList.length && typeof dataList[0]._id === 'object') {
|
|
208
|
-
dataList.forEach((data) => {
|
|
209
|
-
data = this.stringifyDataId(data, 'getAll');
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
return dataList;
|
|
213
265
|
});
|
|
266
|
+
dataList.forEach((data) => {
|
|
267
|
+
data = this.stringifyDataId(data, 'getAll');
|
|
268
|
+
});
|
|
269
|
+
return dataList;
|
|
214
270
|
}
|
|
215
271
|
/**
|
|
216
272
|
* deleted data by id
|
|
217
273
|
* @param id id
|
|
218
274
|
*/
|
|
219
|
-
deleteDataById(id) {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
275
|
+
async deleteDataById(id) {
|
|
276
|
+
await this.dataModel.findByIdAndDelete(id).catch(error => {
|
|
277
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
278
|
+
...this._getDefaultErrorSettings('deleteDataById', error),
|
|
279
|
+
errorCode: 'NTS-DBS-DD0',
|
|
280
|
+
message: `delete ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
223
281
|
});
|
|
224
282
|
});
|
|
225
283
|
}
|
|
@@ -227,13 +285,19 @@ class DynamoNTS_DBService {
|
|
|
227
285
|
* deleted data by id
|
|
228
286
|
* @param dependencyId id
|
|
229
287
|
*/
|
|
230
|
-
deleteDataByDependencyId(dependencyId) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
288
|
+
async deleteDataByDependencyId(dependencyId) {
|
|
289
|
+
if (!this.depDataName) {
|
|
290
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
291
|
+
...this._getDefaultErrorSettings('deleteDataByDependencyId', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
292
|
+
status: 501,
|
|
293
|
+
errorCode: 'NTS-DBS-DDD0',
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
await this.dataModel.deleteMany({ [this.depDataName]: dependencyId }).catch(error => {
|
|
297
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
298
|
+
...this._getDefaultErrorSettings('deleteDataByDependencyId', error),
|
|
299
|
+
errorCode: 'NTS-DBS-DDD1',
|
|
300
|
+
message: `delete ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)`,
|
|
237
301
|
});
|
|
238
302
|
});
|
|
239
303
|
}
|
|
@@ -245,71 +309,75 @@ class DynamoNTS_DBService {
|
|
|
245
309
|
* @param narrowByDependencyIds id
|
|
246
310
|
* @returns dataList
|
|
247
311
|
*/
|
|
248
|
-
searchData(filterBy, narrowByDependencyIds) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
312
|
+
async searchData(filterBy, narrowByDependencyIds) {
|
|
313
|
+
const filter = {};
|
|
314
|
+
if (0 < narrowByDependencyIds.length) {
|
|
315
|
+
if (!this.depDataName) {
|
|
316
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
317
|
+
...this._getDefaultErrorSettings('searchData', new Error(`dependencyDataIdKey not setted up for this db-service (${this.dataParams.dbName}) (NTS DB)`)),
|
|
318
|
+
status: 501,
|
|
319
|
+
errorCode: 'NTS-DBS-SD0',
|
|
320
|
+
});
|
|
256
321
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
else {
|
|
273
|
-
if (filterBy[modelParam.key] !== null &&
|
|
274
|
-
filterBy[modelParam.key] !== undefined) {
|
|
275
|
-
filter[modelParam.key] = { $in: filterBy[modelParam.key] };
|
|
276
|
-
}
|
|
322
|
+
filter[this.depDataName] = { $in: narrowByDependencyIds };
|
|
323
|
+
}
|
|
324
|
+
await this.dataParams.modelParams.forEach((modelParam) => {
|
|
325
|
+
if ((filterBy[modelParam.key] !== null && filterBy[modelParam.key] !== undefined) ||
|
|
326
|
+
filterBy[modelParam.key + 'Range']) {
|
|
327
|
+
if (modelParam.key.includes('Range') || modelParam.type.includes('[]')) {
|
|
328
|
+
// inverz search filter (for Range and Array functions)
|
|
329
|
+
if (modelParam.key.includes('Range')) {
|
|
330
|
+
const searchParamKeyWithoutRange = modelParam.key.split('Range')[0];
|
|
331
|
+
if (filterBy[searchParamKeyWithoutRange] !== null &&
|
|
332
|
+
filterBy[searchParamKeyWithoutRange] !== undefined) {
|
|
333
|
+
filter[modelParam.key] = {
|
|
334
|
+
from: { $lte: filterBy[searchParamKeyWithoutRange] },
|
|
335
|
+
to: { $gte: filterBy[searchParamKeyWithoutRange] }
|
|
336
|
+
};
|
|
277
337
|
}
|
|
278
338
|
}
|
|
279
339
|
else {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
filter[modelParam.key] = {};
|
|
284
|
-
if (filterBy[modelParam.key + 'Range'].from) {
|
|
285
|
-
filter[modelParam.key].$gte = filterBy[modelParam.key + 'Range'].from;
|
|
286
|
-
}
|
|
287
|
-
if (filterBy[modelParam.key + 'Range'].to) {
|
|
288
|
-
filter[modelParam.key].$lte = filterBy[modelParam.key + 'Range'].to;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
340
|
+
if (filterBy[modelParam.key] !== null &&
|
|
341
|
+
filterBy[modelParam.key] !== undefined) {
|
|
342
|
+
filter[modelParam.key] = { $in: filterBy[modelParam.key] };
|
|
291
343
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
// basic search filter
|
|
348
|
+
if (filterBy[modelParam.key + 'Range']) {
|
|
349
|
+
if (filterBy[modelParam.key + 'Range'].from || filterBy[modelParam.key + 'Range'].to) {
|
|
350
|
+
filter[modelParam.key] = {};
|
|
351
|
+
if (filterBy[modelParam.key + 'Range'].from) {
|
|
352
|
+
filter[modelParam.key].$gte = filterBy[modelParam.key + 'Range'].from;
|
|
295
353
|
}
|
|
354
|
+
if (filterBy[modelParam.key + 'Range'].to) {
|
|
355
|
+
filter[modelParam.key].$lte = filterBy[modelParam.key + 'Range'].to;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
else if (filterBy[modelParam.key] !== null && filterBy[modelParam.key] !== undefined) {
|
|
360
|
+
if (filterBy[modelParam.key].lenght > 0) {
|
|
361
|
+
filter[modelParam.key] = { $in: filterBy[modelParam.key] };
|
|
296
362
|
}
|
|
297
363
|
}
|
|
298
364
|
}
|
|
299
|
-
});
|
|
300
|
-
let dataList = yield this.dataModel
|
|
301
|
-
.find(filter)
|
|
302
|
-
.then(res => res !== null && res !== void 0 ? res : [])
|
|
303
|
-
.catch(error => {
|
|
304
|
-
throw new fsm_dynamo_1.Dynamo_Error(Object.assign(Object.assign({}, this._getDefaultErrorSettings('searchData', error)), { errorCode: 'NTS-DBS-SD1', message: `search ${this.dataParams.dbName} was unsuccessful (NTS DB)` }));
|
|
305
|
-
});
|
|
306
|
-
if (0 < dataList.length) {
|
|
307
|
-
dataList.forEach((data) => {
|
|
308
|
-
data = this.stringifyDataId(data, 'searchData');
|
|
309
|
-
});
|
|
310
365
|
}
|
|
311
|
-
return dataList;
|
|
312
366
|
});
|
|
367
|
+
let dataList = await this.dataModel
|
|
368
|
+
.find(filter)
|
|
369
|
+
.then(res => res ?? [])
|
|
370
|
+
.catch(error => {
|
|
371
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
372
|
+
...this._getDefaultErrorSettings('searchData', error),
|
|
373
|
+
errorCode: 'NTS-DBS-SD1',
|
|
374
|
+
message: `search ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
dataList.forEach((data) => {
|
|
378
|
+
data = this.stringifyDataId(data, 'searchData');
|
|
379
|
+
});
|
|
380
|
+
return dataList;
|
|
313
381
|
}
|
|
314
382
|
// ----------------------------------------------------------------------------------
|
|
315
383
|
// ----------------------------------------------------------------------------------
|
|
@@ -341,17 +409,18 @@ class DynamoNTS_DBService {
|
|
|
341
409
|
* //
|
|
342
410
|
* @returns {T} data: T
|
|
343
411
|
*/
|
|
344
|
-
findOne(filterBy) {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
412
|
+
async findOne(filterBy) {
|
|
413
|
+
let data = await this.dataModel.findOne(filterBy).then(res => {
|
|
414
|
+
return res ?? null;
|
|
415
|
+
}).catch(error => {
|
|
416
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
417
|
+
...this._getDefaultErrorSettings('findOne', error),
|
|
418
|
+
errorCode: 'NTS-DBS-FO0',
|
|
419
|
+
message: `findOne ${this.dataParams.dbName} was unsuccessful (NTS DB) fliter: ${filterBy}`,
|
|
351
420
|
});
|
|
352
|
-
data = this.stringifyDataId(data, 'findOne');
|
|
353
|
-
return data;
|
|
354
421
|
});
|
|
422
|
+
data = this.stringifyDataId(data, 'findOne');
|
|
423
|
+
return data;
|
|
355
424
|
}
|
|
356
425
|
/**
|
|
357
426
|
* #MONGOOSE FUNCTION
|
|
@@ -380,22 +449,21 @@ class DynamoNTS_DBService {
|
|
|
380
449
|
* //
|
|
381
450
|
* @returns {T[]} dataList: T[]
|
|
382
451
|
*/
|
|
383
|
-
find(filterBy) {
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
452
|
+
async find(filterBy) {
|
|
453
|
+
let dataList = await this.dataModel.find(filterBy)
|
|
454
|
+
.then(res => {
|
|
455
|
+
return res ?? [];
|
|
456
|
+
}).catch(error => {
|
|
457
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
458
|
+
...this._getDefaultErrorSettings('find', error),
|
|
459
|
+
errorCode: 'NTS-DBS-F0',
|
|
460
|
+
message: `find ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
391
461
|
});
|
|
392
|
-
if (0 < dataList.length) {
|
|
393
|
-
dataList.forEach((data) => {
|
|
394
|
-
data = this.stringifyDataId(data, 'find');
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
return dataList;
|
|
398
462
|
});
|
|
463
|
+
dataList.forEach((data) => {
|
|
464
|
+
data = this.stringifyDataId(data, 'find');
|
|
465
|
+
});
|
|
466
|
+
return dataList;
|
|
399
467
|
}
|
|
400
468
|
/**
|
|
401
469
|
* #MONGOOSE FUNCTION
|
|
@@ -430,23 +498,23 @@ class DynamoNTS_DBService {
|
|
|
430
498
|
* //
|
|
431
499
|
* @returns {T[]} dataList: T[]
|
|
432
500
|
*/
|
|
433
|
-
findWithPaging(filterBy, page, pageSize, sort) {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
501
|
+
async findWithPaging(filterBy, page, pageSize, sort) {
|
|
502
|
+
let dataList = await this.dataModel.find(filterBy)
|
|
503
|
+
.sort(sort)
|
|
504
|
+
.skip(page * pageSize)
|
|
505
|
+
.limit(pageSize)
|
|
506
|
+
.then(res => res ?? [])
|
|
507
|
+
.catch(error => {
|
|
508
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
509
|
+
...this._getDefaultErrorSettings('findWithPaging', error),
|
|
510
|
+
errorCode: 'NTS-DBS-WP0',
|
|
511
|
+
message: `findWithPaging ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
442
512
|
});
|
|
443
|
-
if (0 < dataList.length) {
|
|
444
|
-
dataList.forEach((data) => {
|
|
445
|
-
data = this.stringifyDataId(data, 'findWithPaging');
|
|
446
|
-
});
|
|
447
|
-
}
|
|
448
|
-
return dataList;
|
|
449
513
|
});
|
|
514
|
+
dataList.forEach((data) => {
|
|
515
|
+
data = this.stringifyDataId(data, 'findWithPaging');
|
|
516
|
+
});
|
|
517
|
+
return dataList;
|
|
450
518
|
}
|
|
451
519
|
/**
|
|
452
520
|
* #MONGOOSE FUNCTION
|
|
@@ -457,19 +525,21 @@ class DynamoNTS_DBService {
|
|
|
457
525
|
* @param update update
|
|
458
526
|
* @returns data
|
|
459
527
|
*/
|
|
460
|
-
findByIdAndUpdate(id, update, issuer) {
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
528
|
+
async findByIdAndUpdate(id, update, issuer) {
|
|
529
|
+
update.__lastModified = new Date();
|
|
530
|
+
update.__lastModifiedBy = issuer;
|
|
531
|
+
let newData = await this.dataModel.findByIdAndUpdate(id, update).then(res => {
|
|
532
|
+
return res?.toObject() ?? null;
|
|
533
|
+
}).catch(error => {
|
|
534
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
535
|
+
...this._getDefaultErrorSettings('findByIdAndUpdate', error, issuer),
|
|
536
|
+
errorCode: 'NTS-DBS-FIU0',
|
|
537
|
+
message: `findByIdAndUpdate ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
538
|
+
issuer,
|
|
469
539
|
});
|
|
470
|
-
newData = this.stringifyDataId(newData, 'findByIdAndUpdate');
|
|
471
|
-
return newData;
|
|
472
540
|
});
|
|
541
|
+
newData = this.stringifyDataId(newData, 'findByIdAndUpdate');
|
|
542
|
+
return newData;
|
|
473
543
|
}
|
|
474
544
|
/**
|
|
475
545
|
* #MONGOOSE FUNCTION
|
|
@@ -523,12 +593,15 @@ class DynamoNTS_DBService {
|
|
|
523
593
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
524
594
|
* //
|
|
525
595
|
*/
|
|
526
|
-
updateOne(filterBy, update, issuer) {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
596
|
+
async updateOne(filterBy, update, issuer) {
|
|
597
|
+
update.__lastModified = new Date();
|
|
598
|
+
update.__lastModifiedBy = issuer;
|
|
599
|
+
await this.dataModel.updateOne(filterBy, update).catch(error => {
|
|
600
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
601
|
+
...this._getDefaultErrorSettings('updateOne', error, issuer),
|
|
602
|
+
errorCode: 'NTS-DBS-UO0',
|
|
603
|
+
message: `updateOne ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
604
|
+
issuer,
|
|
532
605
|
});
|
|
533
606
|
});
|
|
534
607
|
}
|
|
@@ -583,12 +656,15 @@ class DynamoNTS_DBService {
|
|
|
583
656
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
584
657
|
* //
|
|
585
658
|
*/
|
|
586
|
-
updateMany(filterBy, update, issuer) {
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
659
|
+
async updateMany(filterBy, update, issuer) {
|
|
660
|
+
update.__lastModified = new Date();
|
|
661
|
+
update.__lastModifiedBy = issuer;
|
|
662
|
+
await this.dataModel.updateMany(filterBy, update).catch(error => {
|
|
663
|
+
throw new fsm_dynamo_1.Dynamo_Error({
|
|
664
|
+
...this._getDefaultErrorSettings('updateMany', error, issuer),
|
|
665
|
+
errorCode: 'NTS-DBS-UM0',
|
|
666
|
+
message: `updateMany ${this.dataParams.dbName} was unsuccessful (NTS DB)`,
|
|
667
|
+
issuer,
|
|
592
668
|
});
|
|
593
669
|
});
|
|
594
670
|
}
|
|
@@ -597,7 +673,7 @@ class DynamoNTS_DBService {
|
|
|
597
673
|
// ----------------------------------------------------------------------------------
|
|
598
674
|
// PRIVATE FUNCTIONS
|
|
599
675
|
stringifyDataId(data, fnName) {
|
|
600
|
-
if (
|
|
676
|
+
if (data?._id && (typeof data._id !== 'string' || typeof data._id === 'object')) {
|
|
601
677
|
data._id = `${data._id}`;
|
|
602
678
|
if (typeof data._id !== 'string' || typeof data._id === 'object') {
|
|
603
679
|
data = JSON.parse(JSON.stringify(data));
|
|
@@ -609,10 +685,9 @@ class DynamoNTS_DBService {
|
|
|
609
685
|
return data;
|
|
610
686
|
}
|
|
611
687
|
_getDefaultErrorSettings(fnName, error, issuer) {
|
|
612
|
-
var _a, _b;
|
|
613
688
|
return {
|
|
614
|
-
status:
|
|
615
|
-
message:
|
|
689
|
+
status: error?.___status ?? 500,
|
|
690
|
+
message: error?.message ?? `${fnName} was UNSUCCESFUL (NTS-DB)`,
|
|
616
691
|
addECToUserMsg: true,
|
|
617
692
|
userMessage: this.defaultErrorUserMsg,
|
|
618
693
|
issuer: issuer,
|
|
@@ -647,9 +722,8 @@ class DynamoNTS_DBService {
|
|
|
647
722
|
params = this.dataParams.modelParams;
|
|
648
723
|
}
|
|
649
724
|
params.forEach((property) => {
|
|
650
|
-
var _a;
|
|
651
725
|
const beType = this.getBEType(property.type);
|
|
652
|
-
if (beType !== Object || !
|
|
726
|
+
if (beType !== Object || !property?.subObjectParams || property?.subObjectParams?.length == 0) {
|
|
653
727
|
schemaSettingsObj[property.key] = {
|
|
654
728
|
type: beType
|
|
655
729
|
};
|