@izara_project/izara-core-library-asynchronous-flow 1.0.11 → 1.0.12

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/index.js CHANGED
@@ -39,7 +39,7 @@ module.exports = {
39
39
  findPendingStepIdsAwaitingStep: asyncFlowSharedLib.findPendingStepIdsAwaitingStep,
40
40
  findPendingStepsAwaitingStep: asyncFlowSharedLib.findPendingStepsAwaitingStep,
41
41
  findPendingStepAwaitingStep: asyncFlowSharedLib.findPendingStepAwaitingStep,
42
-
42
+ findPendingStepAwaitingStepWithCallingFlow: asyncFlowSharedLib.findPendingStepAwaitingStepWithCallingFlow,
43
43
  // Checking and clearing steps
44
44
  checkAllAwaitingStepsFinished: asyncFlowSharedLib.checkAllAwaitingStepsFinished,
45
45
  clearAllAwaitingSteps: asyncFlowSharedLib.clearAllAwaitingSteps,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@izara_project/izara-core-library-asynchronous-flow",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "Shared asynchronous flow logic",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -101,15 +101,11 @@ function createFieldNameStatus(prefix = 'cache') {
101
101
  async function createAwaitingMultipleStepsWithAdditionalAttributes(
102
102
  _izContext,
103
103
  records, // array of object including properties: awaitingStepId / (optional) additionalAttributes
104
- pendingStepId,
105
- tableName = "AwaitingMultipleSteps",
106
- byPendingTableName = "AwaitingMultipleStepByPending"
104
+ pendingStepId
107
105
  ) {
108
106
  _izContext.logger.debug("Lib:createAwaitingMultipleStepsWithAdditionalAttributes", {
109
107
  records: records,
110
- pendingStepId: pendingStepId,
111
- tableName: tableName,
112
- byPendingTableName: byPendingTableName
108
+ pendingStepId: pendingStepId
113
109
  });
114
110
  let promiseArray = []
115
111
 
@@ -125,14 +121,14 @@ async function createAwaitingMultipleStepsWithAdditionalAttributes(
125
121
  promiseArray.push(
126
122
  dynamodbSharedLib.putItem(
127
123
  _izContext,
128
- await dynamodbSharedLib.tableName(_izContext, tableName),
124
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
129
125
  attributesWhenCreate
130
126
  )
131
127
  );
132
128
  promiseArray.push(
133
129
  dynamodbSharedLib.putItem(
134
130
  _izContext,
135
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
131
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
136
132
  {
137
133
  pendingStepId: pendingStepId,
138
134
  awaitingStepId: record.awaitingStepId,
@@ -149,15 +145,11 @@ async function createAwaitingMultipleStepsWithAdditionalAttributes(
149
145
  async function createAwaitingMultipleSteps(
150
146
  _izContext,
151
147
  records, // array of awaitingStepIds
152
- pendingStepId,
153
- tableName = "AwaitingMultipleSteps",
154
- byPendingTableName = "AwaitingMultipleStepByPending"
148
+ pendingStepId
155
149
  ) {
156
150
  _izContext.logger.debug("Lib:createAwaitingMultipleSteps", {
157
151
  records: records,
158
- pendingStepId: pendingStepId,
159
- tableName: tableName,
160
- byPendingTableName: byPendingTableName
152
+ pendingStepId: pendingStepId
161
153
  });
162
154
 
163
155
  // // 0001 ORG.
@@ -174,7 +166,7 @@ async function createAwaitingMultipleSteps(
174
166
  promiseArray.push(
175
167
  dynamodbSharedLib.putItem(
176
168
  _izContext,
177
- await dynamodbSharedLib.tableName(_izContext, tableName),
169
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
178
170
  attributesWhenCreate
179
171
  )
180
172
  );
@@ -184,7 +176,7 @@ async function createAwaitingMultipleSteps(
184
176
  promiseArray.push(
185
177
  dynamodbSharedLib.putItem(
186
178
  _izContext,
187
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
179
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
188
180
  attributesWhenCreate
189
181
  )
190
182
  );
@@ -205,9 +197,15 @@ async function createAwaitingStep(
205
197
  _izContext,
206
198
  awaitingStepId,
207
199
  pendingStepId,
208
- tableName = "AwaitingStep",
209
- additionalAttributes = {} // save in top level
200
+ additionalAttributes = {}, // save in top level
201
+ callingFlowConfig = {} // optional
210
202
  ) {
203
+ console.log("ssss", {
204
+ awaitingStepId,
205
+ pendingStepId,
206
+ additionalAttributes,
207
+ callingFlowConfig
208
+ });
211
209
 
212
210
  let attributesWhenCreate = {
213
211
  awaitingStepId: awaitingStepId,
@@ -217,12 +215,16 @@ async function createAwaitingStep(
217
215
  }
218
216
  // loop if not empty
219
217
  for (let additionalAttribute in additionalAttributes) {
220
- attributesWhenCreate[additionalAttribute] = additionalAttributes[additionalAttribute]
218
+ attributesWhenCreate[additionalAttribute] = additionalAttributes[additionalAttribute] // each additionalAttributes
221
219
  }
220
+ if (Object.keys(callingFlowConfig).length > 0) {
221
+ Object.assign(attributesWhenCreate, { callingFlowConfig })
222
+ };
222
223
 
224
+ console.log("000");
223
225
  await dynamodbSharedLib.putItem(
224
226
  _izContext,
225
- await dynamodbSharedLib.tableName(_izContext, tableName),
227
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
226
228
  attributesWhenCreate
227
229
  );
228
230
  }
@@ -232,15 +234,14 @@ async function createAwaitingStep(
232
234
 
233
235
  async function findPendingStepIdsAwaitingStep(
234
236
  _izContext,
235
- awaitingStepId,
236
- tableName = "AwaitingStep"
237
+ awaitingStepId
237
238
  ) {
238
239
 
239
240
  let pendingStepIds = [];
240
241
 
241
242
  let listPendingStepIds = await dynamodbSharedLib.query(
242
243
  _izContext,
243
- await dynamodbSharedLib.tableName(_izContext, tableName),
244
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
244
245
  {
245
246
  awaitingStepId: awaitingStepId
246
247
  }
@@ -255,13 +256,12 @@ async function findPendingStepIdsAwaitingStep(
255
256
 
256
257
  async function findPendingStepsAwaitingStep(
257
258
  _izContext,
258
- awaitingStepId,
259
- tableName = "AwaitingStep"
259
+ awaitingStepId
260
260
  ) {
261
261
 
262
262
  let listPendingSteps = await dynamodbSharedLib.query(
263
263
  _izContext,
264
- await dynamodbSharedLib.tableName(_izContext, tableName),
264
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
265
265
  {
266
266
  awaitingStepId: awaitingStepId
267
267
  }
@@ -271,35 +271,58 @@ async function findPendingStepsAwaitingStep(
271
271
  }
272
272
  async function findPendingStepAwaitingStep(
273
273
  _izContext,
274
- awaitingStepId,
275
- tableName = "AwaitingStep"
274
+ awaitingStepId
276
275
  ) {
277
276
 
278
277
  let listPendingSteps = await dynamodbSharedLib.query(
279
278
  _izContext,
280
- await dynamodbSharedLib.tableName(_izContext, tableName),
279
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
281
280
  {
282
281
  awaitingStepId: awaitingStepId
283
282
  }
284
283
  );
285
284
  _izContext.logger.debug("Record of awaitingStepId", listPendingSteps)
286
285
 
287
- if (listPendingSteps.length !== 1) {
286
+ if (listPendingSteps.Items.length !== 1) {
288
287
  throw new NoRetryError("listPendingSteps not equals 1")
289
288
  }
290
289
 
290
+
291
291
  return listPendingSteps.Items[0];
292
292
  }
293
293
 
294
+ // for get callingFlow save in awaitingStpe and remove property callingFlow in awaitingStpe
295
+ async function findPendingStepAwaitingStepWithCallingFlow(
296
+ _izContext,
297
+ awaitingStepId,
298
+ ) {
299
+ _izContext.logger.debug("findPendingStepAwaitingStepWithCallingFlow:::", awaitingStepId)
294
300
 
301
+ let callingFlowConfig = null;
302
+ let awaitingStep = await findPendingStepAwaitingStep(
303
+ _izContext,
304
+ awaitingStepId
305
+ );
306
+ _izContext.logger.debug("awaitingStep:::", awaitingStep)
307
+ // callingFlowConfig.
308
+
309
+ // cleaning object awaitingStep not have callingFlowComfig after return.
310
+ if (awaitingStep.hasOwnProperty("callingFlowConfig")) {
311
+ callingFlowConfig = awaitingStep.callingFlowConfig
312
+ delete awaitingStep.callingFlowConfig
313
+ console.log("after delete awaitingStep", awaitingStep);
314
+ };
315
+
316
+ return [awaitingStep, callingFlowConfig]
317
+ }
295
318
 
296
319
  async function checkAllAwaitingStepsFinished(
297
320
  _izContext,
298
321
  pendingStepId,
299
322
  currentAwaitingStepId = null,
300
323
  errorsFound = [],
301
- tableName = 'AwaitingMultipleSteps',
302
- byPendingTableName = "AwaitingMultipleStepByPending"
324
+ // tableName = 'AwaitingMultipleSteps',
325
+ // byPendingTableName = "AwaitingMultipleStepByPending"
303
326
  // indexName = ''
304
327
  ) {
305
328
 
@@ -307,9 +330,7 @@ async function checkAllAwaitingStepsFinished(
307
330
  _izContext,
308
331
  pendingStepId,
309
332
  currentAwaitingStepId,
310
- errorsFound,
311
- tableName,
312
- byPendingTableName
333
+ errorsFound
313
334
  );
314
335
  return remaining;
315
336
  }
@@ -320,16 +341,11 @@ async function checkAllAwaitingStepsFinishedWithError(
320
341
  _izContext,
321
342
  pendingStepId,
322
343
  currentAwaitingStepId = null,
323
- errorsFound = [],
324
- tableName = 'AwaitingMultipleSteps',
325
- byPendingTableName = "AwaitingMultipleStepByPending"
326
- // indexName = ''
344
+ errorsFound = []
327
345
  ) {
328
346
  _izContext.logger.debug("Lib:checkAllAwaitingStepsFinishedWithError", {
329
347
  pendingStepId: pendingStepId,
330
- currentAwaitingStepId: currentAwaitingStepId,
331
- tableName: tableName,
332
- byPendingTableName: byPendingTableName
348
+ currentAwaitingStepId: currentAwaitingStepId
333
349
  });
334
350
 
335
351
  if (currentAwaitingStepId) {
@@ -350,7 +366,7 @@ async function checkAllAwaitingStepsFinishedWithError(
350
366
  _izContext.logger.debug(`---- update ${byPendingTableName} table ----`);
351
367
  await dynamodbSharedLib.updateItem(
352
368
  _izContext,
353
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
369
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
354
370
  {
355
371
  pendingStepId: pendingStepId,
356
372
  awaitingStepId: currentAwaitingStepId
@@ -364,7 +380,7 @@ async function checkAllAwaitingStepsFinishedWithError(
364
380
  }
365
381
  let listPendingStepIds = await dynamodbSharedLib.query(
366
382
  _izContext,
367
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
383
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
368
384
  {
369
385
  pendingStepId: pendingStepId
370
386
  },
@@ -437,29 +453,24 @@ async function checkAllAwaitingStepsFinishedWithError(
437
453
 
438
454
  async function clearAllAwaitingSteps(
439
455
  _izContext,
440
- pendingStepId,
441
- tableName = 'AwaitingMultipleSteps',
442
- byPendingTableName = "AwaitingMultipleStepByPending"
456
+ pendingStepId
443
457
  ) {
444
458
  _izContext.logger.debug("Lib:clearAllAwaitingSteps", {
445
- pendingStepId: pendingStepId,
446
- tableName: tableName,
447
- byPendingTableName: byPendingTableName
459
+ pendingStepId: pendingStepId
448
460
  })
449
461
 
450
- tableName = await dynamodbSharedLib.tableName(_izContext, tableName)
462
+ tableName = await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps")
451
463
 
452
464
  // ----- query items from GSI table
453
465
  let listPendingStepIds = await dynamodbSharedLib.query(
454
466
  _izContext,
455
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
467
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
456
468
  {
457
469
  pendingStepId: pendingStepId
458
470
  },
459
471
  );
460
472
  _izContext.logger.debug('listPendingStepIds', listPendingStepIds);
461
473
 
462
-
463
474
  let promiseArray = []
464
475
 
465
476
  for (let idx = 0; idx < listPendingStepIds.Items.length; idx++) {
@@ -474,14 +485,14 @@ async function clearAllAwaitingSteps(
474
485
  promiseArray.push(
475
486
  dynamodbSharedLib.deleteItem(
476
487
  _izContext,
477
- tableName,
488
+ "AwaitingMultipleSteps",
478
489
  keyValues
479
490
  ));
480
491
  _izContext.logger.debug(`delete item in dynamodb AwaitingMultipleStepByPending ==> awaitingStepId:${keyValues.awaitingStepId}`)
481
492
  promiseArray.push(
482
493
  dynamodbSharedLib.deleteItem(
483
494
  _izContext,
484
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
495
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
485
496
  keyValues
486
497
  ));
487
498
 
@@ -496,13 +507,12 @@ async function clearAllAwaitingSteps(
496
507
  async function removeAwaitingStep(
497
508
  _izContext,
498
509
  awaitingStepId,
499
- pendingStepId,
500
- tableName = "AwaitingStep"
510
+ pendingStepId
501
511
  ) {
502
512
 
503
513
  await dynamodbSharedLib.deleteItem(
504
514
  _izContext,
505
- await dynamodbSharedLib.tableName(_izContext, tableName),
515
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
506
516
  {
507
517
  awaitingStepId: awaitingStepId,
508
518
  pendingStepId: pendingStepId
@@ -514,15 +524,11 @@ async function removeAwaitingMultipleStep(
514
524
  _izContext,
515
525
  awaitingStepId,
516
526
  pendingStepId,
517
- errorsFound = [],
518
- tableName = "AwaitingMultipleSteps",
519
- byPendingTableName = "AwaitingMultipleStepByPending"
527
+ errorsFound = []
520
528
  ) {
521
529
  _izContext.logger.debug("Lib:removeAwaitingMultipleStep", {
522
530
  awaitingStepId: awaitingStepId,
523
- pendingStepId: pendingStepId,
524
- tableName: tableName,
525
- byPendingTableName: byPendingTableName
531
+ pendingStepId: pendingStepId
526
532
  })
527
533
 
528
534
  let promiseArray = []
@@ -546,7 +552,7 @@ async function removeAwaitingMultipleStep(
546
552
  promiseArray.push(
547
553
  dynamodbSharedLib.deleteItem(
548
554
  _izContext,
549
- await dynamodbSharedLib.tableName(_izContext, tableName),
555
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
550
556
  keyValues
551
557
  ));
552
558
  if (errorsFound.length == 0) {
@@ -554,7 +560,7 @@ async function removeAwaitingMultipleStep(
554
560
  promiseArray.push(
555
561
  dynamodbSharedLib.deleteItem(
556
562
  _izContext,
557
- await dynamodbSharedLib.tableName(_izContext, byPendingTableName),
563
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
558
564
  keyValuesForByPending
559
565
  ));
560
566
  }
@@ -568,8 +574,7 @@ async function removeAwaitingStepWithCheckUniqueRequestId(
568
574
  awaitingStepId,
569
575
  pendingStepId,
570
576
  checkUniqueRequestId,
571
- prefix = "",
572
- tableName = "AwaitingStep"
577
+ prefix = ""
573
578
  ) {
574
579
 
575
580
  // if logicalElements add queryElements.logicalElements
@@ -590,7 +595,7 @@ async function removeAwaitingStepWithCheckUniqueRequestId(
590
595
 
591
596
  await dynamodbSharedLib.deleteItem(
592
597
  _izContext,
593
- await dynamodbSharedLib.tableName(_izContext, tableName),
598
+ await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
594
599
  {
595
600
  awaitingStepId: awaitingStepId,
596
601
  pendingStepId: pendingStepId
@@ -966,6 +971,7 @@ module.exports = {
966
971
  findPendingStepIdsAwaitingStep,
967
972
  findPendingStepAwaitingStep,
968
973
  findPendingStepsAwaitingStep,
974
+ findPendingStepAwaitingStepWithCallingFlow,
969
975
  removeAwaitingStep,
970
976
  removeAwaitingStepWithCheckUniqueRequestId,
971
977