@futdevpro/nts-dynamo 1.6.59 → 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/_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.js +10 -9
- 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.js +370 -295
- package/lib/_services/base/data.service.js.map +1 -1
- package/lib/_services/base/db.service.js +315 -246
- 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.js +38 -40
- 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.js +404 -412
- 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/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,39 +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
|
-
|
|
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)`,
|
|
160
191
|
});
|
|
161
|
-
return dataList;
|
|
162
192
|
});
|
|
193
|
+
dataList.forEach((data) => {
|
|
194
|
+
data = this.stringifyDataId(data, 'getDataListByDependencyId');
|
|
195
|
+
});
|
|
196
|
+
return dataList;
|
|
163
197
|
}
|
|
164
|
-
getDatasByDependencyIds(dependencyIds) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
var _a;
|
|
171
|
-
return (_a = res) !== null && _a !== void 0 ? _a : [];
|
|
172
|
-
}).catch(error => {
|
|
173
|
-
throw new fsm_dynamo_1.Dynamo_Error(Object.assign(Object.assign({}, this._getDefaultErrorSettings('getDatasByDependencyIds', error)), { errorCode: 'NTS-DBS-GLDS1', message: `get ${this.dataParams.dbName} by ${this.depDataName} was unsuccessful (NTS DB)` }));
|
|
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',
|
|
174
204
|
});
|
|
175
|
-
|
|
176
|
-
|
|
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)`,
|
|
177
213
|
});
|
|
178
|
-
return dataList;
|
|
179
214
|
});
|
|
215
|
+
dataList.forEach((data) => {
|
|
216
|
+
data = this.stringifyDataId(data, 'getDatasByDependencyIds');
|
|
217
|
+
});
|
|
218
|
+
return dataList;
|
|
180
219
|
}
|
|
181
220
|
/**
|
|
182
221
|
* get multiple data objects by a list of DependencyIDs,
|
|
@@ -185,22 +224,27 @@ class DynamoNTS_DBService {
|
|
|
185
224
|
* @param ids ids
|
|
186
225
|
* @returns dataList
|
|
187
226
|
*/
|
|
188
|
-
getDataListByDependencyIds(ids) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
var _a;
|
|
195
|
-
return (_a = res) !== null && _a !== void 0 ? _a : [];
|
|
196
|
-
}).catch(error => {
|
|
197
|
-
throw new fsm_dynamo_1.Dynamo_Error(Object.assign(Object.assign({}, this._getDefaultErrorSettings('getDataListByDependencyIds', error)), { errorCode: 'NTS-DBS-GLDS1', message: `get ${this.dataParams.dbName}s by ${this.depDataName}s was unsuccessful (NTS DB)` }));
|
|
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',
|
|
198
233
|
});
|
|
199
|
-
|
|
200
|
-
|
|
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)`,
|
|
201
242
|
});
|
|
202
|
-
return dataList;
|
|
203
243
|
});
|
|
244
|
+
dataList.forEach((data) => {
|
|
245
|
+
data = this.stringifyDataId(data, 'getDataListByDependencyIds');
|
|
246
|
+
});
|
|
247
|
+
return dataList;
|
|
204
248
|
}
|
|
205
249
|
/**
|
|
206
250
|
* returns all data from database,
|
|
@@ -208,29 +252,32 @@ class DynamoNTS_DBService {
|
|
|
208
252
|
*
|
|
209
253
|
* @returns dataList
|
|
210
254
|
*/
|
|
211
|
-
getAll() {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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)`,
|
|
219
264
|
});
|
|
220
|
-
dataList.forEach((data) => {
|
|
221
|
-
data = this.stringifyDataId(data, 'getAll');
|
|
222
|
-
});
|
|
223
|
-
return dataList;
|
|
224
265
|
});
|
|
266
|
+
dataList.forEach((data) => {
|
|
267
|
+
data = this.stringifyDataId(data, 'getAll');
|
|
268
|
+
});
|
|
269
|
+
return dataList;
|
|
225
270
|
}
|
|
226
271
|
/**
|
|
227
272
|
* deleted data by id
|
|
228
273
|
* @param id id
|
|
229
274
|
*/
|
|
230
|
-
deleteDataById(id) {
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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)`,
|
|
234
281
|
});
|
|
235
282
|
});
|
|
236
283
|
}
|
|
@@ -238,13 +285,19 @@ class DynamoNTS_DBService {
|
|
|
238
285
|
* deleted data by id
|
|
239
286
|
* @param dependencyId id
|
|
240
287
|
*/
|
|
241
|
-
deleteDataByDependencyId(dependencyId) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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)`,
|
|
248
301
|
});
|
|
249
302
|
});
|
|
250
303
|
}
|
|
@@ -256,69 +309,75 @@ class DynamoNTS_DBService {
|
|
|
256
309
|
* @param narrowByDependencyIds id
|
|
257
310
|
* @returns dataList
|
|
258
311
|
*/
|
|
259
|
-
searchData(filterBy, narrowByDependencyIds) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
if (
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
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
|
+
});
|
|
267
321
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
else {
|
|
284
|
-
if (filterBy[modelParam.key] !== null &&
|
|
285
|
-
filterBy[modelParam.key] !== undefined) {
|
|
286
|
-
filter[modelParam.key] = { $in: filterBy[modelParam.key] };
|
|
287
|
-
}
|
|
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
|
+
};
|
|
288
337
|
}
|
|
289
338
|
}
|
|
290
339
|
else {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
filter[modelParam.key] = {};
|
|
295
|
-
if (filterBy[modelParam.key + 'Range'].from) {
|
|
296
|
-
filter[modelParam.key].$gte = filterBy[modelParam.key + 'Range'].from;
|
|
297
|
-
}
|
|
298
|
-
if (filterBy[modelParam.key + 'Range'].to) {
|
|
299
|
-
filter[modelParam.key].$lte = filterBy[modelParam.key + 'Range'].to;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
340
|
+
if (filterBy[modelParam.key] !== null &&
|
|
341
|
+
filterBy[modelParam.key] !== undefined) {
|
|
342
|
+
filter[modelParam.key] = { $in: filterBy[modelParam.key] };
|
|
302
343
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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;
|
|
306
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] };
|
|
307
362
|
}
|
|
308
363
|
}
|
|
309
364
|
}
|
|
365
|
+
}
|
|
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)`,
|
|
310
375
|
});
|
|
311
|
-
let dataList = yield this.dataModel
|
|
312
|
-
.find(filter)
|
|
313
|
-
.then(res => res !== null && res !== void 0 ? res : [])
|
|
314
|
-
.catch(error => {
|
|
315
|
-
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)` }));
|
|
316
|
-
});
|
|
317
|
-
dataList.forEach((data) => {
|
|
318
|
-
data = this.stringifyDataId(data, 'searchData');
|
|
319
|
-
});
|
|
320
|
-
return dataList;
|
|
321
376
|
});
|
|
377
|
+
dataList.forEach((data) => {
|
|
378
|
+
data = this.stringifyDataId(data, 'searchData');
|
|
379
|
+
});
|
|
380
|
+
return dataList;
|
|
322
381
|
}
|
|
323
382
|
// ----------------------------------------------------------------------------------
|
|
324
383
|
// ----------------------------------------------------------------------------------
|
|
@@ -350,17 +409,18 @@ class DynamoNTS_DBService {
|
|
|
350
409
|
* //
|
|
351
410
|
* @returns {T} data: T
|
|
352
411
|
*/
|
|
353
|
-
findOne(filterBy) {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
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}`,
|
|
360
420
|
});
|
|
361
|
-
data = this.stringifyDataId(data, 'findOne');
|
|
362
|
-
return data;
|
|
363
421
|
});
|
|
422
|
+
data = this.stringifyDataId(data, 'findOne');
|
|
423
|
+
return data;
|
|
364
424
|
}
|
|
365
425
|
/**
|
|
366
426
|
* #MONGOOSE FUNCTION
|
|
@@ -389,20 +449,21 @@ class DynamoNTS_DBService {
|
|
|
389
449
|
* //
|
|
390
450
|
* @returns {T[]} dataList: T[]
|
|
391
451
|
*/
|
|
392
|
-
find(filterBy) {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
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)`,
|
|
400
461
|
});
|
|
401
|
-
dataList.forEach((data) => {
|
|
402
|
-
data = this.stringifyDataId(data, 'find');
|
|
403
|
-
});
|
|
404
|
-
return dataList;
|
|
405
462
|
});
|
|
463
|
+
dataList.forEach((data) => {
|
|
464
|
+
data = this.stringifyDataId(data, 'find');
|
|
465
|
+
});
|
|
466
|
+
return dataList;
|
|
406
467
|
}
|
|
407
468
|
/**
|
|
408
469
|
* #MONGOOSE FUNCTION
|
|
@@ -437,21 +498,23 @@ class DynamoNTS_DBService {
|
|
|
437
498
|
* //
|
|
438
499
|
* @returns {T[]} dataList: T[]
|
|
439
500
|
*/
|
|
440
|
-
findWithPaging(filterBy, page, pageSize, sort) {
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
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)`,
|
|
449
512
|
});
|
|
450
|
-
dataList.forEach((data) => {
|
|
451
|
-
data = this.stringifyDataId(data, 'findWithPaging');
|
|
452
|
-
});
|
|
453
|
-
return dataList;
|
|
454
513
|
});
|
|
514
|
+
dataList.forEach((data) => {
|
|
515
|
+
data = this.stringifyDataId(data, 'findWithPaging');
|
|
516
|
+
});
|
|
517
|
+
return dataList;
|
|
455
518
|
}
|
|
456
519
|
/**
|
|
457
520
|
* #MONGOOSE FUNCTION
|
|
@@ -462,19 +525,21 @@ class DynamoNTS_DBService {
|
|
|
462
525
|
* @param update update
|
|
463
526
|
* @returns data
|
|
464
527
|
*/
|
|
465
|
-
findByIdAndUpdate(id, update, issuer) {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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,
|
|
474
539
|
});
|
|
475
|
-
newData = this.stringifyDataId(newData, 'findByIdAndUpdate');
|
|
476
|
-
return newData;
|
|
477
540
|
});
|
|
541
|
+
newData = this.stringifyDataId(newData, 'findByIdAndUpdate');
|
|
542
|
+
return newData;
|
|
478
543
|
}
|
|
479
544
|
/**
|
|
480
545
|
* #MONGOOSE FUNCTION
|
|
@@ -528,12 +593,15 @@ class DynamoNTS_DBService {
|
|
|
528
593
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
529
594
|
* //
|
|
530
595
|
*/
|
|
531
|
-
updateOne(filterBy, update, issuer) {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
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,
|
|
537
605
|
});
|
|
538
606
|
});
|
|
539
607
|
}
|
|
@@ -588,12 +656,15 @@ class DynamoNTS_DBService {
|
|
|
588
656
|
* $unset: // Removes the specified field from a document. (set: "" to value)
|
|
589
657
|
* //
|
|
590
658
|
*/
|
|
591
|
-
updateMany(filterBy, update, issuer) {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
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,
|
|
597
668
|
});
|
|
598
669
|
});
|
|
599
670
|
}
|
|
@@ -602,7 +673,7 @@ class DynamoNTS_DBService {
|
|
|
602
673
|
// ----------------------------------------------------------------------------------
|
|
603
674
|
// PRIVATE FUNCTIONS
|
|
604
675
|
stringifyDataId(data, fnName) {
|
|
605
|
-
if (
|
|
676
|
+
if (data?._id && (typeof data._id !== 'string' || typeof data._id === 'object')) {
|
|
606
677
|
data._id = `${data._id}`;
|
|
607
678
|
if (typeof data._id !== 'string' || typeof data._id === 'object') {
|
|
608
679
|
data = JSON.parse(JSON.stringify(data));
|
|
@@ -614,10 +685,9 @@ class DynamoNTS_DBService {
|
|
|
614
685
|
return data;
|
|
615
686
|
}
|
|
616
687
|
_getDefaultErrorSettings(fnName, error, issuer) {
|
|
617
|
-
var _a, _b;
|
|
618
688
|
return {
|
|
619
|
-
status:
|
|
620
|
-
message:
|
|
689
|
+
status: error?.___status ?? 500,
|
|
690
|
+
message: error?.message ?? `${fnName} was UNSUCCESFUL (NTS-DB)`,
|
|
621
691
|
addECToUserMsg: true,
|
|
622
692
|
userMessage: this.defaultErrorUserMsg,
|
|
623
693
|
issuer: issuer,
|
|
@@ -652,9 +722,8 @@ class DynamoNTS_DBService {
|
|
|
652
722
|
params = this.dataParams.modelParams;
|
|
653
723
|
}
|
|
654
724
|
params.forEach((property) => {
|
|
655
|
-
var _a;
|
|
656
725
|
const beType = this.getBEType(property.type);
|
|
657
|
-
if (beType !== Object || !
|
|
726
|
+
if (beType !== Object || !property?.subObjectParams || property?.subObjectParams?.length == 0) {
|
|
658
727
|
schemaSettingsObj[property.key] = {
|
|
659
728
|
type: beType
|
|
660
729
|
};
|