@webiny/api-workflows 6.3.0 → 6.4.0-beta.1
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/constants.js +4 -3
- package/constants.js.map +1 -1
- package/domain/notifications/abstractions.js +8 -7
- package/domain/notifications/abstractions.js.map +1 -1
- package/domain/notifications/errors.js +7 -7
- package/domain/notifications/errors.js.map +1 -1
- package/domain/workflow/WorkflowMapper.js +22 -23
- package/domain/workflow/WorkflowMapper.js.map +1 -1
- package/domain/workflow/abstractions.js +3 -3
- package/domain/workflow/abstractions.js.map +1 -1
- package/domain/workflow/errors.js +26 -29
- package/domain/workflow/errors.js.map +1 -1
- package/domain/workflow/workflowModel.js +27 -25
- package/domain/workflow/workflowModel.js.map +1 -1
- package/domain/workflowState/WorkflowState.js +216 -319
- package/domain/workflowState/WorkflowState.js.map +1 -1
- package/domain/workflowState/WorkflowStateMapper.js +36 -35
- package/domain/workflowState/WorkflowStateMapper.js.map +1 -1
- package/domain/workflowState/abstractions.js +9 -9
- package/domain/workflowState/abstractions.js.map +1 -1
- package/domain/workflowState/errors.js +109 -122
- package/domain/workflowState/errors.js.map +1 -1
- package/domain/workflowState/guards/canReview.js +2 -3
- package/domain/workflowState/guards/canReview.js.map +1 -1
- package/domain/workflowState/guards/canTakeOver.js +2 -3
- package/domain/workflowState/guards/canTakeOver.js.map +1 -1
- package/domain/workflowState/guards/isInReview.js +2 -3
- package/domain/workflowState/guards/isInReview.js.map +1 -1
- package/domain/workflowState/guards/isRejected.js +2 -3
- package/domain/workflowState/guards/isRejected.js.map +1 -1
- package/domain/workflowState/guards/isStepOwner.js +2 -3
- package/domain/workflowState/guards/isStepOwner.js.map +1 -1
- package/domain/workflowState/stateModel.js +59 -51
- package/domain/workflowState/stateModel.js.map +1 -1
- package/features/internal/GetUserTeams/GetUserTeamsUseCase.js +20 -27
- package/features/internal/GetUserTeams/GetUserTeamsUseCase.js.map +1 -1
- package/features/internal/GetUserTeams/abstractions.js +2 -1
- package/features/internal/GetUserTeams/abstractions.js.map +1 -1
- package/features/internal/GetUserTeams/feature.js +6 -5
- package/features/internal/GetUserTeams/feature.js.map +1 -1
- package/features/internal/GetUserTeams/index.js +0 -2
- package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js +21 -17
- package/features/notifications/ListNotificationTypes/ListNotificationTypesRepository.js.map +1 -1
- package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js +22 -27
- package/features/notifications/ListNotificationTypes/ListNotificationTypesUseCase.js.map +1 -1
- package/features/notifications/ListNotificationTypes/abstractions.js +3 -12
- package/features/notifications/ListNotificationTypes/abstractions.js.map +1 -1
- package/features/notifications/ListNotificationTypes/feature.js +7 -6
- package/features/notifications/ListNotificationTypes/feature.js.map +1 -1
- package/features/notifications/ListNotificationTypes/index.js +0 -2
- package/features/notifications/NotificationTransport/MailNotificationTransport.js +29 -38
- package/features/notifications/NotificationTransport/MailNotificationTransport.js.map +1 -1
- package/features/notifications/NotificationTransport/abstractions.js +2 -1
- package/features/notifications/NotificationTransport/abstractions.js.map +1 -1
- package/features/notifications/NotificationTransport/feature.js +6 -5
- package/features/notifications/NotificationTransport/feature.js.map +1 -1
- package/features/notifications/NotificationTransport/index.js +0 -2
- package/features/shared/abstractions.js +0 -3
- package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js +35 -34
- package/features/workflow/CreateWorkflow/CreateWorkflowRepository.js.map +1 -1
- package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js +38 -42
- package/features/workflow/CreateWorkflow/CreateWorkflowUseCase.js.map +1 -1
- package/features/workflow/CreateWorkflow/abstractions.js +3 -16
- package/features/workflow/CreateWorkflow/abstractions.js.map +1 -1
- package/features/workflow/CreateWorkflow/events.js +17 -14
- package/features/workflow/CreateWorkflow/events.js.map +1 -1
- package/features/workflow/CreateWorkflow/feature.js +7 -6
- package/features/workflow/CreateWorkflow/feature.js.map +1 -1
- package/features/workflow/CreateWorkflow/index.js +2 -4
- package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js +24 -22
- package/features/workflow/DeleteWorkflow/DeleteWorkflowRepository.js.map +1 -1
- package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js +38 -43
- package/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js.map +1 -1
- package/features/workflow/DeleteWorkflow/abstractions.js +3 -16
- package/features/workflow/DeleteWorkflow/abstractions.js.map +1 -1
- package/features/workflow/DeleteWorkflow/events.js +17 -14
- package/features/workflow/DeleteWorkflow/events.js.map +1 -1
- package/features/workflow/DeleteWorkflow/feature.js +7 -6
- package/features/workflow/DeleteWorkflow/feature.js.map +1 -1
- package/features/workflow/DeleteWorkflow/index.js +2 -4
- package/features/workflow/GetWorkflow/GetWorkflowRepository.js +33 -34
- package/features/workflow/GetWorkflow/GetWorkflowRepository.js.map +1 -1
- package/features/workflow/GetWorkflow/GetWorkflowUseCase.js +21 -23
- package/features/workflow/GetWorkflow/GetWorkflowUseCase.js.map +1 -1
- package/features/workflow/GetWorkflow/abstractions.js +3 -12
- package/features/workflow/GetWorkflow/abstractions.js.map +1 -1
- package/features/workflow/GetWorkflow/feature.js +7 -6
- package/features/workflow/GetWorkflow/feature.js.map +1 -1
- package/features/workflow/GetWorkflow/index.js +0 -2
- package/features/workflow/ListWorkflows/ListWorkflowsRepository.js +47 -52
- package/features/workflow/ListWorkflows/ListWorkflowsRepository.js.map +1 -1
- package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js +14 -13
- package/features/workflow/ListWorkflows/ListWorkflowsUseCase.js.map +1 -1
- package/features/workflow/ListWorkflows/abstractions.js +3 -12
- package/features/workflow/ListWorkflows/abstractions.js.map +1 -1
- package/features/workflow/ListWorkflows/feature.js +7 -6
- package/features/workflow/ListWorkflows/feature.js.map +1 -1
- package/features/workflow/ListWorkflows/index.js +0 -2
- package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js +24 -26
- package/features/workflow/StoreWorkflow/StoreWorkflowUseCase.js.map +1 -1
- package/features/workflow/StoreWorkflow/abstractions.js +2 -8
- package/features/workflow/StoreWorkflow/abstractions.js.map +1 -1
- package/features/workflow/StoreWorkflow/feature.js +8 -10
- package/features/workflow/StoreWorkflow/feature.js.map +1 -1
- package/features/workflow/StoreWorkflow/index.js +0 -2
- package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js +38 -37
- package/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js.map +1 -1
- package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js +40 -44
- package/features/workflow/UpdateWorkflow/UpdateWorkflowUseCase.js.map +1 -1
- package/features/workflow/UpdateWorkflow/abstractions.js +3 -16
- package/features/workflow/UpdateWorkflow/abstractions.js.map +1 -1
- package/features/workflow/UpdateWorkflow/events.js +17 -14
- package/features/workflow/UpdateWorkflow/events.js.map +1 -1
- package/features/workflow/UpdateWorkflow/feature.js +7 -6
- package/features/workflow/UpdateWorkflow/feature.js.map +1 -1
- package/features/workflow/UpdateWorkflow/index.js +2 -4
- package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js +26 -27
- package/features/workflowState/ApproveWorkflowStateStep/ApproveWorkflowStateStepUseCase.js.map +1 -1
- package/features/workflowState/ApproveWorkflowStateStep/abstractions.js +2 -1
- package/features/workflowState/ApproveWorkflowStateStep/abstractions.js.map +1 -1
- package/features/workflowState/ApproveWorkflowStateStep/events.js +9 -6
- package/features/workflowState/ApproveWorkflowStateStep/events.js.map +1 -1
- package/features/workflowState/ApproveWorkflowStateStep/feature.js +6 -5
- package/features/workflowState/ApproveWorkflowStateStep/feature.js.map +1 -1
- package/features/workflowState/ApproveWorkflowStateStep/index.js +0 -2
- package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js +21 -19
- package/features/workflowState/CancelWorkflowState/CancelWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/CancelWorkflowState/abstractions.js +2 -6
- package/features/workflowState/CancelWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/CancelWorkflowState/events.js +9 -6
- package/features/workflowState/CancelWorkflowState/events.js.map +1 -1
- package/features/workflowState/CancelWorkflowState/feature.js +6 -5
- package/features/workflowState/CancelWorkflowState/feature.js.map +1 -1
- package/features/workflowState/CancelWorkflowState/index.js +0 -2
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js +25 -22
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js +78 -90
- package/features/workflowState/CreateWorkflowState/CreateWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/abstractions.js +3 -12
- package/features/workflowState/CreateWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/events.js +9 -6
- package/features/workflowState/CreateWorkflowState/events.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/feature.js +7 -6
- package/features/workflowState/CreateWorkflowState/feature.js.map +1 -1
- package/features/workflowState/CreateWorkflowState/index.js +1 -3
- package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js +44 -42
- package/features/workflowState/DeleteTargetWorkflowState/DeleteTargetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/DeleteTargetWorkflowState/abstractions.js +2 -1
- package/features/workflowState/DeleteTargetWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/DeleteTargetWorkflowState/events.js +9 -6
- package/features/workflowState/DeleteTargetWorkflowState/events.js.map +1 -1
- package/features/workflowState/DeleteTargetWorkflowState/feature.js +6 -5
- package/features/workflowState/DeleteTargetWorkflowState/feature.js.map +1 -1
- package/features/workflowState/DeleteTargetWorkflowState/index.js +0 -2
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js +16 -12
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js +22 -21
- package/features/workflowState/DeleteWorkflowState/DeleteWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/DeleteWorkflowState/abstractions.js +3 -2
- package/features/workflowState/DeleteWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/DeleteWorkflowState/feature.js +7 -6
- package/features/workflowState/DeleteWorkflowState/feature.js.map +1 -1
- package/features/workflowState/DeleteWorkflowState/index.js +1 -3
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js +39 -43
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js +24 -25
- package/features/workflowState/GetTargetWorkflowState/GetTargetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/abstractions.js +3 -12
- package/features/workflowState/GetTargetWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/feature.js +7 -6
- package/features/workflowState/GetTargetWorkflowState/feature.js.map +1 -1
- package/features/workflowState/GetTargetWorkflowState/index.js +1 -3
- package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js +26 -23
- package/features/workflowState/GetWorkflowState/GetWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js +23 -20
- package/features/workflowState/GetWorkflowState/GetWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/GetWorkflowState/abstractions.js +3 -12
- package/features/workflowState/GetWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/GetWorkflowState/feature.js +7 -6
- package/features/workflowState/GetWorkflowState/feature.js.map +1 -1
- package/features/workflowState/GetWorkflowState/index.js +1 -3
- package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js +33 -32
- package/features/workflowState/ListOwnWorkflowStates/ListOwnWorkflowStatesUseCase.js.map +1 -1
- package/features/workflowState/ListOwnWorkflowStates/abstractions.js +2 -6
- package/features/workflowState/ListOwnWorkflowStates/abstractions.js.map +1 -1
- package/features/workflowState/ListOwnWorkflowStates/feature.js +6 -5
- package/features/workflowState/ListOwnWorkflowStates/feature.js.map +1 -1
- package/features/workflowState/ListOwnWorkflowStates/index.js +0 -2
- package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js +41 -38
- package/features/workflowState/ListRequestedWorkflowStates/ListRequestedWorkflowStatesUseCase.js.map +1 -1
- package/features/workflowState/ListRequestedWorkflowStates/abstractions.js +2 -6
- package/features/workflowState/ListRequestedWorkflowStates/abstractions.js.map +1 -1
- package/features/workflowState/ListRequestedWorkflowStates/feature.js +6 -5
- package/features/workflowState/ListRequestedWorkflowStates/feature.js.map +1 -1
- package/features/workflowState/ListRequestedWorkflowStates/index.js +0 -2
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js +35 -32
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesRepository.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js +26 -26
- package/features/workflowState/ListWorkflowStates/ListWorkflowStatesUseCase.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/abstractions.js +3 -12
- package/features/workflowState/ListWorkflowStates/abstractions.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/feature.js +7 -6
- package/features/workflowState/ListWorkflowStates/feature.js.map +1 -1
- package/features/workflowState/ListWorkflowStates/index.js +1 -3
- package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js +26 -27
- package/features/workflowState/RejectWorkflowStateStep/RejectWorkflowStateStepUseCase.js.map +1 -1
- package/features/workflowState/RejectWorkflowStateStep/abstractions.js +2 -1
- package/features/workflowState/RejectWorkflowStateStep/abstractions.js.map +1 -1
- package/features/workflowState/RejectWorkflowStateStep/events.js +9 -6
- package/features/workflowState/RejectWorkflowStateStep/events.js.map +1 -1
- package/features/workflowState/RejectWorkflowStateStep/feature.js +6 -5
- package/features/workflowState/RejectWorkflowStateStep/feature.js.map +1 -1
- package/features/workflowState/RejectWorkflowStateStep/index.js +0 -2
- package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.js +26 -27
- package/features/workflowState/StartWorkflowStateStep/StartWorkflowStateStepUseCase.js.map +1 -1
- package/features/workflowState/StartWorkflowStateStep/abstractions.js +2 -1
- package/features/workflowState/StartWorkflowStateStep/abstractions.js.map +1 -1
- package/features/workflowState/StartWorkflowStateStep/events.js +9 -6
- package/features/workflowState/StartWorkflowStateStep/events.js.map +1 -1
- package/features/workflowState/StartWorkflowStateStep/feature.js +6 -5
- package/features/workflowState/StartWorkflowStateStep/feature.js.map +1 -1
- package/features/workflowState/StartWorkflowStateStep/index.js +0 -2
- package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js +26 -27
- package/features/workflowState/TakeOverWorkflowStateStep/TakeOverWorkflowStateStepUseCase.js.map +1 -1
- package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js +2 -1
- package/features/workflowState/TakeOverWorkflowStateStep/abstractions.js.map +1 -1
- package/features/workflowState/TakeOverWorkflowStateStep/events.js +9 -6
- package/features/workflowState/TakeOverWorkflowStateStep/events.js.map +1 -1
- package/features/workflowState/TakeOverWorkflowStateStep/feature.js +6 -5
- package/features/workflowState/TakeOverWorkflowStateStep/feature.js.map +1 -1
- package/features/workflowState/TakeOverWorkflowStateStep/index.js +0 -2
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js +39 -37
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateRepository.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js +43 -41
- package/features/workflowState/UpdateWorkflowState/UpdateWorkflowStateUseCase.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/abstractions.js +3 -12
- package/features/workflowState/UpdateWorkflowState/abstractions.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/events.js +9 -6
- package/features/workflowState/UpdateWorkflowState/events.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/feature.js +7 -6
- package/features/workflowState/UpdateWorkflowState/feature.js.map +1 -1
- package/features/workflowState/UpdateWorkflowState/index.js +1 -3
- package/graphql/notifications.js +21 -24
- package/graphql/notifications.js.map +1 -1
- package/graphql/validation/approveWorkflowState.js +4 -3
- package/graphql/validation/approveWorkflowState.js.map +1 -1
- package/graphql/validation/cancelWorkflowState.js +3 -2
- package/graphql/validation/cancelWorkflowState.js.map +1 -1
- package/graphql/validation/createWorkflowState.js +5 -4
- package/graphql/validation/createWorkflowState.js.map +1 -1
- package/graphql/validation/deleteWorkflow.js +4 -3
- package/graphql/validation/deleteWorkflow.js.map +1 -1
- package/graphql/validation/getTargetWorkflowState.js +4 -3
- package/graphql/validation/getTargetWorkflowState.js.map +1 -1
- package/graphql/validation/getWorkflow.js +4 -3
- package/graphql/validation/getWorkflow.js.map +1 -1
- package/graphql/validation/getWorkflowState.js +3 -2
- package/graphql/validation/getWorkflowState.js.map +1 -1
- package/graphql/validation/listWorkflowStates.d.ts +4 -4
- package/graphql/validation/listWorkflowStates.js +30 -36
- package/graphql/validation/listWorkflowStates.js.map +1 -1
- package/graphql/validation/listWorkflows.js +15 -18
- package/graphql/validation/listWorkflows.js.map +1 -1
- package/graphql/validation/rejectWorkflowState.js +4 -3
- package/graphql/validation/rejectWorkflowState.js.map +1 -1
- package/graphql/validation/startWorkflowState.js +3 -2
- package/graphql/validation/startWorkflowState.js.map +1 -1
- package/graphql/validation/step.js +12 -17
- package/graphql/validation/step.js.map +1 -1
- package/graphql/validation/storeWorkflow.js +5 -4
- package/graphql/validation/storeWorkflow.js.map +1 -1
- package/graphql/validation/takeOverWorkflowStateStep.js +3 -2
- package/graphql/validation/takeOverWorkflowStateStep.js.map +1 -1
- package/graphql/validation/workflow.js +4 -5
- package/graphql/validation/workflow.js.map +1 -1
- package/graphql/workflowState.js +132 -202
- package/graphql/workflowState.js.map +1 -1
- package/graphql/workflows.js +54 -79
- package/graphql/workflows.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +61 -68
- package/index.js.map +1 -1
- package/package.json +16 -16
- package/types.js +0 -3
- package/features/internal/GetUserTeams/index.js.map +0 -1
- package/features/notifications/ListNotificationTypes/index.js.map +0 -1
- package/features/notifications/NotificationTransport/index.js.map +0 -1
- package/features/shared/abstractions.js.map +0 -1
- package/features/workflow/CreateWorkflow/index.js.map +0 -1
- package/features/workflow/DeleteWorkflow/index.js.map +0 -1
- package/features/workflow/GetWorkflow/index.js.map +0 -1
- package/features/workflow/ListWorkflows/index.js.map +0 -1
- package/features/workflow/StoreWorkflow/index.js.map +0 -1
- package/features/workflow/UpdateWorkflow/index.js.map +0 -1
- package/features/workflowState/ApproveWorkflowStateStep/index.js.map +0 -1
- package/features/workflowState/CancelWorkflowState/index.js.map +0 -1
- package/features/workflowState/CreateWorkflowState/index.js.map +0 -1
- package/features/workflowState/DeleteTargetWorkflowState/index.js.map +0 -1
- package/features/workflowState/DeleteWorkflowState/index.js.map +0 -1
- package/features/workflowState/GetTargetWorkflowState/index.js.map +0 -1
- package/features/workflowState/GetWorkflowState/index.js.map +0 -1
- package/features/workflowState/ListOwnWorkflowStates/index.js.map +0 -1
- package/features/workflowState/ListRequestedWorkflowStates/index.js.map +0 -1
- package/features/workflowState/ListWorkflowStates/index.js.map +0 -1
- package/features/workflowState/RejectWorkflowStateStep/index.js.map +0 -1
- package/features/workflowState/StartWorkflowStateStep/index.js.map +0 -1
- package/features/workflowState/TakeOverWorkflowStateStep/index.js.map +0 -1
- package/features/workflowState/UpdateWorkflowState/index.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -2,66 +2,61 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import { createIdentifier, parseIdentifier } from "@webiny/utils";
|
|
3
3
|
import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
|
|
4
4
|
import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
5
|
-
import { ListWorkflowsRepository
|
|
5
|
+
import { ListWorkflowsRepository } from "./abstractions.js";
|
|
6
6
|
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
7
7
|
import { CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
8
8
|
class ListWorkflowsRepositoryImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
async execute(input) {
|
|
16
|
-
const where = this.cmsWhereMapper.map({
|
|
17
|
-
input: this.convertListWhere(input.where),
|
|
18
|
-
fields: this.model.fields
|
|
19
|
-
});
|
|
20
|
-
const listResult = await this.listLatestEntries.execute(this.model, {
|
|
21
|
-
sort: ["createdOn_ASC"],
|
|
22
|
-
limit: 100,
|
|
23
|
-
...input,
|
|
24
|
-
where
|
|
25
|
-
});
|
|
26
|
-
if (listResult.isFail()) {
|
|
27
|
-
return Result.fail(new WorkflowPersistenceError(listResult.error));
|
|
9
|
+
constructor(listLatestEntries, model, mapper, cmsWhereMapper){
|
|
10
|
+
this.listLatestEntries = listLatestEntries;
|
|
11
|
+
this.model = model;
|
|
12
|
+
this.mapper = mapper;
|
|
13
|
+
this.cmsWhereMapper = cmsWhereMapper;
|
|
28
14
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
15
|
+
async execute(input) {
|
|
16
|
+
const where = this.cmsWhereMapper.map({
|
|
17
|
+
input: this.convertListWhere(input.where),
|
|
18
|
+
fields: this.model.fields
|
|
19
|
+
});
|
|
20
|
+
const listResult = await this.listLatestEntries.execute(this.model, {
|
|
21
|
+
sort: [
|
|
22
|
+
"createdOn_ASC"
|
|
23
|
+
],
|
|
24
|
+
limit: 100,
|
|
25
|
+
...input,
|
|
26
|
+
where
|
|
27
|
+
});
|
|
28
|
+
if (listResult.isFail()) return Result.fail(new WorkflowPersistenceError(listResult.error));
|
|
29
|
+
const { entries, meta } = listResult.value;
|
|
30
|
+
const items = entries.map((entry)=>this.mapper.fromCmsEntry(entry));
|
|
31
|
+
return Result.ok({
|
|
32
|
+
items,
|
|
33
|
+
meta
|
|
34
|
+
});
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
convertListWhere(input) {
|
|
37
|
+
if (!input || 0 === Object.keys(input).length) return;
|
|
38
|
+
const where = structuredClone(input);
|
|
39
|
+
if (where.id) where.id = this.convertWorkflowId(where.id);
|
|
40
|
+
if (where.id_in) where.id_in = where.id_in.map((id)=>this.convertWorkflowId(id));
|
|
41
|
+
return where;
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
convertWorkflowId(input) {
|
|
44
|
+
const { id } = parseIdentifier(input);
|
|
45
|
+
return createIdentifier({
|
|
46
|
+
id,
|
|
47
|
+
version: 1
|
|
48
|
+
});
|
|
49
49
|
}
|
|
50
|
-
return where;
|
|
51
|
-
}
|
|
52
|
-
convertWorkflowId(input) {
|
|
53
|
-
const {
|
|
54
|
-
id
|
|
55
|
-
} = parseIdentifier(input);
|
|
56
|
-
return createIdentifier({
|
|
57
|
-
id,
|
|
58
|
-
version: 1
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
50
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
51
|
+
const ListWorkflowsRepository_ListWorkflowsRepository = ListWorkflowsRepository.createImplementation({
|
|
52
|
+
implementation: ListWorkflowsRepositoryImpl,
|
|
53
|
+
dependencies: [
|
|
54
|
+
ListLatestEntriesUseCase,
|
|
55
|
+
WorkflowModel,
|
|
56
|
+
WorkflowMapper,
|
|
57
|
+
CmsWhereMapper
|
|
58
|
+
]
|
|
65
59
|
});
|
|
60
|
+
export { ListWorkflowsRepository_ListWorkflowsRepository as ListWorkflowsRepository };
|
|
66
61
|
|
|
67
62
|
//# sourceMappingURL=ListWorkflowsRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsRepository.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier, parseIdentifier } from \"@webiny/utils\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { type IListWorkflowsWhere, ListWorkflowsRepository as Repository } from \"./abstractions.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nclass ListWorkflowsRepositoryImpl implements Repository.Interface {\n constructor(\n private listLatestEntries: ListLatestEntriesUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface,\n private cmsWhereMapper: CmsWhereMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const where = this.cmsWhereMapper.map({\n input: this.convertListWhere(input.where),\n fields: this.model.fields\n });\n\n const listResult = await this.listLatestEntries.execute<IWorkflow>(this.model, {\n sort: [\"createdOn_ASC\"],\n limit: 100,\n ...input,\n where\n });\n\n if (listResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(listResult.error));\n }\n\n const { entries, meta } = listResult.value;\n\n const items = entries.map(entry => this.mapper.fromCmsEntry(entry));\n\n return Result.ok({\n items,\n meta\n });\n }\n\n private convertListWhere(input?: IListWorkflowsWhere): IListWorkflowsWhere | undefined {\n if (!input || Object.keys(input).length === 0) {\n return undefined;\n }\n const where = structuredClone(input);\n if (where.id) {\n where.id = this.convertWorkflowId(where.id);\n }\n if (where.id_in) {\n where.id_in = where.id_in.map(id => this.convertWorkflowId(id));\n }\n return where;\n }\n\n private convertWorkflowId(input: string): string {\n const { id } = parseIdentifier(input);\n return createIdentifier({\n id,\n version: 1\n });\n }\n}\n\nexport const ListWorkflowsRepository = Repository.createImplementation({\n implementation: ListWorkflowsRepositoryImpl,\n dependencies: [ListLatestEntriesUseCase, WorkflowModel, WorkflowMapper, CmsWhereMapper]\n});\n"],"names":["ListWorkflowsRepositoryImpl","listLatestEntries","model","mapper","cmsWhereMapper","input","where","listResult","Result","WorkflowPersistenceError","entries","meta","items","entry","Object","structuredClone","id","parseIdentifier","createIdentifier","ListWorkflowsRepository","Repository","ListLatestEntriesUseCase","WorkflowModel","WorkflowMapper","CmsWhereMapper"],"mappings":";;;;;;;AAQA,MAAMA;IACF,YACYC,iBAAqD,EACrDC,KAA8B,EAC9BC,MAAgC,EAChCC,cAAwC,CAClD;aAJUH,iBAAiB,GAAjBA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAClC,OAAO,IAAI,CAAC,gBAAgB,CAACD,MAAM,KAAK;YACxC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;QAC7B;QAEA,MAAME,aAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAE;YAC3E,MAAM;gBAAC;aAAgB;YACvB,OAAO;YACP,GAAGF,KAAK;YACRC;QACJ;QAEA,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,WAAW,KAAK;QAGpE,MAAM,EAAEG,OAAO,EAAEC,IAAI,EAAE,GAAGJ,WAAW,KAAK;QAE1C,MAAMK,QAAQF,QAAQ,GAAG,CAACG,CAAAA,QAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAACA;QAE5D,OAAOL,OAAO,EAAE,CAAC;YACbI;YACAD;QACJ;IACJ;IAEQ,iBAAiBN,KAA2B,EAAmC;QACnF,IAAI,CAACA,SAASS,AAA8B,MAA9BA,OAAO,IAAI,CAACT,OAAO,MAAM,EACnC;QAEJ,MAAMC,QAAQS,gBAAgBV;QAC9B,IAAIC,MAAM,EAAE,EACRA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAACA,MAAM,EAAE;QAE9C,IAAIA,MAAM,KAAK,EACXA,MAAM,KAAK,GAAGA,MAAM,KAAK,CAAC,GAAG,CAACU,CAAAA,KAAM,IAAI,CAAC,iBAAiB,CAACA;QAE/D,OAAOV;IACX;IAEQ,kBAAkBD,KAAa,EAAU;QAC7C,MAAM,EAAEW,EAAE,EAAE,GAAGC,gBAAgBZ;QAC/B,OAAOa,iBAAiB;YACpBF;YACA,SAAS;QACb;IACJ;AACJ;AAEO,MAAMG,kDAA0BC,wBAAAA,oBAA+B,CAAC;IACnE,gBAAgBpB;IAChB,cAAc;QAACqB;QAA0BC;QAAeC;QAAgBC;KAAe;AAC3F"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { ListWorkflowsRepository, ListWorkflowsUseCase
|
|
2
|
+
import { ListWorkflowsRepository, ListWorkflowsUseCase } from "./abstractions.js";
|
|
3
3
|
class ListWorkflowsUseCaseImpl {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
constructor(repository){
|
|
5
|
+
this.repository = repository;
|
|
6
|
+
}
|
|
7
|
+
async execute(input) {
|
|
8
|
+
const result = await this.repository.execute(input);
|
|
9
|
+
if (result.isFail()) return result;
|
|
10
|
+
return Result.ok(result.value);
|
|
11
11
|
}
|
|
12
|
-
return Result.ok(result.value);
|
|
13
|
-
}
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const ListWorkflowsUseCase_ListWorkflowsUseCase = ListWorkflowsUseCase.createImplementation({
|
|
14
|
+
implementation: ListWorkflowsUseCaseImpl,
|
|
15
|
+
dependencies: [
|
|
16
|
+
ListWorkflowsRepository
|
|
17
|
+
]
|
|
18
18
|
});
|
|
19
|
+
export { ListWorkflowsUseCase_ListWorkflowsUseCase as ListWorkflowsUseCase };
|
|
19
20
|
|
|
20
21
|
//# sourceMappingURL=ListWorkflowsUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/ListWorkflows/ListWorkflowsUseCase.js","sources":["../../../../src/features/workflow/ListWorkflows/ListWorkflowsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListWorkflowsRepository, ListWorkflowsUseCase as UseCase } from \"./abstractions.js\";\n\nclass ListWorkflowsUseCaseImpl implements UseCase.Interface {\n private readonly repository: ListWorkflowsRepository.Interface;\n\n constructor(repository: ListWorkflowsRepository.Interface) {\n this.repository = repository;\n }\n\n async execute(input: UseCase.Params): UseCase.Return {\n const result = await this.repository.execute(input);\n\n if (result.isFail()) {\n return result;\n }\n\n return Result.ok(result.value);\n }\n}\n\nexport const ListWorkflowsUseCase = UseCase.createImplementation({\n implementation: ListWorkflowsUseCaseImpl,\n dependencies: [ListWorkflowsRepository]\n});\n"],"names":["ListWorkflowsUseCaseImpl","repository","input","result","Result","ListWorkflowsUseCase","UseCase","ListWorkflowsRepository"],"mappings":";;AAGA,MAAMA;IAGF,YAAYC,UAA6C,CAAE;QACvD,IAAI,CAAC,UAAU,GAAGA;IACtB;IAEA,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAMC,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACD;QAE7C,IAAIC,OAAO,MAAM,IACb,OAAOA;QAGX,OAAOC,OAAO,EAAE,CAACD,OAAO,KAAK;IACjC;AACJ;AAEO,MAAME,4CAAuBC,qBAAAA,oBAA4B,CAAC;IAC7D,gBAAgBN;IAChB,cAAc;QAACO;KAAwB;AAC3C"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export const ListWorkflowsUseCase = createAbstraction("ListWorkflowsUseCase");
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* ListWorkflows repository interface
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
export const ListWorkflowsRepository = createAbstraction("ListWorkflowsRepository");
|
|
2
|
+
const ListWorkflowsUseCase = createAbstraction("ListWorkflowsUseCase");
|
|
3
|
+
const ListWorkflowsRepository = createAbstraction("ListWorkflowsRepository");
|
|
4
|
+
export { ListWorkflowsRepository, ListWorkflowsUseCase };
|
|
14
5
|
|
|
15
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/ListWorkflows/abstractions.js","sources":["../../../../src/features/workflow/ListWorkflows/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { IWorkflow } from \"~/domain/workflow/abstractions.js\";\nimport type { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { CmsEntryListSort } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IListWorkflowsWhere {\n app?: string;\n app_in?: string[];\n id?: string;\n id_in?: string[];\n}\n\nexport interface IListWorkflowsParams {\n sort?: CmsEntryListSort;\n limit?: number;\n after?: string;\n where?: IListWorkflowsWhere;\n}\n\nexport interface IListWorkflowsMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport interface IListWorkflowsResult {\n items: IWorkflow[];\n meta: IListWorkflowsMeta;\n}\n\n/**\n * ListWorkflows use case interface\n */\nexport interface IListWorkflowsUseCase {\n execute(input: IListWorkflowsParams): Promise<Result<IListWorkflowsResult, UseCaseError>>;\n}\n\nexport interface IListWorkflowsUseCaseErrors {\n persistence: WorkflowPersistenceError;\n}\n\ntype UseCaseError = IListWorkflowsUseCaseErrors[keyof IListWorkflowsUseCaseErrors];\n\nexport const ListWorkflowsUseCase =\n createAbstraction<IListWorkflowsUseCase>(\"ListWorkflowsUseCase\");\n\nexport namespace ListWorkflowsUseCase {\n export type Interface = IListWorkflowsUseCase;\n export type Params = IListWorkflowsParams;\n export type Return = Promise<Result<IListWorkflowsResult, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * ListWorkflows repository interface\n */\nexport interface IListWorkflowsRepository {\n execute(input: IListWorkflowsParams): Promise<Result<IListWorkflowsResult, RepositoryError>>;\n}\n\nexport interface IListWorkflowsRepositoryErrors {\n persistence: WorkflowPersistenceError;\n}\n\ntype RepositoryError = IListWorkflowsRepositoryErrors[keyof IListWorkflowsRepositoryErrors];\n\nexport const ListWorkflowsRepository =\n createAbstraction<IListWorkflowsRepository>(\"ListWorkflowsRepository\");\n\nexport namespace ListWorkflowsRepository {\n export type Interface = IListWorkflowsRepository;\n export type Params = IListWorkflowsParams;\n export type Return = Promise<Result<IListWorkflowsResult, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"names":["ListWorkflowsUseCase","createAbstraction","ListWorkflowsRepository"],"mappings":";AA4CO,MAAMA,uBACTC,kBAAyC;AAsBtC,MAAMC,0BACTD,kBAA4C"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { ListWorkflowsUseCase } from "./ListWorkflowsUseCase.js";
|
|
3
3
|
import { ListWorkflowsRepository } from "./ListWorkflowsRepository.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const ListWorkflowsFeature = createFeature({
|
|
5
|
+
name: "Workflows/ListWorkflows",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(ListWorkflowsRepository).inSingletonScope();
|
|
8
|
+
container.register(ListWorkflowsUseCase);
|
|
9
|
+
}
|
|
10
10
|
});
|
|
11
|
+
export { ListWorkflowsFeature };
|
|
11
12
|
|
|
12
13
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/ListWorkflows/feature.js","sources":["../../../../src/features/workflow/ListWorkflows/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListWorkflowsUseCase } from \"./ListWorkflowsUseCase.js\";\nimport { ListWorkflowsRepository } from \"./ListWorkflowsRepository.js\";\n\nexport const ListWorkflowsFeature = createFeature({\n name: \"Workflows/ListWorkflows\",\n register(container) {\n container.register(ListWorkflowsRepository).inSingletonScope();\n container.register(ListWorkflowsUseCase);\n }\n});\n"],"names":["ListWorkflowsFeature","createFeature","container","ListWorkflowsRepository","ListWorkflowsUseCase"],"mappings":";;;AAIO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,yBAAyB,gBAAgB;QAC5DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -2,36 +2,34 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
|
|
3
3
|
import { CreateWorkflowUseCase } from "../CreateWorkflow/index.js";
|
|
4
4
|
import { UpdateWorkflowUseCase } from "../UpdateWorkflow/index.js";
|
|
5
|
-
import { StoreWorkflowUseCase
|
|
5
|
+
import { StoreWorkflowUseCase } from "./abstractions.js";
|
|
6
6
|
class StoreWorkflowUseCaseImpl {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
async execute(input) {
|
|
13
|
-
const existingResult = await this.getWorkflow.execute({
|
|
14
|
-
app: input.app,
|
|
15
|
-
id: input.id
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
// If getWorkflow fails with anything other than NotFound, propagate error
|
|
19
|
-
if (existingResult.isFail()) {
|
|
20
|
-
if (existingResult.error.code !== "Workflows/Workflow/NotFound") {
|
|
21
|
-
return Result.fail(existingResult.error);
|
|
22
|
-
}
|
|
7
|
+
constructor(getWorkflow, createWorkflow, updateWorkflow){
|
|
8
|
+
this.getWorkflow = getWorkflow;
|
|
9
|
+
this.createWorkflow = createWorkflow;
|
|
10
|
+
this.updateWorkflow = updateWorkflow;
|
|
23
11
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
async execute(input) {
|
|
13
|
+
const existingResult = await this.getWorkflow.execute({
|
|
14
|
+
app: input.app,
|
|
15
|
+
id: input.id
|
|
16
|
+
});
|
|
17
|
+
if (existingResult.isFail()) {
|
|
18
|
+
if ("Workflows/Workflow/NotFound" !== existingResult.error.code) return Result.fail(existingResult.error);
|
|
19
|
+
}
|
|
20
|
+
const existing = existingResult.isOk() ? existingResult.value : null;
|
|
21
|
+
if (!existing) return this.createWorkflow.execute(input);
|
|
22
|
+
return this.updateWorkflow.execute(input, existing);
|
|
29
23
|
}
|
|
30
|
-
}
|
|
31
24
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const StoreWorkflowUseCase_StoreWorkflowUseCase = StoreWorkflowUseCase.createImplementation({
|
|
26
|
+
implementation: StoreWorkflowUseCaseImpl,
|
|
27
|
+
dependencies: [
|
|
28
|
+
GetWorkflowUseCase,
|
|
29
|
+
CreateWorkflowUseCase,
|
|
30
|
+
UpdateWorkflowUseCase
|
|
31
|
+
]
|
|
35
32
|
});
|
|
33
|
+
export { StoreWorkflowUseCase_StoreWorkflowUseCase as StoreWorkflowUseCase };
|
|
36
34
|
|
|
37
35
|
//# sourceMappingURL=StoreWorkflowUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/StoreWorkflow/StoreWorkflowUseCase.js","sources":["../../../../src/features/workflow/StoreWorkflow/StoreWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { CreateWorkflowUseCase } from \"../CreateWorkflow/index.js\";\nimport { UpdateWorkflowUseCase } from \"../UpdateWorkflow/index.js\";\nimport { StoreWorkflowUseCase as UseCase } from \"./abstractions.js\";\n\nclass StoreWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private getWorkflow: GetWorkflowUseCase.Interface,\n private createWorkflow: CreateWorkflowUseCase.Interface,\n private updateWorkflow: UpdateWorkflowUseCase.Interface\n ) {}\n\n async execute(input: UseCase.Input): UseCase.Return {\n const existingResult = await this.getWorkflow.execute({\n app: input.app,\n id: input.id\n });\n\n // If getWorkflow fails with anything other than NotFound, propagate error\n if (existingResult.isFail()) {\n if (existingResult.error.code !== \"Workflows/Workflow/NotFound\") {\n return Result.fail(existingResult.error);\n }\n }\n\n const existing = existingResult.isOk() ? existingResult.value : null;\n\n if (!existing) {\n return this.createWorkflow.execute(input);\n } else {\n return this.updateWorkflow.execute(input, existing);\n }\n }\n}\n\nexport const StoreWorkflowUseCase = UseCase.createImplementation({\n implementation: StoreWorkflowUseCaseImpl,\n dependencies: [GetWorkflowUseCase, CreateWorkflowUseCase, UpdateWorkflowUseCase]\n});\n"],"names":["StoreWorkflowUseCaseImpl","getWorkflow","createWorkflow","updateWorkflow","input","existingResult","Result","existing","StoreWorkflowUseCase","UseCase","GetWorkflowUseCase","CreateWorkflowUseCase","UpdateWorkflowUseCase"],"mappings":";;;;;AAMA,MAAMA;IACF,YACYC,WAAyC,EACzCC,cAA+C,EAC/CC,cAA+C,CACzD;aAHUF,WAAW,GAAXA;aACAC,cAAc,GAAdA;aACAC,cAAc,GAAdA;IACT;IAEH,MAAM,QAAQC,KAAoB,EAAkB;QAChD,MAAMC,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,KAAKD,MAAM,GAAG;YACd,IAAIA,MAAM,EAAE;QAChB;QAGA,IAAIC,eAAe,MAAM,IACrB;YAAA,IAAIA,AAA8B,kCAA9BA,eAAe,KAAK,CAAC,IAAI,EACzB,OAAOC,OAAO,IAAI,CAACD,eAAe,KAAK;QAC3C;QAGJ,MAAME,WAAWF,eAAe,IAAI,KAAKA,eAAe,KAAK,GAAG;QAEhE,IAAI,CAACE,UACD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAACH;QAEnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAACA,OAAOG;IAElD;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAA4B,CAAC;IAC7D,gBAAgBT;IAChB,cAAc;QAACU;QAAoBC;QAAuBC;KAAsB;AACpF"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* StoreWorkflow use case interface - delegates to CreateWorkflow or UpdateWorkflow
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
export const StoreWorkflowUseCase = createAbstraction("StoreWorkflowUseCase");
|
|
2
|
+
const StoreWorkflowUseCase = createAbstraction("StoreWorkflowUseCase");
|
|
3
|
+
export { StoreWorkflowUseCase };
|
|
10
4
|
|
|
11
5
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/StoreWorkflow/abstractions.js","sources":["../../../../src/features/workflow/StoreWorkflow/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { IWorkflow } from \"~/domain/workflow/abstractions.js\";\nimport type { NonEmptyArray } from \"@webiny/api/types.js\";\nimport {\n type WorkflowNotFoundError,\n type WorkflowNotAuthorizedError,\n type WorkflowPersistenceError,\n type WorkflowValidationError\n} from \"~/domain/workflow/errors.js\";\nimport type { IWorkflowStepInput } from \"~/features/shared/abstractions.js\";\n\n// Input types (from context/abstractions/WorkflowsContext.ts)\nexport interface IStoreWorkflowInput {\n app: string;\n id: string;\n name: string;\n steps: NonEmptyArray<IWorkflowStepInput>;\n}\n\n/**\n * StoreWorkflow use case interface - delegates to CreateWorkflow or UpdateWorkflow\n */\nexport interface IStoreWorkflowUseCase {\n execute(input: IStoreWorkflowInput): Promise<Result<IWorkflow, UseCaseError>>;\n}\n\nexport interface IStoreWorkflowUseCaseErrors {\n notFound: WorkflowNotFoundError;\n notAuthorized: WorkflowNotAuthorizedError;\n persistence: WorkflowPersistenceError;\n validation: WorkflowValidationError;\n}\n\ntype UseCaseError = IStoreWorkflowUseCaseErrors[keyof IStoreWorkflowUseCaseErrors];\n\nexport const StoreWorkflowUseCase =\n createAbstraction<IStoreWorkflowUseCase>(\"StoreWorkflowUseCase\");\n\nexport namespace StoreWorkflowUseCase {\n export type Interface = IStoreWorkflowUseCase;\n export type Input = IStoreWorkflowInput;\n export type Return = Promise<Result<IWorkflow, UseCaseError>>;\n export type Error = UseCaseError;\n}\n"],"names":["StoreWorkflowUseCase","createAbstraction"],"mappings":";AAoCO,MAAMA,uBACTC,kBAAyC"}
|
|
@@ -2,16 +2,14 @@ import { createFeature } from "@webiny/feature/api";
|
|
|
2
2
|
import { StoreWorkflowUseCase } from "./StoreWorkflowUseCase.js";
|
|
3
3
|
import { CreateWorkflowFeature } from "../CreateWorkflow/index.js";
|
|
4
4
|
import { UpdateWorkflowFeature } from "../UpdateWorkflow/index.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// Register StoreWorkflow use case
|
|
13
|
-
container.register(StoreWorkflowUseCase);
|
|
14
|
-
}
|
|
5
|
+
const StoreWorkflowFeature = createFeature({
|
|
6
|
+
name: "Workflows/StoreWorkflow",
|
|
7
|
+
register (container) {
|
|
8
|
+
CreateWorkflowFeature.register(container);
|
|
9
|
+
UpdateWorkflowFeature.register(container);
|
|
10
|
+
container.register(StoreWorkflowUseCase);
|
|
11
|
+
}
|
|
15
12
|
});
|
|
13
|
+
export { StoreWorkflowFeature };
|
|
16
14
|
|
|
17
15
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/StoreWorkflow/feature.js","sources":["../../../../src/features/workflow/StoreWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { StoreWorkflowUseCase } from \"./StoreWorkflowUseCase.js\";\nimport { CreateWorkflowFeature } from \"../CreateWorkflow/index.js\";\nimport { UpdateWorkflowFeature } from \"../UpdateWorkflow/index.js\";\n\nexport const StoreWorkflowFeature = createFeature({\n name: \"Workflows/StoreWorkflow\",\n register(container) {\n // Register dependencies\n CreateWorkflowFeature.register(container);\n UpdateWorkflowFeature.register(container);\n\n // Register StoreWorkflow use case\n container.register(StoreWorkflowUseCase);\n }\n});\n"],"names":["StoreWorkflowFeature","createFeature","container","CreateWorkflowFeature","UpdateWorkflowFeature","StoreWorkflowUseCase"],"mappings":";;;;AAKO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QAEdC,sBAAsB,QAAQ,CAACD;QAC/BE,sBAAsB,QAAQ,CAACF;QAG/BA,UAAU,QAAQ,CAACG;IACvB;AACJ"}
|
|
@@ -4,46 +4,47 @@ import { createIdentifier } from "@webiny/utils";
|
|
|
4
4
|
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
5
5
|
import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
|
|
6
6
|
import { WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
7
|
-
import { UpdateWorkflowRepository
|
|
7
|
+
import { UpdateWorkflowRepository } from "./abstractions.js";
|
|
8
8
|
class UpdateWorkflowRepositoryImpl {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
39
|
-
} catch (error) {
|
|
40
|
-
return Result.fail(new WorkflowPersistenceError(error));
|
|
9
|
+
constructor(updateEntry, model, mapper){
|
|
10
|
+
this.updateEntry = updateEntry;
|
|
11
|
+
this.model = model;
|
|
12
|
+
this.mapper = mapper;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
const { id } = parseIdentifier(input.id);
|
|
16
|
+
const values = this.mapper.toCmsEntry({
|
|
17
|
+
id,
|
|
18
|
+
app: input.app,
|
|
19
|
+
name: input.name,
|
|
20
|
+
steps: input.steps
|
|
21
|
+
});
|
|
22
|
+
const workflowId = createIdentifier({
|
|
23
|
+
id,
|
|
24
|
+
version: 1
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
const updateResult = await this.updateEntry.execute(this.model, workflowId, {
|
|
28
|
+
values
|
|
29
|
+
});
|
|
30
|
+
if (updateResult.isFail()) return Result.fail(new WorkflowPersistenceError(updateResult.error));
|
|
31
|
+
return Result.ok({
|
|
32
|
+
...values,
|
|
33
|
+
id
|
|
34
|
+
});
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return Result.fail(new WorkflowPersistenceError(error));
|
|
37
|
+
}
|
|
41
38
|
}
|
|
42
|
-
}
|
|
43
39
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
const UpdateWorkflowRepository_UpdateWorkflowRepository = UpdateWorkflowRepository.createImplementation({
|
|
41
|
+
implementation: UpdateWorkflowRepositoryImpl,
|
|
42
|
+
dependencies: [
|
|
43
|
+
UpdateEntryUseCase,
|
|
44
|
+
WorkflowModel,
|
|
45
|
+
WorkflowMapper
|
|
46
|
+
]
|
|
47
47
|
});
|
|
48
|
+
export { UpdateWorkflowRepository_UpdateWorkflowRepository as UpdateWorkflowRepository };
|
|
48
49
|
|
|
49
50
|
//# sourceMappingURL=UpdateWorkflowRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/UpdateWorkflow/UpdateWorkflowRepository.js","sources":["../../../../src/features/workflow/UpdateWorkflow/UpdateWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport type { IUpdateWorkflowInput } from \"./abstractions.js\";\nimport { UpdateWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass UpdateWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private updateEntry: UpdateEntryUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: IUpdateWorkflowInput): Repository.Return {\n const { id } = parseIdentifier(input.id);\n\n const values = this.mapper.toCmsEntry({\n id,\n app: input.app,\n name: input.name,\n steps: input.steps\n });\n\n const workflowId = createIdentifier({\n id,\n version: 1\n });\n\n try {\n const updateResult = await this.updateEntry.execute<IWorkflow>(this.model, workflowId, {\n values\n });\n\n if (updateResult.isFail()) {\n return Result.fail(new WorkflowPersistenceError(updateResult.error));\n }\n\n return Result.ok({\n ...values,\n id\n });\n } catch (error) {\n return Result.fail(new WorkflowPersistenceError(error as Error));\n }\n }\n}\n\nexport const UpdateWorkflowRepository = Repository.createImplementation({\n implementation: UpdateWorkflowRepositoryImpl,\n dependencies: [UpdateEntryUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["UpdateWorkflowRepositoryImpl","updateEntry","model","mapper","input","id","parseIdentifier","values","workflowId","createIdentifier","updateResult","Result","WorkflowPersistenceError","error","UpdateWorkflowRepository","Repository","UpdateEntryUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;;AASA,MAAMA;IACF,YACYC,WAAyC,EACzCC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,WAAW,GAAXA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAA2B,EAAqB;QAC1D,MAAM,EAAEC,EAAE,EAAE,GAAGC,gBAAgBF,MAAM,EAAE;QAEvC,MAAMG,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAClCF;YACA,KAAKD,MAAM,GAAG;YACd,MAAMA,MAAM,IAAI;YAChB,OAAOA,MAAM,KAAK;QACtB;QAEA,MAAMI,aAAaC,iBAAiB;YAChCJ;YACA,SAAS;QACb;QAEA,IAAI;YACA,MAAMK,eAAe,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAEF,YAAY;gBACnFD;YACJ;YAEA,IAAIG,aAAa,MAAM,IACnB,OAAOC,OAAO,IAAI,CAAC,IAAIC,yBAAyBF,aAAa,KAAK;YAGtE,OAAOC,OAAO,EAAE,CAAC;gBACb,GAAGJ,MAAM;gBACTF;YACJ;QACJ,EAAE,OAAOQ,OAAO;YACZ,OAAOF,OAAO,IAAI,CAAC,IAAIC,yBAAyBC;QACpD;IACJ;AACJ;AAEO,MAAMC,oDAA2BC,yBAAAA,oBAA+B,CAAC;IACpE,gBAAgBf;IAChB,cAAc;QAACgB;QAAoBC;QAAeC;KAAe;AACrE"}
|