@futdevpro/nts-dynamo 1.5.51 → 1.5.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/_models/dynamo-nts-endpoint-params.js +3 -2
  2. package/lib/_models/dynamo-nts-endpoint-params.js.map +1 -1
  3. package/lib/_services/dynamo-nts-app-extended.d.ts +87 -7
  4. package/lib/_services/dynamo-nts-app-extended.d.ts.map +1 -1
  5. package/lib/_services/dynamo-nts-app-extended.js +87 -7
  6. package/lib/_services/dynamo-nts-app-extended.js.map +1 -1
  7. package/lib/_services/dynamo-nts-app.d.ts +131 -22
  8. package/lib/_services/dynamo-nts-app.d.ts.map +1 -1
  9. package/lib/_services/dynamo-nts-app.js +104 -1
  10. package/lib/_services/dynamo-nts-app.js.map +1 -1
  11. package/lib/_services/dynamo-nts-auth.service.d.ts +78 -5
  12. package/lib/_services/dynamo-nts-auth.service.d.ts.map +1 -1
  13. package/lib/_services/dynamo-nts-auth.service.js.map +1 -1
  14. package/lib/_services/dynamo-nts-data.service.d.ts +23 -1
  15. package/lib/_services/dynamo-nts-data.service.d.ts.map +1 -1
  16. package/lib/_services/dynamo-nts-data.service.js +73 -53
  17. package/lib/_services/dynamo-nts-data.service.js.map +1 -1
  18. package/lib/_services/dynamo-nts-db.service.d.ts +164 -119
  19. package/lib/_services/dynamo-nts-db.service.d.ts.map +1 -1
  20. package/lib/_services/dynamo-nts-db.service.js +327 -277
  21. package/lib/_services/dynamo-nts-db.service.js.map +1 -1
  22. package/lib/_services/dynamo-nts-routing-module.service.d.ts +39 -0
  23. package/lib/_services/dynamo-nts-routing-module.service.d.ts.map +1 -1
  24. package/lib/_services/dynamo-nts-routing-module.service.js +39 -0
  25. package/lib/_services/dynamo-nts-routing-module.service.js.map +1 -1
  26. package/lib/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +15 -12
  28. package/src/_models/dynamo-nts-endpoint-params.ts +2 -2
  29. package/src/_services/dynamo-nts-app-extended.ts +87 -7
  30. package/src/_services/dynamo-nts-app.ts +131 -22
  31. package/src/_services/dynamo-nts-auth.service.ts +79 -5
  32. package/src/_services/dynamo-nts-data.service.ts +74 -54
  33. package/src/_services/dynamo-nts-db.service.ts +355 -281
  34. package/src/_services/dynamo-nts-routing-module.service.ts +39 -0
@@ -31,6 +31,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
31
31
 
32
32
  depKey?: string;
33
33
  depDBServiceKey?: string;
34
+ private depDataDBService: DynamoNTS_DBService<any>;
34
35
 
35
36
  // dataModelParams?: DynamoBEDataPropertyParams[] = [];
36
37
  dataParams: DynamoNTS_DataParams;
@@ -56,15 +57,13 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
56
57
  */
