@izara_project/izara-core-library-asynchronous-flow 1.0.21 → 1.0.22
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/package.json +1 -1
- package/src/asyncFlowSharedLib.js +2 -2
- package/src/awaitingMultipleSteps.js +44 -52
- package/src/awaitingStep.js +6 -6
package/package.json
CHANGED
|
@@ -194,7 +194,7 @@ export async function checkUniqueRequestProcessing(
|
|
|
194
194
|
//* get record from dynamo
|
|
195
195
|
let existingRecord = await dynamodbSharedLib.getItem(
|
|
196
196
|
_izContext,
|
|
197
|
-
|
|
197
|
+
dynamodbSharedLib.tableName(_izContext, tableName),
|
|
198
198
|
primaryKey
|
|
199
199
|
);
|
|
200
200
|
_izContext.logger.debug('existingRecord:', existingRecord);
|
|
@@ -230,7 +230,7 @@ export async function checkUniqueRequestProcessing(
|
|
|
230
230
|
try {
|
|
231
231
|
updateRecord = await dynamodbSharedLib.updateItem(
|
|
232
232
|
_izContext,
|
|
233
|
-
|
|
233
|
+
dynamodbSharedLib.tableName(_izContext, tableName),
|
|
234
234
|
primaryKey,
|
|
235
235
|
updateAttributes,
|
|
236
236
|
queryElementsWhenUpdate,
|
|
@@ -58,14 +58,14 @@ export async function createAwaitingMultipleStepsWithAdditionalAttributes(
|
|
|
58
58
|
promiseArray.push(
|
|
59
59
|
dynamodbSharedLib.putItem(
|
|
60
60
|
_izContext,
|
|
61
|
-
|
|
61
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
62
62
|
attributesWhenCreate
|
|
63
63
|
)
|
|
64
64
|
);
|
|
65
65
|
promiseArray.push(
|
|
66
66
|
dynamodbSharedLib.putItem(
|
|
67
67
|
_izContext,
|
|
68
|
-
|
|
68
|
+
dynamodbSharedLib.tableName(
|
|
69
69
|
_izContext,
|
|
70
70
|
'AwaitingMultipleStepByPending'
|
|
71
71
|
),
|
|
@@ -81,43 +81,53 @@ export async function createAwaitingMultipleStepsWithAdditionalAttributes(
|
|
|
81
81
|
await Promise.all(promiseArray);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Batch initializes multiple pending steps in DynamoDB.
|
|
86
|
+
* Records status in both the primary tracking table and the pending-relation table.
|
|
87
|
+
* * @async
|
|
88
|
+
* @param {Object} _izContext - The system context providing logger and shared utilities.
|
|
89
|
+
* @param {Array<Object>} records - Array of step objects to be initialized.
|
|
90
|
+
* @param {string} records[].awaitingStepId - The unique identifier for the specific step.
|
|
91
|
+
* @param {Object} [records[].additionalAttributes] - Optional metadata to store with the step.
|
|
92
|
+
* @param {string} pendingStepId - The parent ID linking all related steps together.
|
|
93
|
+
* @returns {Promise<void>}
|
|
94
|
+
*/
|
|
95
|
+
export async function initAwaitingStepsWithAttrs(
|
|
85
96
|
_izContext,
|
|
86
|
-
records,
|
|
97
|
+
records,
|
|
87
98
|
pendingStepId
|
|
88
99
|
) {
|
|
89
|
-
_izContext.logger.debug(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
);
|
|
100
|
+
_izContext.logger.debug('Lib:initAwaitingStepsWithAttrs', {
|
|
101
|
+
records,
|
|
102
|
+
pendingStepId
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const timestamp = Date.now();
|
|
96
106
|
const promiseArray = [];
|
|
97
107
|
|
|
98
|
-
for (
|
|
108
|
+
for (const record of records) {
|
|
99
109
|
promiseArray.push(
|
|
100
110
|
dynamodbSharedLib.putItem(
|
|
101
111
|
_izContext,
|
|
102
|
-
|
|
112
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
103
113
|
{
|
|
104
114
|
awaitingStepId: record.awaitingStepId,
|
|
105
|
-
pendingStepId
|
|
106
|
-
timestamp
|
|
115
|
+
pendingStepId,
|
|
116
|
+
timestamp
|
|
107
117
|
}
|
|
108
118
|
)
|
|
109
119
|
);
|
|
110
120
|
promiseArray.push(
|
|
111
121
|
dynamodbSharedLib.putItem(
|
|
112
122
|
_izContext,
|
|
113
|
-
|
|
123
|
+
dynamodbSharedLib.tableName(
|
|
114
124
|
_izContext,
|
|
115
125
|
'AwaitingMultipleStepByPending'
|
|
116
126
|
),
|
|
117
127
|
{
|
|
118
|
-
pendingStepId
|
|
128
|
+
pendingStepId,
|
|
119
129
|
awaitingStepId: record.awaitingStepId,
|
|
120
|
-
timestamp
|
|
130
|
+
timestamp,
|
|
121
131
|
...record.additionalAttributes
|
|
122
132
|
}
|
|
123
133
|
)
|
|
@@ -160,7 +170,7 @@ export async function createAwaitingMultipleSteps(
|
|
|
160
170
|
promiseArray.push(
|
|
161
171
|
dynamodbSharedLib.putItem(
|
|
162
172
|
_izContext,
|
|
163
|
-
|
|
173
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
164
174
|
attributesWhenCreate
|
|
165
175
|
)
|
|
166
176
|
);
|
|
@@ -171,7 +181,7 @@ export async function createAwaitingMultipleSteps(
|
|
|
171
181
|
promiseArray.push(
|
|
172
182
|
dynamodbSharedLib.putItem(
|
|
173
183
|
_izContext,
|
|
174
|
-
|
|
184
|
+
dynamodbSharedLib.tableName(
|
|
175
185
|
_izContext,
|
|
176
186
|
'AwaitingMultipleStepByPending'
|
|
177
187
|
),
|
|
@@ -197,7 +207,7 @@ export async function findPendingStepIdsAwaitingMultipleSteps(
|
|
|
197
207
|
|
|
198
208
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
199
209
|
_izContext,
|
|
200
|
-
|
|
210
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
201
211
|
{
|
|
202
212
|
awaitingStepId: awaitingStepId
|
|
203
213
|
}
|
|
@@ -223,7 +233,7 @@ export async function findPendingStepsAwaitingMultipleSteps(
|
|
|
223
233
|
) {
|
|
224
234
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
225
235
|
_izContext,
|
|
226
|
-
|
|
236
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
227
237
|
{
|
|
228
238
|
awaitingStepId: awaitingStepId
|
|
229
239
|
}
|
|
@@ -246,7 +256,7 @@ export async function findPendingStepAwaitingMultipleSteps(
|
|
|
246
256
|
) {
|
|
247
257
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
248
258
|
_izContext,
|
|
249
|
-
|
|
259
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
250
260
|
{
|
|
251
261
|
awaitingStepId: awaitingStepId
|
|
252
262
|
}
|
|
@@ -278,10 +288,7 @@ export async function findAwaitingMultipleStepByPending(
|
|
|
278
288
|
) {
|
|
279
289
|
let listAwaitingSteps = await dynamodbSharedLib.query(
|
|
280
290
|
_izContext,
|
|
281
|
-
|
|
282
|
-
_izContext,
|
|
283
|
-
'AwaitingMultipleStepByPending'
|
|
284
|
-
),
|
|
291
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
285
292
|
{
|
|
286
293
|
pendingStepId: pendingStepId
|
|
287
294
|
}
|
|
@@ -319,10 +326,7 @@ export async function checkAllAwaitingStepsFinishedWithError(
|
|
|
319
326
|
if (currentAwaitingStepId) {
|
|
320
327
|
await dynamodbSharedLib.updateItem(
|
|
321
328
|
_izContext,
|
|
322
|
-
|
|
323
|
-
_izContext,
|
|
324
|
-
'AwaitingMultipleStepByPending'
|
|
325
|
-
),
|
|
329
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
326
330
|
{
|
|
327
331
|
pendingStepId: pendingStepId,
|
|
328
332
|
awaitingStepId: currentAwaitingStepId
|
|
@@ -336,10 +340,7 @@ export async function checkAllAwaitingStepsFinishedWithError(
|
|
|
336
340
|
}
|
|
337
341
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
338
342
|
_izContext,
|
|
339
|
-
|
|
340
|
-
_izContext,
|
|
341
|
-
'AwaitingMultipleStepByPending'
|
|
342
|
-
),
|
|
343
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
343
344
|
{
|
|
344
345
|
pendingStepId: pendingStepId
|
|
345
346
|
},
|
|
@@ -377,10 +378,7 @@ export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
|
|
|
377
378
|
// ----- query items from GSI table
|
|
378
379
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
379
380
|
_izContext,
|
|
380
|
-
|
|
381
|
-
_izContext,
|
|
382
|
-
'AwaitingMultipleStepByPending'
|
|
383
|
-
),
|
|
381
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
384
382
|
{
|
|
385
383
|
pendingStepId: pendingStepId
|
|
386
384
|
}
|
|
@@ -394,7 +392,7 @@ export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
|
|
|
394
392
|
promiseArray.push(
|
|
395
393
|
dynamodbSharedLib.deleteItem(
|
|
396
394
|
_izContext,
|
|
397
|
-
|
|
395
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
398
396
|
{
|
|
399
397
|
awaitingStepId: listPendingStepIds.Items[idx].awaitingStepId,
|
|
400
398
|
pendingStepId: listPendingStepIds.Items[idx].pendingStepId
|
|
@@ -408,7 +406,7 @@ export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
|
|
|
408
406
|
promiseArray.push(
|
|
409
407
|
dynamodbSharedLib.deleteItem(
|
|
410
408
|
_izContext,
|
|
411
|
-
|
|
409
|
+
dynamodbSharedLib.tableName(
|
|
412
410
|
_izContext,
|
|
413
411
|
'AwaitingMultipleStepByPending'
|
|
414
412
|
),
|
|
@@ -468,7 +466,7 @@ export async function removeAwaitingMultipleStep(
|
|
|
468
466
|
promiseArray.push(
|
|
469
467
|
dynamodbSharedLib.deleteItem(
|
|
470
468
|
_izContext,
|
|
471
|
-
|
|
469
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
|
|
472
470
|
keyValues
|
|
473
471
|
)
|
|
474
472
|
);
|
|
@@ -480,7 +478,7 @@ export async function removeAwaitingMultipleStep(
|
|
|
480
478
|
promiseArray.push(
|
|
481
479
|
dynamodbSharedLib.deleteItem(
|
|
482
480
|
_izContext,
|
|
483
|
-
|
|
481
|
+
dynamodbSharedLib.tableName(
|
|
484
482
|
_izContext,
|
|
485
483
|
'AwaitingMultipleStepByPending'
|
|
486
484
|
),
|
|
@@ -503,7 +501,7 @@ export async function removeAwaitingMultipleStep(
|
|
|
503
501
|
* @param {Attrs} [additionalAttributes={}]
|
|
504
502
|
* @returns {Promise<[boolean, Record<string, any>|null]>} A tuple indicating completion status and the collected attributes, or null if not all steps are complete.
|
|
505
503
|
*/
|
|
506
|
-
export async function
|
|
504
|
+
export async function syncAndCheckStepsCompletion(
|
|
507
505
|
_izContext,
|
|
508
506
|
pendingStepId,
|
|
509
507
|
currentAwaitingStepId = null,
|
|
@@ -523,10 +521,7 @@ export async function checkAllAwaitingMultipleStepsFinishedWithErrorAndReturnAdd
|
|
|
523
521
|
if (currentAwaitingStepId) {
|
|
524
522
|
await dynamodbSharedLib.updateItem(
|
|
525
523
|
_izContext,
|
|
526
|
-
|
|
527
|
-
_izContext,
|
|
528
|
-
'AwaitingMultipleStepByPending'
|
|
529
|
-
),
|
|
524
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
530
525
|
{ pendingStepId, awaitingStepId: currentAwaitingStepId },
|
|
531
526
|
{
|
|
532
527
|
complete: true,
|
|
@@ -538,10 +533,7 @@ export async function checkAllAwaitingMultipleStepsFinishedWithErrorAndReturnAdd
|
|
|
538
533
|
|
|
539
534
|
const awaitingStepItems = await dynamodbSharedLib.query(
|
|
540
535
|
_izContext,
|
|
541
|
-
|
|
542
|
-
_izContext,
|
|
543
|
-
'AwaitingMultipleStepByPending'
|
|
544
|
-
),
|
|
536
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
|
|
545
537
|
{ pendingStepId },
|
|
546
538
|
{
|
|
547
539
|
limit: 50 // arbitrary limit so not pull too many results, need >2 because some others might be marked as "complete" = true
|
package/src/awaitingStep.js
CHANGED
|
@@ -65,7 +65,7 @@ export async function createAwaitingStep(
|
|
|
65
65
|
|
|
66
66
|
await dynamodbSharedLib.putItem(
|
|
67
67
|
_izContext,
|
|
68
|
-
|
|
68
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
69
69
|
attributesWhenCreate
|
|
70
70
|
);
|
|
71
71
|
}
|
|
@@ -85,7 +85,7 @@ export async function findPendingStepIdsAwaitingStep(
|
|
|
85
85
|
|
|
86
86
|
let listPendingStepIds = await dynamodbSharedLib.query(
|
|
87
87
|
_izContext,
|
|
88
|
-
|
|
88
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
89
89
|
{
|
|
90
90
|
awaitingStepId: awaitingStepId
|
|
91
91
|
}
|
|
@@ -108,7 +108,7 @@ export async function findPendingStepIdsAwaitingStep(
|
|
|
108
108
|
export async function findPendingStepsAwaitingStep(_izContext, awaitingStepId) {
|
|
109
109
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
110
110
|
_izContext,
|
|
111
|
-
|
|
111
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
112
112
|
{
|
|
113
113
|
awaitingStepId: awaitingStepId
|
|
114
114
|
}
|
|
@@ -128,7 +128,7 @@ export async function findPendingStepsAwaitingStep(_izContext, awaitingStepId) {
|
|
|
128
128
|
export async function findPendingStepAwaitingStep(_izContext, awaitingStepId) {
|
|
129
129
|
let listPendingSteps = await dynamodbSharedLib.query(
|
|
130
130
|
_izContext,
|
|
131
|
-
|
|
131
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
132
132
|
{
|
|
133
133
|
awaitingStepId: awaitingStepId
|
|
134
134
|
}
|
|
@@ -186,7 +186,7 @@ export async function removeAwaitingStep(
|
|
|
186
186
|
) {
|
|
187
187
|
await dynamodbSharedLib.deleteItem(
|
|
188
188
|
_izContext,
|
|
189
|
-
|
|
189
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
190
190
|
{
|
|
191
191
|
awaitingStepId: awaitingStepId,
|
|
192
192
|
pendingStepId: pendingStepId
|
|
@@ -231,7 +231,7 @@ export async function removeAwaitingStepWithCheckUniqueRequestId(
|
|
|
231
231
|
|
|
232
232
|
await dynamodbSharedLib.deleteItem(
|
|
233
233
|
_izContext,
|
|
234
|
-
|
|
234
|
+
dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
|
|
235
235
|
{
|
|
236
236
|
awaitingStepId: awaitingStepId,
|
|
237
237
|
pendingStepId: pendingStepId
|