Add workflow statuses (#6765)
Following figma updates https://www.figma.com/design/PNBfTgOVraw557OXChYagk/Explo?node-id=21872-7929&t=DOUzd6rzwr6lprcs-0 - No activity targets for workflow entities for now - Adding a direct relation between workflow run et workflow - Adding a status on the version (draft, active, deactivated) - Adding a list of statuses on workflow - publishedVersionId => lastPublishedVersionId Also adding: - the endpoint to deactivate a version
This commit is contained in:
+31
-2
@@ -1,4 +1,8 @@
|
||||
import { WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
|
||||
import {
|
||||
WorkflowVersionStatus,
|
||||
WorkflowVersionWorkspaceEntity,
|
||||
} from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity';
|
||||
import { WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity';
|
||||
import {
|
||||
WorkflowTrigger,
|
||||
WorkflowTriggerType,
|
||||
@@ -8,7 +12,32 @@ import {
|
||||
WorkflowTriggerExceptionCode,
|
||||
} from 'src/modules/workflow/workflow-trigger/workflow-trigger.exception';
|
||||
|
||||
export function assertWorkflowVersionIsValid(
|
||||
export function assertVersionCanBeActivated(
|
||||
workflowVersion: Omit<WorkflowVersionWorkspaceEntity, 'trigger'> & {
|
||||
trigger: WorkflowTrigger;
|
||||
},
|
||||
workflow: WorkflowWorkspaceEntity,
|
||||
) {
|
||||
assertVersionIsValid(workflowVersion);
|
||||
|
||||
const isLastPublishedVersion =
|
||||
workflow.lastPublishedVersionId === workflowVersion.id;
|
||||
|
||||
const isDraft = workflowVersion.status === WorkflowVersionStatus.DRAFT;
|
||||
|
||||
const isLastPublishedVersionDeactivated =
|
||||
workflowVersion.status === WorkflowVersionStatus.DEACTIVATED &&
|
||||
isLastPublishedVersion;
|
||||
|
||||
if (!isDraft && !isLastPublishedVersionDeactivated) {
|
||||
throw new WorkflowTriggerException(
|
||||
'Cannot activate non-draft or non-last-published version',
|
||||
WorkflowTriggerExceptionCode.INVALID_INPUT,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function assertVersionIsValid(
|
||||
workflowVersion: Omit<WorkflowVersionWorkspaceEntity, 'trigger'> & {
|
||||
trigger: WorkflowTrigger;
|
||||
},
|
||||
Reference in New Issue
Block a user