57
58
  async getAll(): Promise<void> {
58
59
  try {
59
- await this.dataDBService.getAll().then((dataList: T[]) => {
60
- this.dataList = dataList;
61
- });
60
+ this.dataList = await this.dataDBService.getAll();
62
61
  } catch (error) {
63
62
  throw new Dynamo_Error({
64
63
  status: 417,
65
64
  errorCode: 'NTS-DS0-GA0',
66
65
  addECToUserMsg: true,
67
- message: 'getAll was unsuccessful',
66
+ message: `getAll was unsuccessful (${this.dataParams.dataName})`,
68
67
  userMessage: this.defaultErrorUserMsg,
69
68
  error: error
70
69
  });
@@ -72,25 +71,34 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
72
71
  }
73
72
 
74
73
  /**
74
+ * @description
75
75
  * returns data from database by id
76
+ * also if dontSetToService is false or not setted,
77
+ * the data will be saved to the service
78
+ *
79
+ * @remarks
80
+ * If you need to get-save a data, if possible,
81
+ * use db-service update instead.
82
+ *
83
+ * @param {string} id
84
+ * @param dontSetToService
85
+ *
86
+ * @return {T} data: T
76
87
  */
77
88
  async getDataById(id?: string, dontSetToService?: boolean): Promise<T> {
78
89
  try {
79
90
  if (id || this.data._id) {
80
- let dataExists: T;
81
- await this.dataDBService.getDataById(id ? id : this.data._id).then((data: T) => {
82
- if (!dontSetToService) {
83
- this.data = data;
84
- }
85
- dataExists = data;
86
- });
91
+ let dataExists: T = await this.dataDBService.getDataById(id ? id : this.data._id);
92
+ if (!dontSetToService && dataExists) {
93
+ this.data = dataExists;
94
+ }
87
95
  return dataExists;
88
96
  } else {
89
97
  throw new Dynamo_Error({
90
98
  status: 417,
91
99
  errorCode: 'NTS-DS0-GI1',
92
100
  addECToUserMsg: true,
93
- message: `ID is missing! (maybe you wanted to use getDataByDependencyId instead...)`,
101
+ message: `ID is missing! (maybe you wanted to use getDataByDependencyId() instead...) (${this.dataParams.dataName})`,
94
102
  userMessage: this.defaultErrorUserMsg
95
103
  });
96
104
  }
@@ -99,7 +107,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
99
107
  status: 417,
100
108
  errorCode: 'NTS-DS0-GI0',
101
109
  addECToUserMsg: true,
102
- message: 'getDataById was unsuccessful',
110
+ message: `getDataById was unsuccessful (${this.dataParams.dataName})`,
103
111
  userMessage: this.defaultErrorUserMsg,
104
112
  error: error
105
113
  });
@@ -114,20 +122,17 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
114
122
  try {
115
123
  if (this.depKey) {
116
124
  if (dependencyId || this.data[this.depKey]) {
117
- let dataExists: T;
118
- await this.dataDBService.getDataByDependencyId(dependencyId ? dependencyId : this.data[this.depKey]).then((data: T) => {
119
- if (!dontSetToService) {
120
- this.data = data;
121
- }
122
- dataExists = data;
123
- });
125
+ let dataExists: T = await this.dataDBService.getDataByDependencyId(dependencyId ? dependencyId : this.data[this.depKey]);
126
+ if (!dontSetToService && dataExists) {
127
+ this.data = dataExists;
128
+ }
124
129
  return dataExists;
125
130
  } else {
126
131
  throw new Dynamo_Error({
127
132
  status: 417,
128
133
  errorCode: 'NTS-DS0-GD3',
129
134
  addECToUserMsg: true,
130
- message: `${this.depKey} is missing!`,
135
+ message: `${this.depKey} is missing! (${this.dataParams.dataName})`,
131
136
  userMessage: this.defaultErrorUserMsg
132
137
  });
133
138
  }
@@ -136,7 +141,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
136
141
  status: 417,
137
142
  errorCode: 'NTS-DS0-GD2',
138
143
  addECToUserMsg: true,
139
- message: 'dependencyDataIdKey is missing from service!',
144
+ message: `'dependencyDataIdKey is missing from service! (${this.dataParams.dataName})`,
140
145
  userMessage: this.defaultErrorUserMsg
141
146
  });
142
147
  }
@@ -145,7 +150,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
145
150
  status: 417,
146
151
  errorCode: 'NTS-DS0-GD0',
147
152
  addECToUserMsg: true,
148
- message: 'getDataByDependencyId was unsuccessful',
153
+ message: `getDataByDependencyId was unsuccessful (${this.dataParams.dataName})`,
149
154
  userMessage: this.defaultErrorUserMsg,
150
155
  error: error
151
156
  });
