Skip to content

Commit

Permalink
Merge pull request #50 from devit-tel/fix/decision-undefined-case-cancel
Browse files Browse the repository at this point in the history
Only check isLastChild for Parallel
  • Loading branch information
NV4RE authored Oct 12, 2020
2 parents 78cd127 + 95e9a06 commit 3e88bfd
Showing 1 changed file with 30 additions and 18 deletions.
48 changes: 30 additions & 18 deletions src/state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -418,15 +418,21 @@ export const handleCompletedTask = async (task: Task.ITask): Promise<void> => {
const { workflow, tasksData, nextTaskPath } = await getTaskInfo(task);
// If workflow has cancelled
if (workflow.status === State.WorkflowStates.Cancelled) {
if (nextTaskPath.parentTask && nextTaskPath.isLastChild) {
await processUpdateTask({
taskId: nextTaskPath.parentTask.taskId,
transactionId: nextTaskPath.parentTask.transactionId,
status: State.TaskStates.Completed,
isSystem: true,
});
} else if (nextTaskPath.parentTask && !nextTaskPath.isLastChild) {
console.log('Wait for sibling task');
if (nextTaskPath.parentTask) {
if (
(nextTaskPath.parentTask.type === Task.TaskTypes.Parallel &&
nextTaskPath.isLastChild) ||
nextTaskPath.parentTask.type === Task.TaskTypes.Decision
) {
await processUpdateTask({
taskId: nextTaskPath.parentTask.taskId,
transactionId: nextTaskPath.parentTask.transactionId,
status: State.TaskStates.Completed,
isSystem: true,
});
} else {
console.log('Wait for sibling task');
}
} else {
await handleCancelWorkflow(workflow, tasksData);
}
Expand Down Expand Up @@ -636,15 +642,21 @@ export const handleFailedTask = async (
const { workflow, tasksData, nextTaskPath } = await getTaskInfo(task);
// If workflow oncancle do not retry or anything
if (workflow.status === State.WorkflowStates.Cancelled) {
if (nextTaskPath.parentTask && nextTaskPath.isLastChild) {
await processUpdateTask({
taskId: nextTaskPath.parentTask.taskId,
transactionId: nextTaskPath.parentTask.transactionId,
status: State.TaskStates.Completed,
isSystem: true,
});
} else if (nextTaskPath.parentTask && !nextTaskPath.isLastChild) {
console.log('Wait for sibling task');
if (nextTaskPath.parentTask) {
if (
(nextTaskPath.parentTask.type === Task.TaskTypes.Parallel &&
nextTaskPath.isLastChild) ||
nextTaskPath.parentTask.type === Task.TaskTypes.Decision
) {
await processUpdateTask({
taskId: nextTaskPath.parentTask.taskId,
transactionId: nextTaskPath.parentTask.transactionId,
status: State.TaskStates.Completed,
isSystem: true,
});
} else {
console.log('Wait for sibling task');
}
} else {
await handleCancelWorkflow(workflow, tasksData);
}
Expand Down

0 comments on commit 3e88bfd

Please sign in to comment.