@webiny/background-tasks 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.9f53ea597d
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/admin/BackgroundTaskRoutes.js +20 -13
- package/admin/BackgroundTaskRoutes.js.map +1 -1
- package/admin/BackgroundTasks.js +9 -0
- package/admin/BackgroundTasks.js.map +1 -1
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js +40 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/getBackgroundTaskSettings/GetBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.d.ts +15 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/getBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/getBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/getBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/getBackgroundTaskSettings/index.js +2 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.d.ts +12 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js +43 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsGateway.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +11 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +18 -0
- package/admin/features/updateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.d.ts +18 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js +6 -0
- package/admin/features/updateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js +19 -0
- package/admin/features/updateBackgroundTaskSettings/feature.js.map +1 -0
- package/admin/features/updateBackgroundTaskSettings/index.d.ts +3 -0
- package/admin/features/updateBackgroundTaskSettings/index.js +2 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.d.ts +21 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js +86 -0
- package/admin/presentation/BackgroundTaskSettings/BackgroundTaskSettingsPresenter.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.d.ts +16 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js +5 -0
- package/admin/presentation/BackgroundTaskSettings/abstractions.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js +56 -0
- package/admin/presentation/BackgroundTaskSettings/components/BackgroundTaskSettingsView.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/feature.d.ts +3 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js +17 -0
- package/admin/presentation/BackgroundTaskSettings/feature.js.map +1 -0
- package/admin/presentation/BackgroundTaskSettings/index.d.ts +2 -0
- package/admin/presentation/BackgroundTaskSettings/index.js +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js +2 -1
- package/admin/presentation/TaskDefinitions/components/TaskDefinitionsView.js.map +1 -1
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.d.ts +2 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js +16 -0
- package/admin/presentation/TaskDefinitions/components/TaskExecutionsButton.js.map +1 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.d.ts +2 -0
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js +3 -1
- package/admin/presentation/TaskExecutions/TaskExecutionsPresenter.js.map +1 -1
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.d.ts +2 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js +16 -0
- package/admin/presentation/TaskExecutions/components/TaskDefinitionsButton.js.map +1 -0
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js +53 -35
- package/admin/presentation/TaskExecutions/components/TaskExecutionsView.js.map +1 -1
- package/admin/routes.d.ts +1 -0
- package/admin/routes.js +4 -0
- package/admin/routes.js.map +1 -1
- package/admin/shared/types.d.ts +3 -0
- package/api/context.d.ts +2 -0
- package/api/context.js +66 -0
- package/api/context.js.map +1 -0
- package/api/crud/TaskLogPrivateModel.d.ts +9 -0
- package/api/crud/TaskLogPrivateModel.js +40 -0
- package/api/crud/TaskLogPrivateModel.js.map +1 -0
- package/api/crud/TaskPrivateModel.d.ts +9 -0
- package/api/crud/TaskPrivateModel.js +55 -0
- package/api/crud/TaskPrivateModel.js.map +1 -0
- package/api/crud/cleanupTaskSubtree.d.ts +8 -0
- package/api/crud/cleanupTaskSubtree.js +62 -0
- package/api/crud/cleanupTaskSubtree.js.map +1 -0
- package/api/crud/crud.tasks.d.ts +2 -0
- package/api/crud/crud.tasks.js +318 -0
- package/api/crud/crud.tasks.js.map +1 -0
- package/api/crud/definition.tasks.d.ts +2 -0
- package/api/crud/definition.tasks.js +17 -0
- package/api/crud/definition.tasks.js.map +1 -0
- package/api/crud/service.tasks.d.ts +2 -0
- package/api/crud/service.tasks.js +130 -0
- package/api/crud/service.tasks.js.map +1 -0
- package/api/decorators/RunnableTaskDecorator.d.ts +32 -0
- package/api/decorators/RunnableTaskDecorator.js +69 -0
- package/api/decorators/RunnableTaskDecorator.js.map +1 -0
- package/api/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
- package/api/decorators/SelfCleaningTaskDecorator.js +84 -0
- package/api/decorators/SelfCleaningTaskDecorator.js.map +1 -0
- package/api/domain/BackgroundTaskSettings.d.ts +3 -0
- package/api/domain/BackgroundTaskSettings.js +0 -0
- package/api/domain/constants.d.ts +3 -0
- package/api/domain/constants.js +6 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +57 -0
- package/api/domain/errors.js +101 -0
- package/api/domain/errors.js.map +1 -0
- package/api/events/TaskAfterCreateEvent.d.ts +6 -0
- package/api/events/TaskAfterCreateEvent.js +13 -0
- package/api/events/TaskAfterCreateEvent.js.map +1 -0
- package/api/events/TaskAfterDeleteEvent.d.ts +6 -0
- package/api/events/TaskAfterDeleteEvent.js +13 -0
- package/api/events/TaskAfterDeleteEvent.js.map +1 -0
- package/api/events/TaskAfterUpdateEvent.d.ts +6 -0
- package/api/events/TaskAfterUpdateEvent.js +13 -0
- package/api/events/TaskAfterUpdateEvent.js.map +1 -0
- package/api/events/TaskBeforeCreateEvent.d.ts +6 -0
- package/api/events/TaskBeforeCreateEvent.js +13 -0
- package/api/events/TaskBeforeCreateEvent.js.map +1 -0
- package/api/events/TaskBeforeDeleteEvent.d.ts +6 -0
- package/api/events/TaskBeforeDeleteEvent.js +13 -0
- package/api/events/TaskBeforeDeleteEvent.js.map +1 -0
- package/api/events/TaskBeforeUpdateEvent.d.ts +6 -0
- package/api/events/TaskBeforeUpdateEvent.js +13 -0
- package/api/events/TaskBeforeUpdateEvent.js.map +1 -0
- package/api/events/abstractions.d.ts +53 -0
- package/api/events/abstractions.js +10 -0
- package/api/events/abstractions.js.map +1 -0
- package/api/events/index.d.ts +7 -0
- package/api/events/index.js +7 -0
- package/api/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
- package/api/features/AbortTask/AbortTaskUseCase.js +12 -0
- package/api/features/AbortTask/AbortTaskUseCase.js.map +1 -0
- package/api/features/AbortTask/abstractions.d.ts +25 -0
- package/api/features/AbortTask/abstractions.js +5 -0
- package/api/features/AbortTask/abstractions.js.map +1 -0
- package/api/features/AbortTask/feature.d.ts +5 -0
- package/api/features/AbortTask/feature.js +12 -0
- package/api/features/AbortTask/feature.js.map +1 -0
- package/api/features/AbortTask/index.d.ts +2 -0
- package/api/features/AbortTask/index.js +2 -0
- package/api/features/BackgroundTaskPermissions/abstractions.d.ts +17 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js +6 -0
- package/api/features/BackgroundTaskPermissions/abstractions.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/feature.d.ts +4 -0
- package/api/features/BackgroundTaskPermissions/feature.js +7 -0
- package/api/features/BackgroundTaskPermissions/feature.js.map +1 -0
- package/api/features/BackgroundTaskPermissions/index.d.ts +2 -0
- package/api/features/BackgroundTaskPermissions/index.js +2 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +11 -0
- package/api/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
- package/api/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
- package/api/features/CleanupTaskSubtree/abstractions.js +5 -0
- package/api/features/CleanupTaskSubtree/abstractions.js.map +1 -0
- package/api/features/CleanupTaskSubtree/index.d.ts +2 -0
- package/api/features/CleanupTaskSubtree/index.js +2 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.d.ts +21 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js +60 -0
- package/api/features/GetBackgroundTaskSettings/GetBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.d.ts +13 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js +5 -0
- package/api/features/GetBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/GetBackgroundTaskSettings/feature.js +11 -0
- package/api/features/GetBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/GetBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/GetBackgroundTaskSettings/index.js +2 -0
- package/api/features/GetTask/GetTaskUseCase.d.ts +9 -0
- package/api/features/GetTask/GetTaskUseCase.js +11 -0
- package/api/features/GetTask/GetTaskUseCase.js.map +1 -0
- package/api/features/GetTask/abstractions.d.ts +10 -0
- package/api/features/GetTask/abstractions.js +5 -0
- package/api/features/GetTask/abstractions.js.map +1 -0
- package/api/features/GetTask/feature.d.ts +5 -0
- package/api/features/GetTask/feature.js +12 -0
- package/api/features/GetTask/feature.js.map +1 -0
- package/api/features/GetTask/index.d.ts +2 -0
- package/api/features/GetTask/index.js +2 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +27 -0
- package/api/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
- package/api/features/GetTaskDefinition/abstractions.d.ts +17 -0
- package/api/features/GetTaskDefinition/abstractions.js +5 -0
- package/api/features/GetTaskDefinition/abstractions.js.map +1 -0
- package/api/features/GetTaskDefinition/feature.d.ts +4 -0
- package/api/features/GetTaskDefinition/feature.js +11 -0
- package/api/features/GetTaskDefinition/feature.js.map +1 -0
- package/api/features/GetTaskDefinition/index.d.ts +2 -0
- package/api/features/GetTaskDefinition/index.js +2 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +24 -0
- package/api/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
- package/api/features/ListTaskDefinitions/abstractions.d.ts +9 -0
- package/api/features/ListTaskDefinitions/abstractions.js +5 -0
- package/api/features/ListTaskDefinitions/abstractions.js.map +1 -0
- package/api/features/ListTaskDefinitions/feature.d.ts +4 -0
- package/api/features/ListTaskDefinitions/feature.js +11 -0
- package/api/features/ListTaskDefinitions/feature.js.map +1 -0
- package/api/features/ListTaskDefinitions/index.d.ts +2 -0
- package/api/features/ListTaskDefinitions/index.js +2 -0
- package/api/features/ListTasks/ListTasksUseCase.d.ts +9 -0
- package/api/features/ListTasks/ListTasksUseCase.js +11 -0
- package/api/features/ListTasks/ListTasksUseCase.js.map +1 -0
- package/api/features/ListTasks/abstractions.d.ts +13 -0
- package/api/features/ListTasks/abstractions.js +5 -0
- package/api/features/ListTasks/abstractions.js.map +1 -0
- package/api/features/ListTasks/feature.d.ts +5 -0
- package/api/features/ListTasks/feature.js +12 -0
- package/api/features/ListTasks/feature.js.map +1 -0
- package/api/features/ListTasks/index.d.ts +2 -0
- package/api/features/ListTasks/index.js +2 -0
- package/api/features/TaskController/TaskController.d.ts +49 -0
- package/api/features/TaskController/TaskController.js +71 -0
- package/api/features/TaskController/TaskController.js.map +1 -0
- package/api/features/TaskController/augmentation.d.ts +60 -0
- package/api/features/TaskController/augmentation.js +0 -0
- package/api/features/TaskController/index.d.ts +2 -0
- package/api/features/TaskController/index.js +2 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js +43 -0
- package/api/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
- package/api/features/TaskExecutionContext/abstractions.d.ts +26 -0
- package/api/features/TaskExecutionContext/abstractions.js +5 -0
- package/api/features/TaskExecutionContext/abstractions.js.map +1 -0
- package/api/features/TaskExecutionContext/feature.d.ts +4 -0
- package/api/features/TaskExecutionContext/feature.js +11 -0
- package/api/features/TaskExecutionContext/feature.js.map +1 -0
- package/api/features/TaskExecutionContext/index.d.ts +1 -0
- package/api/features/TaskExecutionContext/index.js +1 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js +12 -0
- package/api/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
- package/api/features/TriggerTask/abstractions.d.ts +28 -0
- package/api/features/TriggerTask/abstractions.js +5 -0
- package/api/features/TriggerTask/abstractions.js.map +1 -0
- package/api/features/TriggerTask/feature.d.ts +5 -0
- package/api/features/TriggerTask/feature.js +12 -0
- package/api/features/TriggerTask/feature.js.map +1 -0
- package/api/features/TriggerTask/index.d.ts +2 -0
- package/api/features/TriggerTask/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.d.ts +23 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js +64 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.d.ts +14 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js +27 -0
- package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.d.ts +26 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js +6 -0
- package/api/features/UpdateBackgroundTaskSettings/abstractions.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js +13 -0
- package/api/features/UpdateBackgroundTaskSettings/feature.js.map +1 -0
- package/api/features/UpdateBackgroundTaskSettings/index.d.ts +2 -0
- package/api/features/UpdateBackgroundTaskSettings/index.js +2 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.d.ts +4 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js +8 -0
- package/api/features/UpdateBackgroundTaskSettings/schema.js.map +1 -0
- package/api/global.d.ts +1 -0
- package/api/global.js +1 -0
- package/api/graphql/BackgroundTaskSettingsSchema.d.ts +2 -0
- package/api/graphql/BackgroundTaskSettingsSchema.js +84 -0
- package/api/graphql/BackgroundTaskSettingsSchema.js.map +1 -0
- package/api/graphql/checkPermissions.d.ts +7 -0
- package/api/graphql/checkPermissions.js +21 -0
- package/api/graphql/checkPermissions.js.map +1 -0
- package/api/graphql/index.d.ts +2 -0
- package/api/graphql/index.js +302 -0
- package/api/graphql/index.js.map +1 -0
- package/api/graphql/utils.d.ts +9 -0
- package/api/graphql/utils.js +20 -0
- package/api/graphql/utils.js.map +1 -0
- package/api/handler/index.d.ts +6 -0
- package/api/handler/index.js +55 -0
- package/api/handler/index.js.map +1 -0
- package/api/handler/register.d.ts +1 -0
- package/api/handler/register.js +15 -0
- package/api/handler/register.js.map +1 -0
- package/api/handler/types.d.ts +23 -0
- package/api/handler/types.js +0 -0
- package/api/index.d.ts +5 -0
- package/api/index.js +5 -0
- package/api/models/BackgroundTaskSettingsModel.d.ts +8 -0
- package/api/models/BackgroundTaskSettingsModel.js +27 -0
- package/api/models/BackgroundTaskSettingsModel.js.map +1 -0
- package/api/permissions.d.ts +12 -0
- package/api/permissions.js +22 -0
- package/api/permissions.js.map +1 -0
- package/api/plugins/TaskServicePlugin.d.ts +19 -0
- package/api/plugins/TaskServicePlugin.js +13 -0
- package/api/plugins/TaskServicePlugin.js.map +1 -0
- package/api/plugins/index.d.ts +1 -0
- package/api/plugins/index.js +1 -0
- package/api/response/DatabaseResponse.d.ts +12 -0
- package/api/response/DatabaseResponse.js +127 -0
- package/api/response/DatabaseResponse.js.map +1 -0
- package/api/response/Response.d.ts +14 -0
- package/api/response/Response.js +91 -0
- package/api/response/Response.js.map +1 -0
- package/api/response/ResponseAbortedResult.d.ts +9 -0
- package/api/response/ResponseAbortedResult.js +12 -0
- package/api/response/ResponseAbortedResult.js.map +1 -0
- package/api/response/ResponseContinueResult.d.ts +17 -0
- package/api/response/ResponseContinueResult.js +16 -0
- package/api/response/ResponseContinueResult.js.map +1 -0
- package/api/response/ResponseDoneResult.d.ts +11 -0
- package/api/response/ResponseDoneResult.js +14 -0
- package/api/response/ResponseDoneResult.js.map +1 -0
- package/api/response/ResponseErrorResult.d.ts +10 -0
- package/api/response/ResponseErrorResult.js +13 -0
- package/api/response/ResponseErrorResult.js.map +1 -0
- package/api/response/TaskResponse.d.ts +12 -0
- package/api/response/TaskResponse.js +53 -0
- package/api/response/TaskResponse.js.map +1 -0
- package/api/response/abstractions/Response.d.ts +25 -0
- package/api/response/abstractions/Response.js +0 -0
- package/api/response/abstractions/ResponseAbortedResult.d.ts +5 -0
- package/api/response/abstractions/ResponseAbortedResult.js +0 -0
- package/api/response/abstractions/ResponseBaseResult.d.ts +7 -0
- package/api/response/abstractions/ResponseBaseResult.js +0 -0
- package/api/response/abstractions/ResponseContinueResult.d.ts +21 -0
- package/api/response/abstractions/ResponseContinueResult.js +0 -0
- package/api/response/abstractions/ResponseDoneResult.d.ts +13 -0
- package/api/response/abstractions/ResponseDoneResult.js +0 -0
- package/api/response/abstractions/ResponseErrorResult.d.ts +18 -0
- package/api/response/abstractions/ResponseErrorResult.js +0 -0
- package/api/response/abstractions/TaskResponse.d.ts +16 -0
- package/api/response/abstractions/TaskResponse.js +0 -0
- package/api/response/abstractions/index.d.ts +7 -0
- package/api/response/abstractions/index.js +7 -0
- package/api/response/index.d.ts +7 -0
- package/api/response/index.js +7 -0
- package/api/runner/TaskControl.d.ts +14 -0
- package/api/runner/TaskControl.js +173 -0
- package/api/runner/TaskControl.js.map +1 -0
- package/api/runner/TaskEventValidation.d.ts +5 -0
- package/api/runner/TaskEventValidation.js +20 -0
- package/api/runner/TaskEventValidation.js.map +1 -0
- package/api/runner/TaskManager.d.ts +11 -0
- package/api/runner/TaskManager.js +81 -0
- package/api/runner/TaskManager.js.map +1 -0
- package/api/runner/TaskManagerStore.d.ts +40 -0
- package/api/runner/TaskManagerStore.js +109 -0
- package/api/runner/TaskManagerStore.js.map +1 -0
- package/api/runner/TaskRunner.d.ts +25 -0
- package/api/runner/TaskRunner.js +55 -0
- package/api/runner/TaskRunner.js.map +1 -0
- package/api/runner/abstractions/TaskControl.d.ts +10 -0
- package/api/runner/abstractions/TaskControl.js +0 -0
- package/api/runner/abstractions/TaskEventValidation.d.ts +5 -0
- package/api/runner/abstractions/TaskEventValidation.js +0 -0
- package/api/runner/abstractions/TaskManager.d.ts +5 -0
- package/api/runner/abstractions/TaskManager.js +0 -0
- package/api/runner/abstractions/TaskManagerStore.d.ts +92 -0
- package/api/runner/abstractions/TaskManagerStore.js +0 -0
- package/api/runner/abstractions/TaskRunner.d.ts +13 -0
- package/api/runner/abstractions/TaskRunner.js +0 -0
- package/api/runner/abstractions/index.d.ts +5 -0
- package/api/runner/abstractions/index.js +5 -0
- package/api/runner/index.d.ts +1 -0
- package/api/runner/index.js +1 -0
- package/api/service/EventBridgeEventTransportPlugin.d.ts +16 -0
- package/api/service/EventBridgeEventTransportPlugin.js +52 -0
- package/api/service/EventBridgeEventTransportPlugin.js.map +1 -0
- package/api/service/StepFunctionServicePlugin.d.ts +25 -0
- package/api/service/StepFunctionServicePlugin.js +77 -0
- package/api/service/StepFunctionServicePlugin.js.map +1 -0
- package/api/service/createService.d.ts +6 -0
- package/api/service/createService.js +16 -0
- package/api/service/createService.js.map +1 -0
- package/api/service/index.d.ts +4 -0
- package/api/service/index.js +12 -0
- package/api/service/index.js.map +1 -0
- package/api/tasks/testingRunTask.d.ts +11 -0
- package/api/tasks/testingRunTask.js +18 -0
- package/api/tasks/testingRunTask.js.map +1 -0
- package/api/types.d.ts +167 -0
- package/api/types.js +20 -0
- package/api/types.js.map +1 -0
- package/api/utils/ObjectUpdater.d.ts +8 -0
- package/api/utils/ObjectUpdater.js +33 -0
- package/api/utils/ObjectUpdater.js.map +1 -0
- package/api/utils/getErrorProperties.d.ts +2 -0
- package/api/utils/getErrorProperties.js +9 -0
- package/api/utils/getErrorProperties.js.map +1 -0
- package/api/utils/getObjectProperties.d.ts +8 -0
- package/api/utils/getObjectProperties.js +11 -0
- package/api/utils/getObjectProperties.js.map +1 -0
- package/api/utils/index.d.ts +3 -0
- package/api/utils/index.js +3 -0
- package/api/utils/normalizeSelfCleanup.d.ts +2 -0
- package/api/utils/normalizeSelfCleanup.js +16 -0
- package/api/utils/normalizeSelfCleanup.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +29 -12
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
|
|
3
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
4
|
+
import { TaskDefinitionNotFoundError, TaskNotFoundError, TaskServiceInfoError } from "../../../api/domain/errors.js";
|
|
5
|
+
export interface ITriggerTaskUseCase {
|
|
6
|
+
execute<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: TriggerTaskParams<I>): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;
|
|
7
|
+
}
|
|
8
|
+
export interface TriggerTaskParams<I = TaskDefinition.TaskInput> {
|
|
9
|
+
definition: string;
|
|
10
|
+
input?: I;
|
|
11
|
+
name?: string;
|
|
12
|
+
parent?: Pick<TaskService.Task, "id">;
|
|
13
|
+
delay?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ITriggerTaskUseCaseErrors {
|
|
16
|
+
definitionNotFound: TaskDefinitionNotFoundError;
|
|
17
|
+
taskNotFound: TaskNotFoundError;
|
|
18
|
+
serviceError: TaskServiceInfoError;
|
|
19
|
+
}
|
|
20
|
+
type UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];
|
|
21
|
+
export declare const TriggerTaskUseCase: import("@webiny/di").Abstraction<ITriggerTaskUseCase>;
|
|
22
|
+
export declare namespace TriggerTaskUseCase {
|
|
23
|
+
type Interface = ITriggerTaskUseCase;
|
|
24
|
+
type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;
|
|
25
|
+
type Error = UseCaseError;
|
|
26
|
+
type Return<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput> = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/TriggerTask/abstractions.js","sources":["../../../../src/api/features/TriggerTask/abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport {\n TaskDefinitionNotFoundError,\n TaskNotFoundError,\n TaskServiceInfoError\n} from \"~/api/domain/errors.js\";\n\nexport interface ITriggerTaskUseCase {\n execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: TriggerTaskParams<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n\nexport interface TriggerTaskParams<I = TaskDefinition.TaskInput> {\n definition: string;\n input?: I;\n name?: string;\n parent?: Pick<TaskService.Task, \"id\">;\n delay?: number;\n}\n\nexport interface ITriggerTaskUseCaseErrors {\n definitionNotFound: TaskDefinitionNotFoundError;\n taskNotFound: TaskNotFoundError;\n serviceError: TaskServiceInfoError;\n}\n\ntype UseCaseError = ITriggerTaskUseCaseErrors[keyof ITriggerTaskUseCaseErrors];\n\nexport const TriggerTaskUseCase = createAbstraction<ITriggerTaskUseCase>(\n \"Tasks/TriggerTaskUseCase\"\n);\n\nexport namespace TriggerTaskUseCase {\n export type Interface = ITriggerTaskUseCase;\n export type Params<I = TaskDefinition.TaskInput> = TriggerTaskParams<I>;\n\n export type Error = UseCaseError;\n export type Return<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n > = Promise<Result<TaskService.Task<I, O>, UseCaseError>>;\n}\n"],"names":["TriggerTaskUseCase","createAbstraction"],"mappings":";AAkCO,MAAMA,qBAAqBC,kBAC9B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { TriggerTaskUseCase } from "./abstractions.js";
|
|
3
|
+
import { TriggerTaskUseCaseImpl } from "./TriggerTaskUseCase.js";
|
|
4
|
+
const TriggerTaskFeature = createFeature({
|
|
5
|
+
name: "TriggerTask",
|
|
6
|
+
register (container, context) {
|
|
7
|
+
container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
export { TriggerTaskFeature };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/TriggerTask/feature.js","sources":["../../../../src/api/features/TriggerTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/api/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/api/types.js\";\n\nexport const TriggerTaskFeature = createFeature<Context>({\n name: \"TriggerTask\",\n register(container, context) {\n container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context!));\n }\n});\n"],"names":["TriggerTaskFeature","createFeature","container","context","TriggerTaskUseCase","TriggerTaskUseCaseImpl"],"mappings":";;;AAKO,MAAMA,qBAAqBC,cAAuB;IACrD,MAAM;IACN,UAASC,SAAS,EAAEC,OAAO;QACvBD,UAAU,gBAAgB,CAACE,oBAAoB,IAAIC,uBAAuBF;IAC9E;AACJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
5
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
6
|
+
import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
|
|
7
|
+
import { GetBackgroundTaskSettingsRepository } from "../../../api/features/GetBackgroundTaskSettings/abstractions.js";
|
|
8
|
+
import { UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction, type IUpdateBackgroundTaskSettingsInput } from "./abstractions.js";
|
|
9
|
+
import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
|
|
10
|
+
declare class UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
11
|
+
private readonly getModelRepository;
|
|
12
|
+
private readonly getSettingsRepository;
|
|
13
|
+
private readonly getLatestRevisionRepository;
|
|
14
|
+
private readonly updateEntryRepository;
|
|
15
|
+
private readonly updateEntryDataFactory;
|
|
16
|
+
private readonly defaultRetentionDays;
|
|
17
|
+
constructor(getModelRepository: GetModelRepository.Interface, getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, updateEntryRepository: UpdateEntryRepository.Interface, updateEntryDataFactory: UpdateEntryDataFactory.Interface, buildParams: BuildParams.Interface);
|
|
18
|
+
execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>>;
|
|
19
|
+
}
|
|
20
|
+
export declare const UpdateBackgroundTaskSettingsRepository: typeof UpdateBackgroundTaskSettingsRepositoryImpl & {
|
|
21
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateBackgroundTaskSettingsRepository>;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { createCacheKey } from "@webiny/utils";
|
|
3
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
4
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
5
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
6
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
7
|
+
import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
|
|
8
|
+
import { GetBackgroundTaskSettingsRepository } from "../GetBackgroundTaskSettings/abstractions.js";
|
|
9
|
+
import { UpdateBackgroundTaskSettingsRepository } from "./abstractions.js";
|
|
10
|
+
import { BackgroundTaskModelNotFoundError, BackgroundTaskPersistenceError } from "../../domain/errors.js";
|
|
11
|
+
import { BACKGROUND_TASK_DEFAULT_RETENTION_DAYS, BACKGROUND_TASK_SETTINGS_MODEL_ID } from "../../domain/constants.js";
|
|
12
|
+
class UpdateBackgroundTaskSettingsRepositoryImpl {
|
|
13
|
+
constructor(getModelRepository, getSettingsRepository, getLatestRevisionRepository, updateEntryRepository, updateEntryDataFactory, buildParams){
|
|
14
|
+
this.getModelRepository = getModelRepository;
|
|
15
|
+
this.getSettingsRepository = getSettingsRepository;
|
|
16
|
+
this.getLatestRevisionRepository = getLatestRevisionRepository;
|
|
17
|
+
this.updateEntryRepository = updateEntryRepository;
|
|
18
|
+
this.updateEntryDataFactory = updateEntryDataFactory;
|
|
19
|
+
this.defaultRetentionDays = buildParams.get("BackgroundTasks.RetentionDays") ?? BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;
|
|
20
|
+
}
|
|
21
|
+
async execute(input) {
|
|
22
|
+
try {
|
|
23
|
+
const getResult = await this.getSettingsRepository.execute();
|
|
24
|
+
if (getResult.isFail()) return getResult;
|
|
25
|
+
const modelResult = await this.getModelRepository.execute(BACKGROUND_TASK_SETTINGS_MODEL_ID);
|
|
26
|
+
if (modelResult.isFail()) return Result.fail(new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID));
|
|
27
|
+
const model = modelResult.value;
|
|
28
|
+
const singletonId = createCacheKey(model.modelId);
|
|
29
|
+
const entryId = `${singletonId}#0001`;
|
|
30
|
+
const entryResult = await this.getLatestRevisionRepository.execute(model, {
|
|
31
|
+
id: entryId
|
|
32
|
+
});
|
|
33
|
+
if (entryResult.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));
|
|
34
|
+
const storedValue = input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;
|
|
35
|
+
const { entry } = await this.updateEntryDataFactory.create(model, {
|
|
36
|
+
values: {
|
|
37
|
+
retentionDays: storedValue
|
|
38
|
+
}
|
|
39
|
+
}, entryResult.value);
|
|
40
|
+
const updateResult = await this.updateEntryRepository.execute(model, entry);
|
|
41
|
+
if (updateResult.isFail()) return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));
|
|
42
|
+
const settings = {
|
|
43
|
+
retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays
|
|
44
|
+
};
|
|
45
|
+
return Result.ok(settings);
|
|
46
|
+
} catch (error) {
|
|
47
|
+
return Result.fail(BackgroundTaskPersistenceError.from(error));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const UpdateBackgroundTaskSettingsRepository_UpdateBackgroundTaskSettingsRepository = UpdateBackgroundTaskSettingsRepository.createImplementation({
|
|
52
|
+
implementation: UpdateBackgroundTaskSettingsRepositoryImpl,
|
|
53
|
+
dependencies: [
|
|
54
|
+
GetModelRepository,
|
|
55
|
+
GetBackgroundTaskSettingsRepository,
|
|
56
|
+
GetLatestRevisionByEntryIdRepository,
|
|
57
|
+
UpdateEntryRepository,
|
|
58
|
+
UpdateEntryDataFactory,
|
|
59
|
+
BuildParams
|
|
60
|
+
]
|
|
61
|
+
});
|
|
62
|
+
export { UpdateBackgroundTaskSettingsRepository_UpdateBackgroundTaskSettingsRepository as UpdateBackgroundTaskSettingsRepository };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=UpdateBackgroundTaskSettingsRepository.js.map
|
package/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { createCacheKey } from \"@webiny/utils\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport {\n UpdateBackgroundTaskSettingsRepository as RepositoryAbstraction,\n type IUpdateBackgroundTaskSettingsInput\n} from \"./abstractions.js\";\nimport {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskPersistenceError\n} from \"~/api/domain/errors.js\";\nimport {\n BACKGROUND_TASK_SETTINGS_MODEL_ID,\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS\n} from \"~/api/domain/constants.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\n\ninterface BackgroundTaskSettingsValues {\n retentionDays?: number | null;\n}\n\nclass UpdateBackgroundTaskSettingsRepositoryImpl implements RepositoryAbstraction.Interface {\n private readonly defaultRetentionDays: number;\n\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getSettingsRepository: GetBackgroundTaskSettingsRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n buildParams: BuildParams.Interface\n ) {\n this.defaultRetentionDays =\n buildParams.get<number>(\"BackgroundTasks.RetentionDays\") ??\n BACKGROUND_TASK_DEFAULT_RETENTION_DAYS;\n }\n\n async execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, RepositoryAbstraction.Error>> {\n try {\n /* Ensure the singleton entry exists (creates if missing). */\n const getResult = await this.getSettingsRepository.execute();\n if (getResult.isFail()) {\n return getResult;\n }\n\n const modelResult = await this.getModelRepository.execute(\n BACKGROUND_TASK_SETTINGS_MODEL_ID\n );\n if (modelResult.isFail()) {\n return Result.fail(\n new BackgroundTaskModelNotFoundError(BACKGROUND_TASK_SETTINGS_MODEL_ID)\n );\n }\n\n const model = modelResult.value;\n const singletonId = createCacheKey(model.modelId);\n const entryId = `${singletonId}#0001`;\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<BackgroundTaskSettingsValues>(\n model,\n { id: entryId }\n );\n\n if (entryResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(entryResult.error));\n }\n\n /* Store null when the value matches the default so the default stays in control. */\n const storedValue =\n input.retentionDays === this.defaultRetentionDays ? null : input.retentionDays;\n\n const { entry } =\n await this.updateEntryDataFactory.create<BackgroundTaskSettingsValues>(\n model,\n {\n values: {\n retentionDays: storedValue\n }\n },\n entryResult.value\n );\n\n const updateResult = await this.updateEntryRepository.execute(model, entry);\n if (updateResult.isFail()) {\n return Result.fail(BackgroundTaskPersistenceError.from(updateResult.error));\n }\n\n const settings: IBackgroundTaskSettings = {\n retentionDays: entry.values.retentionDays ?? this.defaultRetentionDays\n };\n\n return Result.ok(settings);\n } catch (error) {\n return Result.fail(BackgroundTaskPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateBackgroundTaskSettingsRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetBackgroundTaskSettingsRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryRepository,\n UpdateEntryDataFactory,\n BuildParams\n ]\n});\n"],"names":["UpdateBackgroundTaskSettingsRepositoryImpl","getModelRepository","getSettingsRepository","getLatestRevisionRepository","updateEntryRepository","updateEntryDataFactory","buildParams","BACKGROUND_TASK_DEFAULT_RETENTION_DAYS","input","getResult","modelResult","BACKGROUND_TASK_SETTINGS_MODEL_ID","Result","BackgroundTaskModelNotFoundError","model","singletonId","createCacheKey","entryId","entryResult","BackgroundTaskPersistenceError","storedValue","entry","updateResult","settings","error","UpdateBackgroundTaskSettingsRepository","RepositoryAbstraction","GetModelRepository","GetBackgroundTaskSettingsRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryRepository","UpdateEntryDataFactory","BuildParams"],"mappings":";;;;;;;;;;;AA0BA,MAAMA;IAGF,YACqBC,kBAAgD,EAChDC,qBAAoE,EACpEC,2BAA2E,EAC3EC,qBAAsD,EACtDC,sBAAwD,EACzEC,WAAkC,CACpC;aANmBL,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,2BAA2B,GAA3BA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;QAGjB,IAAI,CAAC,oBAAoB,GACrBC,YAAY,GAAG,CAAS,oCACxBC;IACR;IAEA,MAAM,QACFC,KAAyC,EAC4B;QACrE,IAAI;YAEA,MAAMC,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAC1D,IAAIA,UAAU,MAAM,IAChB,OAAOA;YAGX,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CACrDC;YAEJ,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CACd,IAAIC,iCAAiCF;YAI7C,MAAMG,QAAQJ,YAAY,KAAK;YAC/B,MAAMK,cAAcC,eAAeF,MAAM,OAAO;YAChD,MAAMG,UAAU,GAAGF,YAAY,KAAK,CAAC;YAErC,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,OACA;gBAAE,IAAIG;YAAQ;YAGtB,IAAIC,YAAY,MAAM,IAClB,OAAON,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACD,YAAY,KAAK;YAI5E,MAAME,cACFZ,MAAM,aAAa,KAAK,IAAI,CAAC,oBAAoB,GAAG,OAAOA,MAAM,aAAa;YAElF,MAAM,EAAEa,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,OACA;gBACI,QAAQ;oBACJ,eAAeM;gBACnB;YACJ,GACAF,YAAY,KAAK;YAGzB,MAAMI,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,OAAOO;YACrE,IAAIC,aAAa,MAAM,IACnB,OAAOV,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACG,aAAa,KAAK;YAG7E,MAAMC,WAAoC;gBACtC,eAAeF,MAAM,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,oBAAoB;YAC1E;YAEA,OAAOT,OAAO,EAAE,CAACW;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOZ,OAAO,IAAI,CAACO,+BAA+B,IAAI,CAACK;QAC3D;IACJ;AACJ;AAEO,MAAMC,gFAAyCC,uCAAAA,oBAA0C,CAAC;IAC7F,gBAAgB1B;IAChB,cAAc;QACV2B;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
|
|
4
|
+
import { BackgroundTaskPermissions } from "../../../api/features/BackgroundTaskPermissions/abstractions.js";
|
|
5
|
+
declare class UpdateBackgroundTaskSettingsUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
+
private readonly permissions;
|
|
7
|
+
private readonly repository;
|
|
8
|
+
constructor(permissions: BackgroundTaskPermissions.Interface, repository: UpdateBackgroundTaskSettingsRepository.Interface);
|
|
9
|
+
execute(input: UseCaseAbstraction.Input): Promise<Result<IBackgroundTaskSettings, UseCaseAbstraction.Error>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const UpdateBackgroundTaskSettingsUseCase: typeof UpdateBackgroundTaskSettingsUseCaseImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateBackgroundTaskSettingsUseCase>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase } from "./abstractions.js";
|
|
3
|
+
import { UpdateBackgroundTaskSettingsInputSchema } from "./schema.js";
|
|
4
|
+
import { BackgroundTaskNotAuthorizedError, BackgroundTaskValidationError } from "../../domain/errors.js";
|
|
5
|
+
import { BackgroundTaskPermissions } from "../BackgroundTaskPermissions/abstractions.js";
|
|
6
|
+
class UpdateBackgroundTaskSettingsUseCaseImpl {
|
|
7
|
+
constructor(permissions, repository){
|
|
8
|
+
this.permissions = permissions;
|
|
9
|
+
this.repository = repository;
|
|
10
|
+
}
|
|
11
|
+
async execute(input) {
|
|
12
|
+
if (!await this.permissions.canEdit("task")) return Result.fail(new BackgroundTaskNotAuthorizedError());
|
|
13
|
+
const parsed = UpdateBackgroundTaskSettingsInputSchema.safeParse(input);
|
|
14
|
+
if (!parsed.success) return Result.fail(new BackgroundTaskValidationError(parsed.error));
|
|
15
|
+
return this.repository.execute(parsed.data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const UpdateBackgroundTaskSettingsUseCase_UpdateBackgroundTaskSettingsUseCase = UpdateBackgroundTaskSettingsUseCase.createImplementation({
|
|
19
|
+
implementation: UpdateBackgroundTaskSettingsUseCaseImpl,
|
|
20
|
+
dependencies: [
|
|
21
|
+
BackgroundTaskPermissions,
|
|
22
|
+
UpdateBackgroundTaskSettingsRepository
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
export { UpdateBackgroundTaskSettingsUseCase_UpdateBackgroundTaskSettingsUseCase as UpdateBackgroundTaskSettingsUseCase };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=UpdateBackgroundTaskSettingsUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/UpdateBackgroundTaskSettingsUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UpdateBackgroundTaskSettingsRepository,\n UpdateBackgroundTaskSettingsUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { UpdateBackgroundTaskSettingsInputSchema } from \"./schema.js\";\nimport {\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport { BackgroundTaskPermissions } from \"~/api/features/BackgroundTaskPermissions/abstractions.js\";\n\nclass UpdateBackgroundTaskSettingsUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: BackgroundTaskPermissions.Interface,\n private readonly repository: UpdateBackgroundTaskSettingsRepository.Interface\n ) {}\n\n async execute(\n input: UseCaseAbstraction.Input\n ): Promise<Result<IBackgroundTaskSettings, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"task\"))) {\n return Result.fail(new BackgroundTaskNotAuthorizedError());\n }\n\n const parsed = UpdateBackgroundTaskSettingsInputSchema.safeParse(input);\n if (!parsed.success) {\n return Result.fail(new BackgroundTaskValidationError(parsed.error));\n }\n\n return this.repository.execute(parsed.data);\n }\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateBackgroundTaskSettingsUseCaseImpl,\n dependencies: [BackgroundTaskPermissions, UpdateBackgroundTaskSettingsRepository]\n});\n"],"names":["UpdateBackgroundTaskSettingsUseCaseImpl","permissions","repository","input","Result","BackgroundTaskNotAuthorizedError","parsed","UpdateBackgroundTaskSettingsInputSchema","BackgroundTaskValidationError","UpdateBackgroundTaskSettingsUseCase","UseCaseAbstraction","BackgroundTaskPermissions","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;;;AAaA,MAAMA;IACF,YACqBC,WAAgD,EAChDC,UAA4D,CAC/E;aAFmBD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IAClB;IAEH,MAAM,QACFC,KAA+B,EACmC;QAClE,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,wCAAwC,SAAS,CAACJ;QACjE,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,8BAA8BF,OAAO,KAAK;QAGrE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA,OAAO,IAAI;IAC9C;AACJ;AAEO,MAAMG,0EAAsCC,oCAAAA,oBAAuC,CAAC;IACvF,gBAAgBV;IAChB,cAAc;QAACW;QAA2BC;KAAuC;AACrF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IBackgroundTaskSettings } from "../../../api/domain/BackgroundTaskSettings.js";
|
|
3
|
+
import type { BackgroundTaskModelNotFoundError, BackgroundTaskNotAuthorizedError, BackgroundTaskPersistenceError, BackgroundTaskValidationError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IUpdateBackgroundTaskSettingsInput {
|
|
5
|
+
retentionDays?: number;
|
|
6
|
+
}
|
|
7
|
+
type IError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError | BackgroundTaskNotAuthorizedError | BackgroundTaskValidationError;
|
|
8
|
+
export interface IUpdateBackgroundTaskSettingsUseCase {
|
|
9
|
+
execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IError>>;
|
|
10
|
+
}
|
|
11
|
+
export declare const UpdateBackgroundTaskSettingsUseCase: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsUseCase>;
|
|
12
|
+
export declare namespace UpdateBackgroundTaskSettingsUseCase {
|
|
13
|
+
type Interface = IUpdateBackgroundTaskSettingsUseCase;
|
|
14
|
+
type Input = IUpdateBackgroundTaskSettingsInput;
|
|
15
|
+
type Error = IError;
|
|
16
|
+
}
|
|
17
|
+
type IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;
|
|
18
|
+
export interface IUpdateBackgroundTaskSettingsRepository {
|
|
19
|
+
execute(input: IUpdateBackgroundTaskSettingsInput): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;
|
|
20
|
+
}
|
|
21
|
+
export declare const UpdateBackgroundTaskSettingsRepository: import("@webiny/di").Abstraction<IUpdateBackgroundTaskSettingsRepository>;
|
|
22
|
+
export declare namespace UpdateBackgroundTaskSettingsRepository {
|
|
23
|
+
type Interface = IUpdateBackgroundTaskSettingsRepository;
|
|
24
|
+
type Error = IRepositoryError;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const UpdateBackgroundTaskSettingsUseCase = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsUseCase");
|
|
3
|
+
const UpdateBackgroundTaskSettingsRepository = createAbstraction("BackgroundTasks/UpdateBackgroundTaskSettingsRepository");
|
|
4
|
+
export { UpdateBackgroundTaskSettingsRepository, UpdateBackgroundTaskSettingsUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/abstractions.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IBackgroundTaskSettings } from \"~/api/domain/BackgroundTaskSettings.js\";\nimport type {\n BackgroundTaskModelNotFoundError,\n BackgroundTaskNotAuthorizedError,\n BackgroundTaskPersistenceError,\n BackgroundTaskValidationError\n} from \"~/api/domain/errors.js\";\n\nexport interface IUpdateBackgroundTaskSettingsInput {\n retentionDays?: number;\n}\n\ntype IError =\n | BackgroundTaskModelNotFoundError\n | BackgroundTaskPersistenceError\n | BackgroundTaskNotAuthorizedError\n | BackgroundTaskValidationError;\n\nexport interface IUpdateBackgroundTaskSettingsUseCase {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsUseCase =\n createAbstraction<IUpdateBackgroundTaskSettingsUseCase>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsUseCase\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsUseCase {\n export type Interface = IUpdateBackgroundTaskSettingsUseCase;\n export type Input = IUpdateBackgroundTaskSettingsInput;\n export type Error = IError;\n}\n\ntype IRepositoryError = BackgroundTaskModelNotFoundError | BackgroundTaskPersistenceError;\n\nexport interface IUpdateBackgroundTaskSettingsRepository {\n execute(\n input: IUpdateBackgroundTaskSettingsInput\n ): Promise<Result<IBackgroundTaskSettings, IRepositoryError>>;\n}\n\nexport const UpdateBackgroundTaskSettingsRepository =\n createAbstraction<IUpdateBackgroundTaskSettingsRepository>(\n \"BackgroundTasks/UpdateBackgroundTaskSettingsRepository\"\n );\n\nexport namespace UpdateBackgroundTaskSettingsRepository {\n export type Interface = IUpdateBackgroundTaskSettingsRepository;\n export type Error = IRepositoryError;\n}\n"],"names":["UpdateBackgroundTaskSettingsUseCase","createAbstraction","UpdateBackgroundTaskSettingsRepository"],"mappings":";AAyBO,MAAMA,sCACTC,kBACI;AAiBD,MAAMC,yCACTD,kBACI"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateBackgroundTaskSettingsUseCase } from "./UpdateBackgroundTaskSettingsUseCase.js";
|
|
3
|
+
import { UpdateBackgroundTaskSettingsRepository } from "./UpdateBackgroundTaskSettingsRepository.js";
|
|
4
|
+
const UpdateBackgroundTaskSettingsFeature = createFeature({
|
|
5
|
+
name: "UpdateBackgroundTaskSettings",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(UpdateBackgroundTaskSettingsUseCase);
|
|
8
|
+
container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { UpdateBackgroundTaskSettingsFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/feature.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"./UpdateBackgroundTaskSettingsUseCase.js\";\nimport { UpdateBackgroundTaskSettingsRepository } from \"./UpdateBackgroundTaskSettingsRepository.js\";\n\nexport const UpdateBackgroundTaskSettingsFeature = createFeature({\n name: \"UpdateBackgroundTaskSettings\",\n register(container) {\n container.register(UpdateBackgroundTaskSettingsUseCase);\n container.register(UpdateBackgroundTaskSettingsRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateBackgroundTaskSettingsFeature","createFeature","container","UpdateBackgroundTaskSettingsUseCase","UpdateBackgroundTaskSettingsRepository"],"mappings":";;;AAIO,MAAMA,sCAAsCC,cAAc;IAC7D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,wCAAwC,gBAAgB;IAC/E;AACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BACKGROUND_TASK_MAX_RETENTION_DAYS } from "../../domain/constants.js";
|
|
3
|
+
const UpdateBackgroundTaskSettingsInputSchema = z.object({
|
|
4
|
+
retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()
|
|
5
|
+
});
|
|
6
|
+
export { UpdateBackgroundTaskSettingsInputSchema };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateBackgroundTaskSettings/schema.js","sources":["../../../../src/api/features/UpdateBackgroundTaskSettings/schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { BACKGROUND_TASK_MAX_RETENTION_DAYS } from \"~/api/domain/constants.js\";\n\nexport const UpdateBackgroundTaskSettingsInputSchema = z.object({\n retentionDays: z.number().int().min(0).max(BACKGROUND_TASK_MAX_RETENTION_DAYS).optional()\n});\n"],"names":["UpdateBackgroundTaskSettingsInputSchema","z","BACKGROUND_TASK_MAX_RETENTION_DAYS"],"mappings":";;AAGO,MAAMA,0CAA0CC,EAAE,MAAM,CAAC;IAC5D,eAAeA,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAACC,oCAAoC,QAAQ;AAC3F"}
|
package/api/global.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
package/api/global.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
+
import { ContextPlugin } from "@webiny/handler";
|
|
3
|
+
import { GetBackgroundTaskSettingsRepository } from "../features/GetBackgroundTaskSettings/abstractions.js";
|
|
4
|
+
import { UpdateBackgroundTaskSettingsUseCase } from "../features/UpdateBackgroundTaskSettings/abstractions.js";
|
|
5
|
+
import { checkPermissions } from "./checkPermissions.js";
|
|
6
|
+
const resolve = async (fn)=>{
|
|
7
|
+
try {
|
|
8
|
+
const data = await fn();
|
|
9
|
+
return {
|
|
10
|
+
data,
|
|
11
|
+
error: null
|
|
12
|
+
};
|
|
13
|
+
} catch (error) {
|
|
14
|
+
return {
|
|
15
|
+
data: null,
|
|
16
|
+
error: {
|
|
17
|
+
message: error.message,
|
|
18
|
+
code: error.code,
|
|
19
|
+
data: error.data
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const createBackgroundTaskSettingsGraphQL = ()=>{
|
|
25
|
+
const plugin = new ContextPlugin(async (ctx)=>{
|
|
26
|
+
if (!ctx.tenancy.getCurrentTenant()) return;
|
|
27
|
+
const schema = new GraphQLSchemaPlugin({
|
|
28
|
+
typeDefs: `
|
|
29
|
+
type WebinyBackgroundTaskSettings {
|
|
30
|
+
retentionDays: Int
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type WebinyBackgroundTaskSettingsResponse {
|
|
34
|
+
data: WebinyBackgroundTaskSettings
|
|
35
|
+
error: WebinyBackgroundTaskError
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
input UpdateBackgroundTaskSettingsInput {
|
|
39
|
+
retentionDays: Int
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
extend type WebinyBackgroundTaskQuery {
|
|
43
|
+
getSettings: WebinyBackgroundTaskSettingsResponse
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
extend type WebinyBackgroundTaskMutation {
|
|
47
|
+
updateSettings(
|
|
48
|
+
input: UpdateBackgroundTaskSettingsInput!
|
|
49
|
+
): WebinyBackgroundTaskSettingsResponse
|
|
50
|
+
}
|
|
51
|
+
`,
|
|
52
|
+
resolvers: {
|
|
53
|
+
WebinyBackgroundTaskQuery: {
|
|
54
|
+
getSettings: async (_, __, context)=>resolve(async ()=>{
|
|
55
|
+
await checkPermissions(context, {
|
|
56
|
+
rwd: "r"
|
|
57
|
+
});
|
|
58
|
+
const repository = context.container.resolve(GetBackgroundTaskSettingsRepository);
|
|
59
|
+
const result = await repository.execute();
|
|
60
|
+
if (result.isFail()) throw result.error;
|
|
61
|
+
return result.value;
|
|
62
|
+
})
|
|
63
|
+
},
|
|
64
|
+
WebinyBackgroundTaskMutation: {
|
|
65
|
+
updateSettings: async (_, args, context)=>resolve(async ()=>{
|
|
66
|
+
const useCase = context.container.resolve(UpdateBackgroundTaskSettingsUseCase);
|
|
67
|
+
const result = await useCase.execute(args.input);
|
|
68
|
+
if (result.isFail()) throw result.error;
|
|
69
|
+
return result.value;
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
schema.name = "backgroundTasks.settings.graphql.schema";
|
|
75
|
+
ctx.plugins.register(schema);
|
|
76
|
+
});
|
|
77
|
+
plugin.name = "backgroundTasks.settings.graphql";
|
|
78
|
+
return [
|
|
79
|
+
plugin
|
|
80
|
+
];
|
|
81
|
+
};
|
|
82
|
+
export { createBackgroundTaskSettingsGraphQL };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=BackgroundTaskSettingsSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/BackgroundTaskSettingsSchema.js","sources":["../../../src/api/graphql/BackgroundTaskSettingsSchema.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context } from \"~/api/types.js\";\nimport { GetBackgroundTaskSettingsRepository } from \"~/api/features/GetBackgroundTaskSettings/abstractions.js\";\nimport { UpdateBackgroundTaskSettingsUseCase } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { IUpdateBackgroundTaskSettingsInput } from \"~/api/features/UpdateBackgroundTaskSettings/abstractions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\n\ninterface IUpdateSettingsArgs {\n input: IUpdateBackgroundTaskSettingsInput;\n}\n\nconst resolve = async <T = unknown>(fn: () => Promise<T>) => {\n try {\n const data = await fn();\n return { data, error: null };\n } catch (error: any) {\n return {\n data: null,\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n }\n };\n }\n};\n\nexport const createBackgroundTaskSettingsGraphQL = (): Plugin[] => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const schema = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskSettings {\n retentionDays: Int\n }\n\n type WebinyBackgroundTaskSettingsResponse {\n data: WebinyBackgroundTaskSettings\n error: WebinyBackgroundTaskError\n }\n\n input UpdateBackgroundTaskSettingsInput {\n retentionDays: Int\n }\n\n extend type WebinyBackgroundTaskQuery {\n getSettings: WebinyBackgroundTaskSettingsResponse\n }\n\n extend type WebinyBackgroundTaskMutation {\n updateSettings(\n input: UpdateBackgroundTaskSettingsInput!\n ): WebinyBackgroundTaskSettingsResponse\n }\n `,\n resolvers: {\n WebinyBackgroundTaskQuery: {\n getSettings: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, { rwd: \"r\" });\n const repository = context.container.resolve(\n GetBackgroundTaskSettingsRepository\n );\n const result = await repository.execute();\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n updateSettings: async (_, args: IUpdateSettingsArgs, context) => {\n return resolve(async () => {\n const useCase = context.container.resolve(\n UpdateBackgroundTaskSettingsUseCase\n );\n const result = await useCase.execute(args.input);\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n }\n }\n }\n });\n\n schema.name = \"backgroundTasks.settings.graphql.schema\";\n ctx.plugins.register(schema);\n });\n\n plugin.name = \"backgroundTasks.settings.graphql\";\n\n return [plugin];\n};\n"],"names":["resolve","fn","data","error","createBackgroundTaskSettingsGraphQL","plugin","ContextPlugin","ctx","schema","GraphQLSchemaPlugin","_","__","context","checkPermissions","repository","GetBackgroundTaskSettingsRepository","result","args","useCase","UpdateBackgroundTaskSettingsUseCase"],"mappings":";;;;;AAaA,MAAMA,UAAU,OAAoBC;IAChC,IAAI;QACA,MAAMC,OAAO,MAAMD;QACnB,OAAO;YAAEC;YAAM,OAAO;QAAK;IAC/B,EAAE,OAAOC,OAAY;QACjB,OAAO;YACH,MAAM;YACN,OAAO;gBACH,SAASA,MAAM,OAAO;gBACtB,MAAMA,MAAM,IAAI;gBAChB,MAAMA,MAAM,IAAI;YACpB;QACJ;IACJ;AACJ;AAEO,MAAMC,sCAAsC;IAC/C,MAAMC,SAAS,IAAIC,cAAuB,OAAMC;QAC5C,IAAI,CAACA,IAAI,OAAO,CAAC,gBAAgB,IAC7B;QAGJ,MAAMC,SAAS,IAAIC,oBAA6B;YAC5C,UAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;YAuBzB,CAAC;YACD,WAAW;gBACP,2BAA2B;oBACvB,aAAa,OAAOC,GAAGC,IAAIC,UAChBZ,QAAQ;4BACX,MAAMa,iBAAiBD,SAAS;gCAAE,KAAK;4BAAI;4BAC3C,MAAME,aAAaF,QAAQ,SAAS,CAAC,OAAO,CACxCG;4BAEJ,MAAMC,SAAS,MAAMF,WAAW,OAAO;4BACvC,IAAIE,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;gBACA,8BAA8B;oBAC1B,gBAAgB,OAAON,GAAGO,MAA2BL,UAC1CZ,QAAQ;4BACX,MAAMkB,UAAUN,QAAQ,SAAS,CAAC,OAAO,CACrCO;4BAEJ,MAAMH,SAAS,MAAME,QAAQ,OAAO,CAACD,KAAK,KAAK;4BAC/C,IAAID,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;4BAEtB,OAAOA,OAAO,KAAK;wBACvB;gBAER;YACJ;QACJ;QAEAR,OAAO,IAAI,GAAG;QACdD,IAAI,OAAO,CAAC,QAAQ,CAACC;IACzB;IAEAH,OAAO,IAAI,GAAG;IAEd,OAAO;QAACA;KAAO;AACnB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
|
|
2
|
+
const checkPermissions = async (context, check = {})=>{
|
|
3
|
+
const taskPermissions = await context.security.getPermissions("tasks");
|
|
4
|
+
const relevant = taskPermissions.filter((current)=>{
|
|
5
|
+
if (check.rwd && !hasRwd(current, check.rwd)) return false;
|
|
6
|
+
return true;
|
|
7
|
+
});
|
|
8
|
+
if (0 === relevant.length) throw new NotAuthorizedError();
|
|
9
|
+
};
|
|
10
|
+
const hasRwd = (permissions, rwd)=>{
|
|
11
|
+
if (!Array.isArray(permissions)) permissions = [
|
|
12
|
+
permissions
|
|
13
|
+
];
|
|
14
|
+
if (!rwd) return true;
|
|
15
|
+
const permissionWithoutRwdRestrictions = permissions.some((permission)=>"string" != typeof permission.rwd);
|
|
16
|
+
if (permissionWithoutRwdRestrictions) return true;
|
|
17
|
+
return permissions.some((permission)=>permission.rwd && permission.rwd.includes(rwd));
|
|
18
|
+
};
|
|
19
|
+
export { checkPermissions };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=checkPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/checkPermissions.js","sources":["../../../src/api/graphql/checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/api/types.js\";\nimport { NotAuthorizedError } from \"@webiny/api-core/features/security/shared/index.js\";\n\n/**\n * @throws\n */\nexport const checkPermissions = async (\n context: Context,\n check: { rwd?: string } = {}\n): Promise<void> => {\n const taskPermissions = await context.security.getPermissions<TaskPermission>(\"tasks\");\n\n const relevant = taskPermissions.filter(current => {\n if (check.rwd && !hasRwd(current, check.rwd)) {\n return false;\n }\n\n return true;\n });\n\n if (relevant.length === 0) {\n throw new NotAuthorizedError();\n }\n};\n\nconst hasRwd = (permissions: TaskPermission | TaskPermission[], rwd: string): boolean => {\n if (!Array.isArray(permissions)) {\n permissions = [permissions];\n }\n\n if (!rwd) {\n return true;\n }\n\n // Is there a permission that doesn't restrict RWD permissions, that means all RWD permissions are allowed.\n const permissionWithoutRwdRestrictions = permissions.some(permission => {\n return typeof permission.rwd !== \"string\";\n });\n\n if (permissionWithoutRwdRestrictions) {\n return true;\n }\n\n // If there is no permission that doesn't restrict RWD permissions, that means we need to check if the RWD.\n return permissions.some(permission => {\n return permission.rwd && permission.rwd.includes(rwd);\n });\n};\n"],"names":["checkPermissions","context","check","taskPermissions","relevant","current","hasRwd","NotAuthorizedError","permissions","rwd","Array","permissionWithoutRwdRestrictions","permission"],"mappings":";AAMO,MAAMA,mBAAmB,OAC5BC,SACAC,QAA0B,CAAC,CAAC;IAE5B,MAAMC,kBAAkB,MAAMF,QAAQ,QAAQ,CAAC,cAAc,CAAiB;IAE9E,MAAMG,WAAWD,gBAAgB,MAAM,CAACE,CAAAA;QACpC,IAAIH,MAAM,GAAG,IAAI,CAACI,OAAOD,SAASH,MAAM,GAAG,GACvC,OAAO;QAGX,OAAO;IACX;IAEA,IAAIE,AAAoB,MAApBA,SAAS,MAAM,EACf,MAAM,IAAIG;AAElB;AAEA,MAAMD,SAAS,CAACE,aAAgDC;IAC5D,IAAI,CAACC,MAAM,OAAO,CAACF,cACfA,cAAc;QAACA;KAAY;IAG/B,IAAI,CAACC,KACD,OAAO;IAIX,MAAME,mCAAmCH,YAAY,IAAI,CAACI,CAAAA,aAC/C,AAA0B,YAA1B,OAAOA,WAAW,GAAG;IAGhC,IAAID,kCACA,OAAO;IAIX,OAAOH,YAAY,IAAI,CAACI,CAAAA,aACbA,WAAW,GAAG,IAAIA,WAAW,GAAG,CAAC,QAAQ,CAACH;AAEzD"}
|