@webiny/api-workflows 6.3.0 → 6.4.0-beta.0
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.js +53 -67
- 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,57 +2,52 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
3
3
|
import { EventPublisher } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
4
4
|
import { GetWorkflowUseCase } from "../GetWorkflow/index.js";
|
|
5
|
-
import { DeleteWorkflowRepository, DeleteWorkflowUseCase
|
|
5
|
+
import { DeleteWorkflowRepository, DeleteWorkflowUseCase } from "./abstractions.js";
|
|
6
6
|
import { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from "./events.js";
|
|
7
7
|
import { WorkflowNotAuthorizedError, WorkflowNotFoundError } from "../../../domain/workflow/errors.js";
|
|
8
8
|
import { WORKFLOWS_PERMISSION } from "../../../constants.js";
|
|
9
9
|
class DeleteWorkflowUseCaseImpl {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
async execute(input) {
|
|
17
|
-
const hasAccess = await this.ensureManageAccess();
|
|
18
|
-
if (hasAccess.isFail()) {
|
|
19
|
-
return Result.fail(hasAccess.error);
|
|
10
|
+
constructor(identityContext, eventPublisher, getWorkflow, repository){
|
|
11
|
+
this.identityContext = identityContext;
|
|
12
|
+
this.eventPublisher = eventPublisher;
|
|
13
|
+
this.getWorkflow = getWorkflow;
|
|
14
|
+
this.repository = repository;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}));
|
|
39
|
-
return Result.ok();
|
|
40
|
-
}
|
|
41
|
-
async ensureManageAccess() {
|
|
42
|
-
const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
|
|
43
|
-
for (const permission of permissions) {
|
|
44
|
-
if (permission.name === "*") {
|
|
16
|
+
async execute(input) {
|
|
17
|
+
const hasAccess = await this.ensureManageAccess();
|
|
18
|
+
if (hasAccess.isFail()) return Result.fail(hasAccess.error);
|
|
19
|
+
const workflowResult = await this.getWorkflow.execute(input);
|
|
20
|
+
if (workflowResult.isFail()) return Result.fail(new WorkflowNotFoundError({
|
|
21
|
+
id: input.id,
|
|
22
|
+
app: input.app
|
|
23
|
+
}));
|
|
24
|
+
const workflow = workflowResult.value;
|
|
25
|
+
await this.eventPublisher.publish(new WorkflowBeforeDeleteEvent({
|
|
26
|
+
workflow
|
|
27
|
+
}));
|
|
28
|
+
const result = await this.repository.execute(input);
|
|
29
|
+
if (result.isFail()) return result;
|
|
30
|
+
await this.eventPublisher.publish(new WorkflowAfterDeleteEvent({
|
|
31
|
+
workflow
|
|
32
|
+
}));
|
|
45
33
|
return Result.ok();
|
|
46
|
-
} else if (permission.editor) {
|
|
47
|
-
return Result.ok();
|
|
48
|
-
}
|
|
49
34
|
}
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
async ensureManageAccess() {
|
|
36
|
+
const permissions = await this.identityContext.getPermissions(WORKFLOWS_PERMISSION);
|
|
37
|
+
for (const permission of permissions)if ("*" === permission.name) return Result.ok();
|
|
38
|
+
else if (permission.editor) return Result.ok();
|
|
39
|
+
return Result.fail(new WorkflowNotAuthorizedError("You cannot manage workflows."));
|
|
40
|
+
}
|
|
52
41
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
const DeleteWorkflowUseCase_DeleteWorkflowUseCase = DeleteWorkflowUseCase.createImplementation({
|
|
43
|
+
implementation: DeleteWorkflowUseCaseImpl,
|
|
44
|
+
dependencies: [
|
|
45
|
+
IdentityContext,
|
|
46
|
+
EventPublisher,
|
|
47
|
+
GetWorkflowUseCase,
|
|
48
|
+
DeleteWorkflowRepository
|
|
49
|
+
]
|
|
56
50
|
});
|
|
51
|
+
export { DeleteWorkflowUseCase_DeleteWorkflowUseCase as DeleteWorkflowUseCase };
|
|
57
52
|
|
|
58
53
|
//# sourceMappingURL=DeleteWorkflowUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.js","sources":["../../../../src/features/workflow/DeleteWorkflow/DeleteWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport { GetWorkflowUseCase } from \"../GetWorkflow/index.js\";\nimport { DeleteWorkflowRepository, DeleteWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowAfterDeleteEvent, WorkflowBeforeDeleteEvent } from \"./events.js\";\nimport { WorkflowNotAuthorizedError, WorkflowNotFoundError } from \"~/domain/workflow/errors.js\";\nimport { WORKFLOWS_PERMISSION } from \"~/constants.js\";\nimport type { IWorkflowsSecurityPermission } from \"~/types.js\";\n\nclass DeleteWorkflowUseCaseImpl implements UseCase.Interface {\n constructor(\n private identityContext: IdentityContext.Interface,\n private eventPublisher: EventPublisher.Interface,\n private getWorkflow: GetWorkflowUseCase.Interface,\n private repository: DeleteWorkflowRepository.Interface\n ) {}\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureManageAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\n const workflowResult = await this.getWorkflow.execute(input);\n if (workflowResult.isFail()) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = workflowResult.value;\n\n await this.eventPublisher.publish(\n new WorkflowBeforeDeleteEvent({\n workflow\n })\n );\n\n const result = await this.repository.execute(input);\n if (result.isFail()) {\n return result;\n }\n\n await this.eventPublisher.publish(\n new WorkflowAfterDeleteEvent({\n workflow\n })\n );\n\n return Result.ok();\n }\n\n private async ensureManageAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const permissions =\n await this.identityContext.getPermissions<IWorkflowsSecurityPermission>(\n WORKFLOWS_PERMISSION\n );\n\n for (const permission of permissions) {\n if (permission.name === \"*\") {\n return Result.ok();\n } else if (permission.editor) {\n return Result.ok();\n }\n }\n\n return Result.fail(new WorkflowNotAuthorizedError(\"You cannot manage workflows.\"));\n }\n}\n\nexport const DeleteWorkflowUseCase = UseCase.createImplementation({\n implementation: DeleteWorkflowUseCaseImpl,\n dependencies: [IdentityContext, EventPublisher, GetWorkflowUseCase, DeleteWorkflowRepository]\n});\n"],"names":["DeleteWorkflowUseCaseImpl","identityContext","eventPublisher","getWorkflow","repository","input","hasAccess","Result","workflowResult","WorkflowNotFoundError","workflow","WorkflowBeforeDeleteEvent","result","WorkflowAfterDeleteEvent","permissions","WORKFLOWS_PERMISSION","permission","WorkflowNotAuthorizedError","DeleteWorkflowUseCase","UseCase","IdentityContext","EventPublisher","GetWorkflowUseCase","DeleteWorkflowRepository"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACYC,eAA0C,EAC1CC,cAAwC,EACxCC,WAAyC,EACzCC,UAA8C,CACxD;aAJUH,eAAe,GAAfA;aACAC,cAAc,GAAdA;aACAC,WAAW,GAAXA;aACAC,UAAU,GAAVA;IACT;IAEH,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAMC,YAAY,MAAM,IAAI,CAAC,kBAAkB;QAC/C,IAAIA,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,iBAAiB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAACH;QACtD,IAAIG,eAAe,MAAM,IACrB,OAAOD,OAAO,IAAI,CACd,IAAIE,sBAAsB;YACtB,IAAIJ,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMK,WAAWF,eAAe,KAAK;QAErC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIG,0BAA0B;YAC1BD;QACJ;QAGJ,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACP;QAC7C,IAAIO,OAAO,MAAM,IACb,OAAOA;QAGX,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAC7B,IAAIC,yBAAyB;YACzBH;QACJ;QAGJ,OAAOH,OAAO,EAAE;IACpB;IAEA,MAAc,qBAAwE;QAClF,MAAMO,cACF,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CACrCC;QAGR,KAAK,MAAMC,cAAcF,YACrB,IAAIE,AAAoB,QAApBA,WAAW,IAAI,EACf,OAAOT,OAAO,EAAE;aACb,IAAIS,WAAW,MAAM,EACxB,OAAOT,OAAO,EAAE;QAIxB,OAAOA,OAAO,IAAI,CAAC,IAAIU,2BAA2B;IACtD;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA4B,CAAC;IAC9D,gBAAgBnB;IAChB,cAAc;QAACoB;QAAiBC;QAAgBC;QAAoBC;KAAyB;AACjG"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// Event payloads
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* DeleteWorkflow use case interface
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
export const DeleteWorkflowUseCase = createAbstraction("DeleteWorkflowUseCase");
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* DeleteWorkflow repository interface
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
export const DeleteWorkflowRepository = createAbstraction("DeleteWorkflowRepository");
|
|
2
|
+
const DeleteWorkflowUseCase = createAbstraction("DeleteWorkflowUseCase");
|
|
3
|
+
const DeleteWorkflowRepository = createAbstraction("DeleteWorkflowRepository");
|
|
4
|
+
export { DeleteWorkflowRepository, DeleteWorkflowUseCase };
|
|
18
5
|
|
|
19
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/DeleteWorkflow/abstractions.js","sources":["../../../../src/features/workflow/DeleteWorkflow/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 {\n type WorkflowNotFoundError,\n type WorkflowNotAuthorizedError,\n type WorkflowPersistenceError\n} from \"~/domain/workflow/errors.js\";\n\n// Input types\nexport interface IDeleteWorkflowParams {\n app: string;\n id: string;\n}\n\n// Event payloads\nexport interface WorkflowBeforeDeletePayload {\n workflow: IWorkflow;\n}\n\nexport interface WorkflowAfterDeletePayload {\n workflow: IWorkflow;\n}\n\n/**\n * DeleteWorkflow use case interface\n */\nexport interface IDeleteWorkflowUseCase {\n execute(input: IDeleteWorkflowParams): Promise<Result<void, UseCaseError>>;\n}\n\nexport interface IDeleteWorkflowUseCaseErrors {\n notFound: WorkflowNotFoundError;\n notAuthorized: WorkflowNotAuthorizedError;\n persistence: WorkflowPersistenceError;\n}\n\ntype UseCaseError = IDeleteWorkflowUseCaseErrors[keyof IDeleteWorkflowUseCaseErrors];\n\nexport const DeleteWorkflowUseCase =\n createAbstraction<IDeleteWorkflowUseCase>(\"DeleteWorkflowUseCase\");\n\nexport namespace DeleteWorkflowUseCase {\n export type Interface = IDeleteWorkflowUseCase;\n export type Params = IDeleteWorkflowParams;\n export type Return = Promise<Result<void, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * DeleteWorkflow repository interface\n */\nexport interface IDeleteWorkflowRepository {\n execute(input: IDeleteWorkflowParams): Promise<Result<void, RepositoryError>>;\n}\n\nexport interface IDeleteWorkflowRepositoryErrors {\n persistence: WorkflowPersistenceError;\n}\n\ntype RepositoryError = IDeleteWorkflowRepositoryErrors[keyof IDeleteWorkflowRepositoryErrors];\n\nexport const DeleteWorkflowRepository = createAbstraction<IDeleteWorkflowRepository>(\n \"DeleteWorkflowRepository\"\n);\n\nexport namespace DeleteWorkflowRepository {\n export type Interface = IDeleteWorkflowRepository;\n export type Params = IDeleteWorkflowParams;\n export type Return = Promise<Result<void, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"names":["DeleteWorkflowUseCase","createAbstraction","DeleteWorkflowRepository"],"mappings":";AAuCO,MAAMA,wBACTC,kBAA0C;AAsBvC,MAAMC,2BAA2BD,kBACpC"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
2
|
import { DomainEvent } from "@webiny/api-core/features/eventPublisher/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
class WorkflowBeforeDeleteEvent extends DomainEvent {
|
|
4
|
+
getHandlerAbstraction() {
|
|
5
|
+
return WorkflowBeforeDeleteHandler;
|
|
6
|
+
}
|
|
7
|
+
constructor(...args){
|
|
8
|
+
super(...args), this.eventType = "workflow.beforeDelete";
|
|
9
|
+
}
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const WorkflowBeforeDeleteHandler = createAbstraction("WorkflowBeforeDeleteHandler");
|
|
12
|
+
class WorkflowAfterDeleteEvent extends DomainEvent {
|
|
13
|
+
getHandlerAbstraction() {
|
|
14
|
+
return WorkflowAfterDeleteHandler;
|
|
15
|
+
}
|
|
16
|
+
constructor(...args){
|
|
17
|
+
super(...args), this.eventType = "workflow.afterDelete";
|
|
18
|
+
}
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
const WorkflowAfterDeleteHandler = createAbstraction("WorkflowAfterDeleteHandler");
|
|
21
|
+
export { WorkflowAfterDeleteEvent, WorkflowAfterDeleteHandler, WorkflowBeforeDeleteEvent, WorkflowBeforeDeleteHandler };
|
|
19
22
|
|
|
20
23
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/DeleteWorkflow/events.js","sources":["../../../../src/features/workflow/DeleteWorkflow/events.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport { DomainEvent } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { IEventHandler } from \"@webiny/api-core/features/eventPublisher/index.js\";\nimport type { WorkflowBeforeDeletePayload, WorkflowAfterDeletePayload } from \"./abstractions.js\";\n\n// Before delete event\nexport class WorkflowBeforeDeleteEvent extends DomainEvent<WorkflowBeforeDeletePayload> {\n eventType = \"workflow.beforeDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowBeforeDeleteHandler;\n }\n}\n\nexport const WorkflowBeforeDeleteHandler = createAbstraction<\n IEventHandler<WorkflowBeforeDeleteEvent>\n>(\"WorkflowBeforeDeleteHandler\");\n\nexport namespace WorkflowBeforeDeleteHandler {\n export type Interface = IEventHandler<WorkflowBeforeDeleteEvent>;\n export type Event = WorkflowBeforeDeleteEvent;\n}\n\n// After delete event\nexport class WorkflowAfterDeleteEvent extends DomainEvent<WorkflowAfterDeletePayload> {\n eventType = \"workflow.afterDelete\" as const;\n\n getHandlerAbstraction() {\n return WorkflowAfterDeleteHandler;\n }\n}\n\nexport const WorkflowAfterDeleteHandler = createAbstraction<\n IEventHandler<WorkflowAfterDeleteEvent>\n>(\"WorkflowAfterDeleteHandler\");\n\nexport namespace WorkflowAfterDeleteHandler {\n export type Interface = IEventHandler<WorkflowAfterDeleteEvent>;\n export type Event = WorkflowAfterDeleteEvent;\n}\n"],"names":["WorkflowBeforeDeleteEvent","DomainEvent","WorkflowBeforeDeleteHandler","createAbstraction","WorkflowAfterDeleteEvent","WorkflowAfterDeleteHandler"],"mappings":";;AAMO,MAAMA,kCAAkCC;IAG3C,wBAAwB;QACpB,OAAOC;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,8BAA8BC,kBAEzC;AAQK,MAAMC,iCAAiCH;IAG1C,wBAAwB;QACpB,OAAOI;IACX;;QALG,qBACH,SAAS,GAAG;;AAKhB;AAEO,MAAMA,6BAA6BF,kBAExC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteWorkflowUseCase } from "./DeleteWorkflowUseCase.js";
|
|
3
3
|
import { DeleteWorkflowRepository } from "./DeleteWorkflowRepository.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const DeleteWorkflowFeature = createFeature({
|
|
5
|
+
name: "Workflows/DeleteWorkflow",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(DeleteWorkflowRepository).inSingletonScope();
|
|
8
|
+
container.register(DeleteWorkflowUseCase);
|
|
9
|
+
}
|
|
10
10
|
});
|
|
11
|
+
export { DeleteWorkflowFeature };
|
|
11
12
|
|
|
12
13
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/DeleteWorkflow/feature.js","sources":["../../../../src/features/workflow/DeleteWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { DeleteWorkflowUseCase } from \"./DeleteWorkflowUseCase.js\";\nimport { DeleteWorkflowRepository } from \"./DeleteWorkflowRepository.js\";\n\nexport const DeleteWorkflowFeature = createFeature({\n name: \"Workflows/DeleteWorkflow\",\n register(container) {\n container.register(DeleteWorkflowRepository).inSingletonScope();\n container.register(DeleteWorkflowUseCase);\n }\n});\n"],"names":["DeleteWorkflowFeature","createFeature","container","DeleteWorkflowRepository","DeleteWorkflowUseCase"],"mappings":";;;AAIO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,0BAA0B,gBAAgB;QAC7DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
export { DeleteWorkflowFeature } from "./feature.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
2
|
+
export { DeleteWorkflowRepository, DeleteWorkflowUseCase } from "./abstractions.js";
|
|
3
|
+
export { WorkflowAfterDeleteEvent, WorkflowAfterDeleteHandler, WorkflowBeforeDeleteEvent, WorkflowBeforeDeleteHandler } from "./events.js";
|
|
@@ -3,44 +3,43 @@ import { createIdentifier } from "@webiny/utils";
|
|
|
3
3
|
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
4
4
|
import { WorkflowMapper, WorkflowModel } from "../../../domain/workflow/abstractions.js";
|
|
5
5
|
import { WorkflowNotFoundError, WorkflowPersistenceError } from "../../../domain/workflow/errors.js";
|
|
6
|
-
import { GetWorkflowRepository
|
|
6
|
+
import { GetWorkflowRepository } from "./abstractions.js";
|
|
7
7
|
class GetWorkflowRepositoryImpl {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
async execute(input) {
|
|
14
|
-
const id = createIdentifier({
|
|
15
|
-
id: input.id,
|
|
16
|
-
version: 1
|
|
17
|
-
});
|
|
18
|
-
const entryResult = await this.getEntryById.execute(this.model, id);
|
|
19
|
-
if (entryResult.isFail()) {
|
|
20
|
-
if (entryResult.error.code === "Cms/Entry/NotFound") {
|
|
21
|
-
return Result.fail(new WorkflowNotFoundError({
|
|
22
|
-
id: input.id,
|
|
23
|
-
app: input.app
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
return Result.fail(new WorkflowPersistenceError(entryResult.error));
|
|
8
|
+
constructor(getEntryById, model, mapper){
|
|
9
|
+
this.getEntryById = getEntryById;
|
|
10
|
+
this.model = model;
|
|
11
|
+
this.mapper = mapper;
|
|
27
12
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
13
|
+
async execute(input) {
|
|
14
|
+
const id = createIdentifier({
|
|
15
|
+
id: input.id,
|
|
16
|
+
version: 1
|
|
17
|
+
});
|
|
18
|
+
const entryResult = await this.getEntryById.execute(this.model, id);
|
|
19
|
+
if (entryResult.isFail()) {
|
|
20
|
+
if ("Cms/Entry/NotFound" === entryResult.error.code) return Result.fail(new WorkflowNotFoundError({
|
|
21
|
+
id: input.id,
|
|
22
|
+
app: input.app
|
|
23
|
+
}));
|
|
24
|
+
return Result.fail(new WorkflowPersistenceError(entryResult.error));
|
|
25
|
+
}
|
|
26
|
+
const entry = entryResult.value;
|
|
27
|
+
if (entry.values.app !== input.app) return Result.fail(new WorkflowNotFoundError({
|
|
28
|
+
id: input.id,
|
|
29
|
+
app: input.app
|
|
30
|
+
}));
|
|
31
|
+
const workflow = this.mapper.fromCmsEntry(entry);
|
|
32
|
+
return Result.ok(workflow);
|
|
36
33
|
}
|
|
37
|
-
const workflow = this.mapper.fromCmsEntry(entry);
|
|
38
|
-
return Result.ok(workflow);
|
|
39
|
-
}
|
|
40
34
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
const GetWorkflowRepository_GetWorkflowRepository = GetWorkflowRepository.createImplementation({
|
|
36
|
+
implementation: GetWorkflowRepositoryImpl,
|
|
37
|
+
dependencies: [
|
|
38
|
+
GetEntryByIdUseCase,
|
|
39
|
+
WorkflowModel,
|
|
40
|
+
WorkflowMapper
|
|
41
|
+
]
|
|
44
42
|
});
|
|
43
|
+
export { GetWorkflowRepository_GetWorkflowRepository as GetWorkflowRepository };
|
|
45
44
|
|
|
46
45
|
//# sourceMappingURL=GetWorkflowRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowRepository.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createIdentifier } from \"@webiny/utils\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { type IWorkflow, WorkflowMapper, WorkflowModel } from \"~/domain/workflow/abstractions.js\";\nimport { WorkflowNotFoundError, WorkflowPersistenceError } from \"~/domain/workflow/errors.js\";\nimport { GetWorkflowRepository as Repository } from \"./abstractions.js\";\n\nclass GetWorkflowRepositoryImpl implements Repository.Interface {\n constructor(\n private getEntryById: GetEntryByIdUseCase.Interface,\n private model: WorkflowModel.Interface,\n private mapper: WorkflowMapper.Interface\n ) {}\n\n async execute(input: Repository.Params): Repository.Return {\n const id = createIdentifier({\n id: input.id,\n version: 1\n });\n\n const entryResult = await this.getEntryById.execute<IWorkflow>(this.model, id);\n\n if (entryResult.isFail()) {\n if (entryResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n return Result.fail(new WorkflowPersistenceError(entryResult.error));\n }\n\n const entry = entryResult.value;\n\n // Check if the app matches\n if (entry.values.app !== input.app) {\n return Result.fail(\n new WorkflowNotFoundError({\n id: input.id,\n app: input.app\n })\n );\n }\n\n const workflow = this.mapper.fromCmsEntry(entry);\n return Result.ok(workflow);\n }\n}\n\nexport const GetWorkflowRepository = Repository.createImplementation({\n implementation: GetWorkflowRepositoryImpl,\n dependencies: [GetEntryByIdUseCase, WorkflowModel, WorkflowMapper]\n});\n"],"names":["GetWorkflowRepositoryImpl","getEntryById","model","mapper","input","id","createIdentifier","entryResult","Result","WorkflowNotFoundError","WorkflowPersistenceError","entry","workflow","GetWorkflowRepository","Repository","GetEntryByIdUseCase","WorkflowModel","WorkflowMapper"],"mappings":";;;;;;AAOA,MAAMA;IACF,YACYC,YAA2C,EAC3CC,KAA8B,EAC9BC,MAAgC,CAC1C;aAHUF,YAAY,GAAZA;aACAC,KAAK,GAALA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,KAAwB,EAAqB;QACvD,MAAMC,KAAKC,iBAAiB;YACxB,IAAIF,MAAM,EAAE;YACZ,SAAS;QACb;QAEA,MAAMG,cAAc,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAY,IAAI,CAAC,KAAK,EAAEF;QAE3E,IAAIE,YAAY,MAAM,IAAI;YACtB,IAAIA,AAA2B,yBAA3BA,YAAY,KAAK,CAAC,IAAI,EACtB,OAAOC,OAAO,IAAI,CACd,IAAIC,sBAAsB;gBACtB,IAAIL,MAAM,EAAE;gBACZ,KAAKA,MAAM,GAAG;YAClB;YAIR,OAAOI,OAAO,IAAI,CAAC,IAAIE,yBAAyBH,YAAY,KAAK;QACrE;QAEA,MAAMI,QAAQJ,YAAY,KAAK;QAG/B,IAAII,MAAM,MAAM,CAAC,GAAG,KAAKP,MAAM,GAAG,EAC9B,OAAOI,OAAO,IAAI,CACd,IAAIC,sBAAsB;YACtB,IAAIL,MAAM,EAAE;YACZ,KAAKA,MAAM,GAAG;QAClB;QAIR,MAAMQ,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAACD;QAC1C,OAAOH,OAAO,EAAE,CAACI;IACrB;AACJ;AAEO,MAAMC,8CAAwBC,sBAAAA,oBAA+B,CAAC;IACjE,gBAAgBd;IAChB,cAAc;QAACe;QAAqBC;QAAeC;KAAe;AACtE"}
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
|
-
import { GetWorkflowRepository, GetWorkflowUseCase
|
|
2
|
+
import { GetWorkflowRepository, GetWorkflowUseCase } from "./abstractions.js";
|
|
3
3
|
import { WorkflowNotAuthorizedError } from "../../../domain/workflow/errors.js";
|
|
4
4
|
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
5
5
|
class GetWorkflowUseCaseImpl {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
async execute(input) {
|
|
11
|
-
const hasAccess = await this.ensureHasAccess();
|
|
12
|
-
if (hasAccess.isFail()) {
|
|
13
|
-
return Result.fail(hasAccess.error);
|
|
6
|
+
constructor(repository, identityContext){
|
|
7
|
+
this.repository = repository;
|
|
8
|
+
this.identityContext = identityContext;
|
|
14
9
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
async execute(input) {
|
|
11
|
+
const hasAccess = await this.ensureHasAccess();
|
|
12
|
+
if (hasAccess.isFail()) return Result.fail(hasAccess.error);
|
|
13
|
+
const result = await this.repository.execute(input);
|
|
14
|
+
if (result.isFail()) return result;
|
|
15
|
+
return Result.ok(result.value);
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (!identity.isAnonymous()) {
|
|
24
|
-
return Result.ok();
|
|
17
|
+
async ensureHasAccess() {
|
|
18
|
+
const identity = this.identityContext.getIdentity();
|
|
19
|
+
if (!identity.isAnonymous()) return Result.ok();
|
|
20
|
+
return Result.fail(new WorkflowNotAuthorizedError("You do not have access to workflows."));
|
|
25
21
|
}
|
|
26
|
-
return Result.fail(new WorkflowNotAuthorizedError("You do not have access to workflows."));
|
|
27
|
-
}
|
|
28
22
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
const GetWorkflowUseCase_GetWorkflowUseCase = GetWorkflowUseCase.createImplementation({
|
|
24
|
+
implementation: GetWorkflowUseCaseImpl,
|
|
25
|
+
dependencies: [
|
|
26
|
+
GetWorkflowRepository,
|
|
27
|
+
IdentityContext
|
|
28
|
+
]
|
|
32
29
|
});
|
|
30
|
+
export { GetWorkflowUseCase_GetWorkflowUseCase as GetWorkflowUseCase };
|
|
33
31
|
|
|
34
32
|
//# sourceMappingURL=GetWorkflowUseCase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/GetWorkflow/GetWorkflowUseCase.js","sources":["../../../../src/features/workflow/GetWorkflow/GetWorkflowUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWorkflowRepository, GetWorkflowUseCase as UseCase } from \"./abstractions.js\";\nimport { WorkflowNotAuthorizedError } from \"~/domain/workflow/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass GetWorkflowUseCaseImpl implements UseCase.Interface {\n private readonly repository;\n private readonly identityContext;\n\n constructor(\n repository: GetWorkflowRepository.Interface,\n identityContext: IdentityContext.Interface\n ) {\n this.repository = repository;\n this.identityContext = identityContext;\n }\n\n async execute(input: UseCase.Params): UseCase.Return {\n const hasAccess = await this.ensureHasAccess();\n if (hasAccess.isFail()) {\n return Result.fail(hasAccess.error);\n }\n\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 private async ensureHasAccess(): Promise<Result<void, WorkflowNotAuthorizedError>> {\n const identity = this.identityContext.getIdentity();\n if (!identity.isAnonymous()) {\n return Result.ok();\n }\n return Result.fail(new WorkflowNotAuthorizedError(\"You do not have access to workflows.\"));\n }\n}\n\nexport const GetWorkflowUseCase = UseCase.createImplementation({\n implementation: GetWorkflowUseCaseImpl,\n dependencies: [GetWorkflowRepository, IdentityContext]\n});\n"],"names":["GetWorkflowUseCaseImpl","repository","identityContext","input","hasAccess","Result","result","identity","WorkflowNotAuthorizedError","GetWorkflowUseCase","UseCase","GetWorkflowRepository","IdentityContext"],"mappings":";;;;AAKA,MAAMA;IAIF,YACIC,UAA2C,EAC3CC,eAA0C,CAC5C;QACE,IAAI,CAAC,UAAU,GAAGD;QAClB,IAAI,CAAC,eAAe,GAAGC;IAC3B;IAEA,MAAM,QAAQC,KAAqB,EAAkB;QACjD,MAAMC,YAAY,MAAM,IAAI,CAAC,eAAe;QAC5C,IAAIA,UAAU,MAAM,IAChB,OAAOC,OAAO,IAAI,CAACD,UAAU,KAAK;QAGtC,MAAME,SAAS,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAACH;QAE7C,IAAIG,OAAO,MAAM,IACb,OAAOA;QAGX,OAAOD,OAAO,EAAE,CAACC,OAAO,KAAK;IACjC;IAEA,MAAc,kBAAqE;QAC/E,MAAMC,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW;QACjD,IAAI,CAACA,SAAS,WAAW,IACrB,OAAOF,OAAO,EAAE;QAEpB,OAAOA,OAAO,IAAI,CAAC,IAAIG,2BAA2B;IACtD;AACJ;AAEO,MAAMC,wCAAqBC,mBAAAA,oBAA4B,CAAC;IAC3D,gBAAgBV;IAChB,cAAc;QAACW;QAAuBC;KAAgB;AAC1D"}
|
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export const GetWorkflowUseCase = createAbstraction("GetWorkflowUseCase");
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* GetWorkflow repository interface
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
export const GetWorkflowRepository = createAbstraction("GetWorkflowRepository");
|
|
2
|
+
const GetWorkflowUseCase = createAbstraction("GetWorkflowUseCase");
|
|
3
|
+
const GetWorkflowRepository = createAbstraction("GetWorkflowRepository");
|
|
4
|
+
export { GetWorkflowRepository, GetWorkflowUseCase };
|
|
14
5
|
|
|
15
6
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/GetWorkflow/abstractions.js","sources":["../../../../src/features/workflow/GetWorkflow/abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { IWorkflow } from \"~/domain/workflow/abstractions.js\";\nimport type {\n WorkflowNotAuthorizedError,\n WorkflowNotFoundError,\n WorkflowPersistenceError\n} from \"~/domain/workflow/errors.js\";\n\nexport interface IGetWorkflowParams {\n app: string;\n id: string;\n}\n\n/**\n * GetWorkflow use case interface\n */\nexport interface IGetWorkflowUseCase {\n execute(input: IGetWorkflowParams): Promise<Result<IWorkflow, UseCaseError>>;\n}\n\nexport interface IGetWorkflowUseCaseErrors {\n notFound: WorkflowNotFoundError;\n persistence: WorkflowPersistenceError;\n noAccess: WorkflowNotAuthorizedError;\n}\n\ntype UseCaseError = IGetWorkflowUseCaseErrors[keyof IGetWorkflowUseCaseErrors];\n\nexport const GetWorkflowUseCase = createAbstraction<IGetWorkflowUseCase>(\"GetWorkflowUseCase\");\n\nexport namespace GetWorkflowUseCase {\n export type Interface = IGetWorkflowUseCase;\n export type Params = IGetWorkflowParams;\n export type Return = Promise<Result<IWorkflow, UseCaseError>>;\n export type Error = UseCaseError;\n}\n\n/**\n * GetWorkflow repository interface\n */\nexport interface IGetWorkflowRepository {\n execute(input: IGetWorkflowParams): Promise<Result<IWorkflow, RepositoryError>>;\n}\n\nexport interface IGetWorkflowRepositoryErrors {\n notFound: WorkflowNotFoundError;\n persistence: WorkflowPersistenceError;\n}\n\ntype RepositoryError = IGetWorkflowRepositoryErrors[keyof IGetWorkflowRepositoryErrors];\n\nexport const GetWorkflowRepository =\n createAbstraction<IGetWorkflowRepository>(\"GetWorkflowRepository\");\n\nexport namespace GetWorkflowRepository {\n export type Interface = IGetWorkflowRepository;\n export type Params = IGetWorkflowParams;\n export type Return = Promise<Result<IWorkflow, RepositoryError>>;\n export type Error = RepositoryError;\n}\n"],"names":["GetWorkflowUseCase","createAbstraction","GetWorkflowRepository"],"mappings":";AA6BO,MAAMA,qBAAqBC,kBAAuC;AAuBlE,MAAMC,wBACTD,kBAA0C"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { GetWorkflowUseCase } from "./GetWorkflowUseCase.js";
|
|
3
3
|
import { GetWorkflowRepository } from "./GetWorkflowRepository.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
const GetWorkflowFeature = createFeature({
|
|
5
|
+
name: "Workflows/GetWorkflow",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(GetWorkflowRepository).inSingletonScope();
|
|
8
|
+
container.register(GetWorkflowUseCase);
|
|
9
|
+
}
|
|
10
10
|
});
|
|
11
|
+
export { GetWorkflowFeature };
|
|
11
12
|
|
|
12
13
|
//# sourceMappingURL=feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"features/workflow/GetWorkflow/feature.js","sources":["../../../../src/features/workflow/GetWorkflow/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetWorkflowUseCase } from \"./GetWorkflowUseCase.js\";\nimport { GetWorkflowRepository } from \"./GetWorkflowRepository.js\";\n\nexport const GetWorkflowFeature = createFeature({\n name: \"Workflows/GetWorkflow\",\n register(container) {\n container.register(GetWorkflowRepository).inSingletonScope();\n container.register(GetWorkflowUseCase);\n }\n});\n"],"names":["GetWorkflowFeature","createFeature","container","GetWorkflowRepository","GetWorkflowUseCase"],"mappings":";;;AAIO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uBAAuB,gBAAgB;QAC1DD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
|