@@ -160,15 +165,13 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
160
165
  try {
161
166
  if (this.depKey) {
162
167
  if (dependencyId || this.data[this.depKey]) {
163
- await this.dataDBService.getDataListByDependencyId(dependencyId ? dependencyId : this.data[this.depKey]).then((data: T[]) => {
164
- this.dataList = data;
165
- });
168
+ this.dataList = await this.dataDBService.getDataListByDependencyId(dependencyId ? dependencyId : this.data[this.depKey]);
166
169
  } else {
167
170
  throw new Dynamo_Error({
168
171
  status: 417,
169
172
  errorCode: 'NTS-DS0-GLD3',
170
173
  addECToUserMsg: true,
171
- message: `${this.depKey} is missing!`,
174
+ message: `${this.depKey} is missing (${this.dataParams.dataName})`,
172
175
  userMessage: this.defaultErrorUserMsg
173
176
  });
174
177
  }
@@ -177,7 +180,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
177
180
  status: 417,
178
181
  errorCode: 'NTS-DS0-GLD2',
179
182
  addECToUserMsg: true,
180
- message: 'dependencyDataIdKey is missing from service!',
183
+ message: `dependencyDataIdKey is missing from service! (${this.dataParams.dataName})`,
181
184
  userMessage: this.defaultErrorUserMsg
182
185
  });
183
186
  }
@@ -186,7 +189,26 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
186
189
  status: 417,
187
190
  errorCode: 'NTS-DS0-GLD0',
188
191
  addECToUserMsg: true,
