@izara_project/izara-core-library-asynchronous-flow 1.0.11 → 1.0.13
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 +1 -1
- package/package.json +1 -1
- package/src/AsyncFlowSharedLib.js +83 -104
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
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
209
|
-
|
|
200
|
+
additionalAttributes = {}, // save in top level
|
|
201
|
+
callingFlowConfig = {} // optional
|
|
210
202
|
) {
|
|
203
|
+
console.log("Lib createAwaitingStep:", {
|
|
204
|
+
awaitingStepId,
|
|
205
|
+
pendingStepId,
|
|
206
|
+
additionalAttributes,
|
|
207
|
+
callingFlowConfig
|
|
208
|
+
});
|
|
211
209
|
|
|
212
210
|
let attributesWhenCreate = {
|
|
213
211
|
awaitingStepId: awaitingStepId,
|
|
@@ -217,30 +215,30 @@ 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
|
|
|
223
224
|
await dynamodbSharedLib.putItem(
|
|
224
225
|
_izContext,
|
|
225
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
226
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
226
227
|
attributesWhenCreate
|
|
227
228
|
);
|
|
228
229
|
}
|
|
229
230
|
|
|
230
231
|
|
|
231
|
-
|
|
232
|
-
|
|
233
232
|
async function findPendingStepIdsAwaitingStep(
|
|
234
233
|
_izContext,
|
|
235
|
-
awaitingStepId
|
|
236
|
-
tableName = "AwaitingStep"
|
|
234
|
+
awaitingStepId
|
|
237
235
|
) {
|
|
238
236
|
|
|
239
237
|
let pendingStepIds = [];
|
|
240
238
|
|
|
241
239
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
242
240
|
_izContext,
|
|
243
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
241
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
244
242
|
{
|
|
245
243
|
awaitingStepId: awaitingStepId
|
|
246
244
|
}
|
|
@@ -255,61 +253,75 @@ async function findPendingStepIdsAwaitingStep(
|
|
|
255
253
|
|
|
256
254
|
async function findPendingStepsAwaitingStep(
|
|
257
255
|
_izContext,
|
|
258
|
-
awaitingStepId
|
|
259
|
-
tableName = "AwaitingStep"
|
|
256
|
+
awaitingStepId
|
|
260
257
|
) {
|
|
261
258
|
|
|
262
259
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
263
260
|
_izContext,
|
|
264
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
261
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
265
262
|
{
|
|
266
263
|
awaitingStepId: awaitingStepId
|
|
267
264
|
}
|
|
268
265
|
);
|
|
269
|
-
_izContext.logger.debug("Record of awaitingStepId", listPendingSteps)
|
|
266
|
+
_izContext.logger.debug("Record of awaitingStepId", listPendingSteps);
|
|
270
267
|
return listPendingSteps.Items;
|
|
271
268
|
}
|
|
269
|
+
|
|
272
270
|
async function findPendingStepAwaitingStep(
|
|
273
271
|
_izContext,
|
|
274
|
-
awaitingStepId
|
|
275
|
-
tableName = "AwaitingStep"
|
|
272
|
+
awaitingStepId
|
|
276
273
|
) {
|
|
277
274
|
|
|
278
275
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
279
276
|
_izContext,
|
|
280
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
277
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
281
278
|
{
|
|
282
279
|
awaitingStepId: awaitingStepId
|
|
283
280
|
}
|
|
284
281
|
);
|
|
285
282
|
_izContext.logger.debug("Record of awaitingStepId", listPendingSteps)
|
|
286
283
|
|
|
287
|
-
if (listPendingSteps.length !== 1) {
|
|
284
|
+
if (listPendingSteps.Items.length !== 1) {
|
|
288
285
|
throw new NoRetryError("listPendingSteps not equals 1")
|
|
289
|
-
}
|
|
290
|
-
|
|
286
|
+
};
|
|
291
287
|
return listPendingSteps.Items[0];
|
|
292
288
|
}
|
|
293
289
|
|
|
290
|
+
// for get callingFlow save in awaitingStpe and remove property callingFlow in awaitingStpe
|
|
291
|
+
async function findPendingStepAwaitingStepWithCallingFlow(
|
|
292
|
+
_izContext,
|
|
293
|
+
awaitingStepId,
|
|
294
|
+
) {
|
|
294
295
|
|
|
296
|
+
let callingFlowConfig = null;
|
|
297
|
+
let awaitingStep = await findPendingStepAwaitingStep(
|
|
298
|
+
_izContext,
|
|
299
|
+
awaitingStepId
|
|
300
|
+
);
|
|
301
|
+
|
|
302
|
+
// callingFlowConfig.
|
|
303
|
+
// cleaning object awaitingStep not have callingFlowComfig after return.
|
|
304
|
+
if (awaitingStep.hasOwnProperty("callingFlowConfig")) {
|
|
305
|
+
callingFlowConfig = awaitingStep.callingFlowConfig
|
|
306
|
+
delete awaitingStep.callingFlowConfig
|
|
307
|
+
console.log("after delete awaitingStep", awaitingStep);
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
return [awaitingStep, callingFlowConfig]
|
|
311
|
+
}
|
|
295
312
|
|
|
296
313
|
async function checkAllAwaitingStepsFinished(
|
|
297
314
|
_izContext,
|
|
298
315
|
pendingStepId,
|
|
299
316
|
currentAwaitingStepId = null,
|
|
300
|
-
errorsFound = []
|
|
301
|
-
tableName = 'AwaitingMultipleSteps',
|
|
302
|
-
byPendingTableName = "AwaitingMultipleStepByPending"
|
|
303
|
-
// indexName = ''
|
|
317
|
+
errorsFound = []
|
|
304
318
|
) {
|
|
305
319
|
|
|
306
320
|
let remaining = await checkAllAwaitingStepsFinishedWithError(
|
|
307
321
|
_izContext,
|
|
308
322
|
pendingStepId,
|
|
309
323
|
currentAwaitingStepId,
|
|
310
|
-
errorsFound
|
|
311
|
-
tableName,
|
|
312
|
-
byPendingTableName
|
|
324
|
+
errorsFound
|
|
313
325
|
);
|
|
314
326
|
return remaining;
|
|
315
327
|
}
|
|
@@ -320,37 +332,18 @@ async function checkAllAwaitingStepsFinishedWithError(
|
|
|
320
332
|
_izContext,
|
|
321
333
|
pendingStepId,
|
|
322
334
|
currentAwaitingStepId = null,
|
|
323
|
-
errorsFound = []
|
|
324
|
-
tableName = 'AwaitingMultipleSteps',
|
|
325
|
-
byPendingTableName = "AwaitingMultipleStepByPending"
|
|
326
|
-
// indexName = ''
|
|
335
|
+
errorsFound = []
|
|
327
336
|
) {
|
|
328
337
|
_izContext.logger.debug("Lib:checkAllAwaitingStepsFinishedWithError", {
|
|
329
338
|
pendingStepId: pendingStepId,
|
|
330
339
|
currentAwaitingStepId: currentAwaitingStepId,
|
|
331
|
-
|
|
332
|
-
byPendingTableName: byPendingTableName
|
|
340
|
+
errorsFound: errorsFound
|
|
333
341
|
});
|
|
334
342
|
|
|
335
343
|
if (currentAwaitingStepId) {
|
|
336
|
-
|
|
337
|
-
//* not need to save complete in AwaitingMultipleSteps Table but save in AwaitingMultipleStepByPending
|
|
338
|
-
// await dynamodbSharedLib.updateItem(
|
|
339
|
-
// _izContext,
|
|
340
|
-
// dynamodbSharedLib.tableName(tableName),
|
|
341
|
-
// {
|
|
342
|
-
// awaitingStepId: currentAwaitingStepId,
|
|
343
|
-
// pendingStepId: pendingStepId
|
|
344
|
-
// },
|
|
345
|
-
// {
|
|
346
|
-
// complete: true
|
|
347
|
-
// },
|
|
348
|
-
// )
|
|
349
|
-
|
|
350
|
-
_izContext.logger.debug(`---- update ${byPendingTableName} table ----`);
|
|
351
344
|
await dynamodbSharedLib.updateItem(
|
|
352
345
|
_izContext,
|
|
353
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
346
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
|
|
354
347
|
{
|
|
355
348
|
pendingStepId: pendingStepId,
|
|
356
349
|
awaitingStepId: currentAwaitingStepId
|
|
@@ -364,7 +357,7 @@ async function checkAllAwaitingStepsFinishedWithError(
|
|
|
364
357
|
}
|
|
365
358
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
366
359
|
_izContext,
|
|
367
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
360
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
|
|
368
361
|
{
|
|
369
362
|
pendingStepId: pendingStepId
|
|
370
363
|
},
|
|
@@ -437,52 +430,42 @@ async function checkAllAwaitingStepsFinishedWithError(
|
|
|
437
430
|
|
|
438
431
|
async function clearAllAwaitingSteps(
|
|
439
432
|
_izContext,
|
|
440
|
-
pendingStepId
|
|
441
|
-
tableName = 'AwaitingMultipleSteps',
|
|
442
|
-
byPendingTableName = "AwaitingMultipleStepByPending"
|
|
433
|
+
pendingStepId
|
|
443
434
|
) {
|
|
444
|
-
_izContext.logger.debug("Lib:clearAllAwaitingSteps", {
|
|
445
|
-
pendingStepId: pendingStepId,
|
|
446
|
-
tableName: tableName,
|
|
447
|
-
byPendingTableName: byPendingTableName
|
|
448
|
-
})
|
|
449
|
-
|
|
450
|
-
tableName = await dynamodbSharedLib.tableName(_izContext, tableName)
|
|
451
|
-
|
|
452
435
|
// ----- query items from GSI table
|
|
453
436
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
454
437
|
_izContext,
|
|
455
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
438
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
|
|
456
439
|
{
|
|
457
440
|
pendingStepId: pendingStepId
|
|
458
441
|
},
|
|
459
442
|
);
|
|
460
443
|
_izContext.logger.debug('listPendingStepIds', listPendingStepIds);
|
|
461
444
|
|
|
462
|
-
|
|
463
445
|
let promiseArray = []
|
|
464
446
|
|
|
465
447
|
for (let idx = 0; idx < listPendingStepIds.Items.length; idx++) {
|
|
466
448
|
|
|
467
|
-
|
|
468
|
-
awaitingStepId: listPendingStepIds.Items[idx].awaitingStepId,
|
|
469
|
-
pendingStepId: listPendingStepIds.Items[idx].pendingStepId
|
|
470
|
-
}
|
|
471
|
-
_izContext.logger.debug('deleting ... ', keyValues);
|
|
472
|
-
|
|
473
|
-
_izContext.logger.debug(`delete item in dynamodb AwaitingMultipleSteps ==> awaitingStepId:${keyValues.awaitingStepId}`)
|
|
449
|
+
_izContext.logger.debug(`delete item in dynamodb AwaitingMultipleSteps`)
|
|
474
450
|
promiseArray.push(
|
|
475
451
|
dynamodbSharedLib.deleteItem(
|
|
476
452
|
_izContext,
|
|
477
|
-
|
|
478
|
-
|
|
453
|
+
"AwaitingMultipleSteps",
|
|
454
|
+
{
|
|
455
|
+
awaitingStepId: listPendingStepIds.Items[idx].awaitingStepId,
|
|
456
|
+
pendingStepId: listPendingStepIds.Items[idx].pendingStepId
|
|
457
|
+
}
|
|
479
458
|
));
|
|
480
|
-
|
|
459
|
+
|
|
460
|
+
_izContext.logger.debug(`delete item in dynamodb AwaitingMultipleStepByPending`)
|
|
481
461
|
promiseArray.push(
|
|
482
462
|
dynamodbSharedLib.deleteItem(
|
|
483
463
|
_izContext,
|
|
484
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
485
|
-
|
|
464
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
|
|
465
|
+
{
|
|
466
|
+
pendingStepId: listPendingStepIds.Items[idx].pendingStepId,
|
|
467
|
+
awaitingStepId: listPendingStepIds.Items[idx].awaitingStepId
|
|
468
|
+
}
|
|
486
469
|
));
|
|
487
470
|
|
|
488
471
|
}
|
|
@@ -496,13 +479,12 @@ async function clearAllAwaitingSteps(
|
|
|
496
479
|
async function removeAwaitingStep(
|
|
497
480
|
_izContext,
|
|
498
481
|
awaitingStepId,
|
|
499
|
-
pendingStepId
|
|
500
|
-
tableName = "AwaitingStep"
|
|
482
|
+
pendingStepId
|
|
501
483
|
) {
|
|
502
484
|
|
|
503
485
|
await dynamodbSharedLib.deleteItem(
|
|
504
486
|
_izContext,
|
|
505
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
487
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
506
488
|
{
|
|
507
489
|
awaitingStepId: awaitingStepId,
|
|
508
490
|
pendingStepId: pendingStepId
|
|
@@ -514,15 +496,11 @@ async function removeAwaitingMultipleStep(
|
|
|
514
496
|
_izContext,
|
|
515
497
|
awaitingStepId,
|
|
516
498
|
pendingStepId,
|
|
517
|
-
errorsFound = []
|
|
518
|
-
tableName = "AwaitingMultipleSteps",
|
|
519
|
-
byPendingTableName = "AwaitingMultipleStepByPending"
|
|
499
|
+
errorsFound = []
|
|
520
500
|
) {
|
|
521
501
|
_izContext.logger.debug("Lib:removeAwaitingMultipleStep", {
|
|
522
502
|
awaitingStepId: awaitingStepId,
|
|
523
|
-
pendingStepId: pendingStepId
|
|
524
|
-
tableName: tableName,
|
|
525
|
-
byPendingTableName: byPendingTableName
|
|
503
|
+
pendingStepId: pendingStepId
|
|
526
504
|
})
|
|
527
505
|
|
|
528
506
|
let promiseArray = []
|
|
@@ -546,15 +524,16 @@ async function removeAwaitingMultipleStep(
|
|
|
546
524
|
promiseArray.push(
|
|
547
525
|
dynamodbSharedLib.deleteItem(
|
|
548
526
|
_izContext,
|
|
549
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
527
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
|
|
550
528
|
keyValues
|
|
551
529
|
));
|
|
530
|
+
|
|
552
531
|
if (errorsFound.length == 0) {
|
|
553
532
|
_izContext.logger.debug(`delete item in dynamodb AwaitingMultipleStepByPending ==> awaitingStepId:${keyValues.awaitingStepId}`)
|
|
554
533
|
promiseArray.push(
|
|
555
534
|
dynamodbSharedLib.deleteItem(
|
|
556
535
|
_izContext,
|
|
557
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
536
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
|
|
558
537
|
keyValuesForByPending
|
|
559
538
|
));
|
|
560
539
|
}
|
|
@@ -568,8 +547,7 @@ async function removeAwaitingStepWithCheckUniqueRequestId(
|
|
|
568
547
|
awaitingStepId,
|
|
569
548
|
pendingStepId,
|
|
570
549
|
checkUniqueRequestId,
|
|
571
|
-
prefix = ""
|
|
572
|
-
tableName = "AwaitingStep"
|
|
550
|
+
prefix = ""
|
|
573
551
|
) {
|
|
574
552
|
|
|
575
553
|
// if logicalElements add queryElements.logicalElements
|
|
@@ -590,7 +568,7 @@ async function removeAwaitingStepWithCheckUniqueRequestId(
|
|
|
590
568
|
|
|
591
569
|
await dynamodbSharedLib.deleteItem(
|
|
592
570
|
_izContext,
|
|
593
|
-
await dynamodbSharedLib.tableName(_izContext,
|
|
571
|
+
await dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
|
|
594
572
|
{
|
|
595
573
|
awaitingStepId: awaitingStepId,
|
|
596
574
|
pendingStepId: pendingStepId
|
|
@@ -966,6 +944,7 @@ module.exports = {
|
|
|
966
944
|
findPendingStepIdsAwaitingStep,
|
|
967
945
|
findPendingStepAwaitingStep,
|
|
968
946
|
findPendingStepsAwaitingStep,
|
|
947
|
+
findPendingStepAwaitingStepWithCallingFlow,
|
|
969
948
|
removeAwaitingStep,
|
|
970
949
|
removeAwaitingStepWithCheckUniqueRequestId,
|
|
971
950
|
|