189
- message: 'getDataListByDependencyId was unsuccessful',
192
+ message: `getDataListByDependencyId was unsuccessful (${this.dataParams.dataName})`,
193
+ userMessage: this.defaultErrorUserMsg,
194
+ error: error
195
+ });
196
+ }
197
+ }
198
+
199
+
200
+ async updateData(set: { updateBy?: any, update: any }): Promise<void> {
201
+ try {
202
+ if (set.updateBy) {
203
+ this.data = await this.dataDBService.updateOne(set.updateBy, set.update, this.issuer);
204
+ }
205
+
206
+ } catch (error) {
207
+ throw new Dynamo_Error({
208
+ status: 417,
209
+ errorCode: 'NTS-DS0-UD0',
210
+ addECToUserMsg: true,
211
+ message: `updateData was unsuccessful (${this.dataParams.dataName})`,
190
212
  userMessage: this.defaultErrorUserMsg,
191
213
  error: error
192
214
  });
@@ -196,24 +218,23 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
196
218
  /**
197
219
  * modifies data if the data have ID and already exists in the DB,
198
220
  * creates new if the ID is not present or cant find in DB,
199
- * and if dependency data setted up, will check before creation
221
+ * and if dependency data setted up, will check before creation,
222
+ * @warning
223
+ * but the proper way to update data, if you use update method instead,
224
+ * this way, you can avoid data override errors
225
+ * (when you simultaneously trying to change the same data's
226
+ * different values from different flows)
200
227
  */
201
228
  async saveData(): Promise<void> {
202
229
  try {
203
230
  if (this.data._id) {
204
231
  // check if already exists
205
- let dataExists: T;
206
- await this.getDataById(null, true).then((data: T) => {
207
- dataExists = data;
208
- }).catch(() => {});
232
+ let dataExists: T = await this.getDataById(null, true).catch(() => null);
209
233
  if (!dataExists) {
210
234
  // if data not exists check that dependency already exists for this
211
235
  if (this.depKey) {
212
236
  if (this.data[this.depKey]) {
213
- let dependencyExists = false;
214
- await this.getDependencyDataDBService().getDataById(this.data[this.depKey]).then((dep) => {
215
- dependencyExists = !!dep;
216
- });
237
+ let dependencyExists = await this.getDependencyDataDBService().getDataById(this.data[this.depKey]);
217
238
  if (!dependencyExists) {
218
239
  throw new Dynamo_Error({
219
240
  status: 417,
@@ -234,20 +255,14 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
234
255
  }
235
256
  }
236
257
  // if data not exists create new data
237
- await this.dataDBService.createData(this.data, this.issuer).then((data: T) => {
238
- this.data = data;
239
- });
258
+ this.data = await this.dataDBService.createData(this.data, this.issuer);
240
259
  } else {
241
260
  // if data exists do modify
242
- await this.dataDBService.modifyData(this.data, this.issuer).then((data: T) => {
243
- this.data = data;
244
- });
261
+ this.data = await this.dataDBService.modifyData(this.data, this.issuer);
245
262
  }
246
263
  } else {
247
264
  // if ID is not present, data not exists, create new data
248
- await this.dataDBService.createData(this.data, this.issuer).then((data: T) => {
249
- this.data = data;
250
- });
265
+ this.data = await this.dataDBService.createData(this.data, this.issuer);
251
266
  }
252
267
  } catch (error) {
253
268
  throw new Dynamo_Error({
@@ -273,7 +288,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
273
288
  status: 417,
274
289
  errorCode: 'NTS-DS0-DD1',
275
290
  addECToUserMsg: true,
276
- message: 'ID is missing!' ,
291
+ message: `ID is missing! (${this.dataParams.dataName})` ,
277
292
  userMessage: this.defaultErrorUserMsg,
278
293
  });
279
294
  }
@@ -282,7 +297,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
282
297
  status: 417,
283
298
  errorCode: 'NTS-DS0-DD0',
284
299
  addECToUserMsg: true,
285
- message: 'deleteData was unsuccessful',
300
+ message: `deleteData was unsuccessful (${this.dataParams.dataName})`,
286
301
  userMessage: this.defaultErrorUserMsg,
287
302
  error: error
288
303
  });
@@ -308,7 +323,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
308
323
  }
309
324
  // specific Date validation
310
325
  if (this.dataParams.modelParams[i].type === 'Date' && !(new Date(this.data[this.dataParams.modelParams[i].key]) instanceof Date)) {
311
- throw new Dynamo_Error({
326
+ throw new Dynamo_Error({
312
327
  status: 422,
313
328
  errorCode: 'NTS-DS0-VD2',
314
329
  addECToUserMsg: true,
@@ -328,7 +343,7 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
328
343
  status: 422,
329
344
  errorCode: 'NTS-DS0-VD0',
330
345
  addECToUserMsg: true,
331
- message: 'validateForSave was unsuccessful',
346
+ message: `validateForSave was unsuccessful (${this.dataParams.dataName})`,
332
347
  userMessage: this.defaultErrorUserMsg,
333
348
  error: error
334
349
  });
@@ -342,8 +357,8 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
342
357
  const dependencyParam: DynamoNTS_DataPropertyParams = this.dataParams.modelParams.find((modelParams: DynamoNTS_DataPropertyParams) => modelParams.isDependencyHook);
343
358
  if (dependencyParam) {
344
359
  this.depKey = dependencyParam.key;
345
- if (dependencyParam.dependencyName) {
346
- this.depDBServiceKey = dependencyParam.dependencyName;
360
+ if (dependencyParam.dependencyDataName) {
361
+ this.depDBServiceKey = dependencyParam.dependencyDataName;
347
362
  }
348
363
  }
349
364
  }
@@ -354,7 +369,12 @@ export class DynamoNTS_DataService<T extends Dynamo_Metadata> {
354
369
  */
355
370
  getDependencyDataDBService(): DynamoNTS_DBService<any> {
356
371
  if (this.depDBServiceKey) {
357
- return DynamoNTS_GlobalService.getDBService(this.dataParams);
372
+ if (this.depDataDBService) {
373
+ return this.depDataDBService;
374
+ } else {
375
+ this.depDataDBService = DynamoNTS_GlobalService.getDBServiceByKey(this.depDBServiceKey);
376
+ return this.depDataDBService;
377
+ }
358
378
  } else {
359
379
  throw new Dynamo_Error({
360
380
  status: 501,