@webiny/tasks 0.0.0-unstable.e53eceafb5 → 0.0.0-unstable.e6f0dc8ca7
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/README.md +10 -9
- package/context.js +50 -21
- package/context.js.map +1 -1
- package/crud/TaskLogPrivateModel.d.ts +9 -0
- package/crud/TaskLogPrivateModel.js +34 -0
- package/crud/TaskLogPrivateModel.js.map +1 -0
- package/crud/TaskPrivateModel.d.ts +9 -0
- package/crud/TaskPrivateModel.js +46 -0
- package/crud/TaskPrivateModel.js.map +1 -0
- package/crud/cleanupTaskSubtree.d.ts +8 -0
- package/crud/cleanupTaskSubtree.js +76 -0
- package/crud/cleanupTaskSubtree.js.map +1 -0
- package/crud/crud.tasks.d.ts +1 -1
- package/crud/crud.tasks.js +213 -105
- package/crud/crud.tasks.js.map +1 -1
- package/crud/definition.tasks.d.ts +1 -1
- package/crud/definition.tasks.js +9 -18
- package/crud/definition.tasks.js.map +1 -1
- package/crud/service.tasks.d.ts +1 -1
- package/crud/service.tasks.js +31 -36
- package/crud/service.tasks.js.map +1 -1
- package/decorators/RunnableTaskDecorator.d.ts +32 -0
- package/decorators/RunnableTaskDecorator.js +85 -0
- package/decorators/RunnableTaskDecorator.js.map +1 -0
- package/decorators/SelfCleaningTaskDecorator.d.ts +30 -0
- package/decorators/SelfCleaningTaskDecorator.js +98 -0
- package/decorators/SelfCleaningTaskDecorator.js.map +1 -0
- package/domain/errors.d.ts +29 -0
- package/domain/errors.js +47 -0
- package/domain/errors.js.map +1 -0
- package/events/TaskAfterCreateEvent.d.ts +6 -0
- package/events/TaskAfterCreateEvent.js +10 -0
- package/events/TaskAfterCreateEvent.js.map +1 -0
- package/events/TaskAfterDeleteEvent.d.ts +6 -0
- package/events/TaskAfterDeleteEvent.js +10 -0
- package/events/TaskAfterDeleteEvent.js.map +1 -0
- package/events/TaskAfterUpdateEvent.d.ts +6 -0
- package/events/TaskAfterUpdateEvent.js +10 -0
- package/events/TaskAfterUpdateEvent.js.map +1 -0
- package/events/TaskBeforeCreateEvent.d.ts +6 -0
- package/events/TaskBeforeCreateEvent.js +10 -0
- package/events/TaskBeforeCreateEvent.js.map +1 -0
- package/events/TaskBeforeDeleteEvent.d.ts +6 -0
- package/events/TaskBeforeDeleteEvent.js +10 -0
- package/events/TaskBeforeDeleteEvent.js.map +1 -0
- package/events/TaskBeforeUpdateEvent.d.ts +6 -0
- package/events/TaskBeforeUpdateEvent.js +10 -0
- package/events/TaskBeforeUpdateEvent.js.map +1 -0
- package/events/abstractions.d.ts +53 -0
- package/events/abstractions.js +39 -0
- package/events/abstractions.js.map +1 -0
- package/events/index.d.ts +7 -0
- package/events/index.js +9 -0
- package/events/index.js.map +1 -0
- package/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
- package/features/AbortTask/AbortTaskUseCase.js +11 -0
- package/features/AbortTask/AbortTaskUseCase.js.map +1 -0
- package/features/AbortTask/abstractions.d.ts +25 -0
- package/features/AbortTask/abstractions.js +4 -0
- package/features/AbortTask/abstractions.js.map +1 -0
- package/features/AbortTask/feature.d.ts +5 -0
- package/features/AbortTask/feature.js +11 -0
- package/features/AbortTask/feature.js.map +1 -0
- package/features/AbortTask/index.d.ts +2 -0
- package/features/AbortTask/index.js +4 -0
- package/features/AbortTask/index.js.map +1 -0
- package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.d.ts +7 -0
- package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js +10 -0
- package/features/CleanupTaskSubtree/CleanupTaskSubtreeUseCase.js.map +1 -0
- package/features/CleanupTaskSubtree/abstractions.d.ts +7 -0
- package/features/CleanupTaskSubtree/abstractions.js +4 -0
- package/features/CleanupTaskSubtree/abstractions.js.map +1 -0
- package/features/CleanupTaskSubtree/index.d.ts +2 -0
- package/features/CleanupTaskSubtree/index.js +4 -0
- package/features/CleanupTaskSubtree/index.js.map +1 -0
- package/features/GetTask/GetTaskUseCase.d.ts +9 -0
- package/features/GetTask/GetTaskUseCase.js +10 -0
- package/features/GetTask/GetTaskUseCase.js.map +1 -0
- package/features/GetTask/abstractions.d.ts +10 -0
- package/features/GetTask/abstractions.js +4 -0
- package/features/GetTask/abstractions.js.map +1 -0
- package/features/GetTask/feature.d.ts +5 -0
- package/features/GetTask/feature.js +11 -0
- package/features/GetTask/feature.js.map +1 -0
- package/features/GetTask/index.d.ts +2 -0
- package/features/GetTask/index.js +4 -0
- package/features/GetTask/index.js.map +1 -0
- package/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
- package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +25 -0
- package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
- package/features/GetTaskDefinition/abstractions.d.ts +17 -0
- package/features/GetTaskDefinition/abstractions.js +4 -0
- package/features/GetTaskDefinition/abstractions.js.map +1 -0
- package/features/GetTaskDefinition/feature.d.ts +4 -0
- package/features/GetTaskDefinition/feature.js +10 -0
- package/features/GetTaskDefinition/feature.js.map +1 -0
- package/features/GetTaskDefinition/index.d.ts +2 -0
- package/features/GetTaskDefinition/index.js +4 -0
- package/features/GetTaskDefinition/index.js.map +1 -0
- package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
- package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -0
- package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
- package/features/ListTaskDefinitions/abstractions.d.ts +9 -0
- package/features/ListTaskDefinitions/abstractions.js +4 -0
- package/features/ListTaskDefinitions/abstractions.js.map +1 -0
- package/features/ListTaskDefinitions/feature.d.ts +4 -0
- package/features/ListTaskDefinitions/feature.js +10 -0
- package/features/ListTaskDefinitions/feature.js.map +1 -0
- package/features/ListTaskDefinitions/index.d.ts +2 -0
- package/features/ListTaskDefinitions/index.js +4 -0
- package/features/ListTaskDefinitions/index.js.map +1 -0
- package/features/ListTasks/ListTasksUseCase.d.ts +9 -0
- package/features/ListTasks/ListTasksUseCase.js +10 -0
- package/features/ListTasks/ListTasksUseCase.js.map +1 -0
- package/features/ListTasks/abstractions.d.ts +13 -0
- package/features/ListTasks/abstractions.js +4 -0
- package/features/ListTasks/abstractions.js.map +1 -0
- package/features/ListTasks/feature.d.ts +5 -0
- package/features/ListTasks/feature.js +11 -0
- package/features/ListTasks/feature.js.map +1 -0
- package/features/ListTasks/index.d.ts +2 -0
- package/features/ListTasks/index.js +4 -0
- package/features/ListTasks/index.js.map +1 -0
- package/features/TaskController/TaskController.d.ts +49 -0
- package/features/TaskController/TaskController.js +71 -0
- package/features/TaskController/TaskController.js.map +1 -0
- package/features/TaskController/augmentation.d.ts +60 -0
- package/features/TaskController/augmentation.js +3 -0
- package/features/TaskController/augmentation.js.map +1 -0
- package/features/TaskController/index.d.ts +2 -0
- package/features/TaskController/index.js +7 -0
- package/features/TaskController/index.js.map +1 -0
- package/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
- package/features/TaskExecutionContext/TaskExecutionContext.js +50 -0
- package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
- package/features/TaskExecutionContext/abstractions.d.ts +26 -0
- package/features/TaskExecutionContext/abstractions.js +13 -0
- package/features/TaskExecutionContext/abstractions.js.map +1 -0
- package/features/TaskExecutionContext/feature.d.ts +4 -0
- package/features/TaskExecutionContext/feature.js +10 -0
- package/features/TaskExecutionContext/feature.js.map +1 -0
- package/features/TaskExecutionContext/index.d.ts +1 -0
- package/features/TaskExecutionContext/index.js +3 -0
- package/features/TaskExecutionContext/index.js.map +1 -0
- package/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
- package/features/TriggerTask/TriggerTaskUseCase.js +11 -0
- package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
- package/features/TriggerTask/abstractions.d.ts +28 -0
- package/features/TriggerTask/abstractions.js +4 -0
- package/features/TriggerTask/abstractions.js.map +1 -0
- package/features/TriggerTask/feature.d.ts +5 -0
- package/features/TriggerTask/feature.js +11 -0
- package/features/TriggerTask/feature.js.map +1 -0
- package/features/TriggerTask/index.d.ts +2 -0
- package/features/TriggerTask/index.js +4 -0
- package/features/TriggerTask/index.js.map +1 -0
- package/global.d.ts +1 -0
- package/global.js +3 -0
- package/global.js.map +1 -0
- package/graphql/checkPermissions.d.ts +1 -1
- package/graphql/checkPermissions.js +3 -9
- package/graphql/checkPermissions.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/index.js +67 -83
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +3 -3
- package/graphql/utils.js +8 -17
- package/graphql/utils.js.map +1 -1
- package/handler/index.d.ts +2 -2
- package/handler/index.js +33 -40
- package/handler/index.js.map +1 -1
- package/handler/register.js +5 -7
- package/handler/register.js.map +1 -1
- package/handler/types.d.ts +1 -3
- package/handler/types.js +1 -5
- package/handler/types.js.map +1 -1
- package/index.d.ts +5 -6
- package/index.js +5 -60
- package/index.js.map +1 -1
- package/package.json +27 -28
- package/plugins/TaskServicePlugin.d.ts +1 -2
- package/plugins/TaskServicePlugin.js +2 -9
- package/plugins/TaskServicePlugin.js.map +1 -1
- package/plugins/index.d.ts +1 -1
- package/plugins/index.js +1 -16
- package/plugins/index.js.map +1 -1
- package/response/DatabaseResponse.d.ts +3 -3
- package/response/DatabaseResponse.js +14 -20
- package/response/DatabaseResponse.js.map +1 -1
- package/response/Response.d.ts +4 -3
- package/response/Response.js +20 -31
- package/response/Response.js.map +1 -1
- package/response/ResponseAbortedResult.d.ts +3 -4
- package/response/ResponseAbortedResult.js +3 -11
- package/response/ResponseAbortedResult.js.map +1 -1
- package/response/ResponseContinueResult.d.ts +4 -5
- package/response/ResponseContinueResult.js +3 -11
- package/response/ResponseContinueResult.js.map +1 -1
- package/response/ResponseDoneResult.d.ts +4 -6
- package/response/ResponseDoneResult.js +3 -11
- package/response/ResponseDoneResult.js.map +1 -1
- package/response/ResponseErrorResult.d.ts +3 -4
- package/response/ResponseErrorResult.js +3 -11
- package/response/ResponseErrorResult.js.map +1 -1
- package/response/TaskResponse.d.ts +7 -6
- package/response/TaskResponse.js +5 -12
- package/response/TaskResponse.js.map +1 -1
- package/response/abstractions/Response.d.ts +7 -7
- package/response/abstractions/Response.js +1 -5
- package/response/abstractions/Response.js.map +1 -1
- package/response/abstractions/ResponseAbortedResult.d.ts +3 -3
- package/response/abstractions/ResponseAbortedResult.js +1 -5
- package/response/abstractions/ResponseAbortedResult.js.map +1 -1
- package/response/abstractions/ResponseBaseResult.d.ts +2 -3
- package/response/abstractions/ResponseBaseResult.js +1 -5
- package/response/abstractions/ResponseBaseResult.js.map +1 -1
- package/response/abstractions/ResponseContinueResult.d.ts +4 -4
- package/response/abstractions/ResponseContinueResult.js +1 -5
- package/response/abstractions/ResponseContinueResult.js.map +1 -1
- package/response/abstractions/ResponseDoneResult.d.ts +5 -6
- package/response/abstractions/ResponseDoneResult.js +1 -5
- package/response/abstractions/ResponseDoneResult.js.map +1 -1
- package/response/abstractions/ResponseErrorResult.d.ts +4 -5
- package/response/abstractions/ResponseErrorResult.js +1 -5
- package/response/abstractions/ResponseErrorResult.js.map +1 -1
- package/response/abstractions/TaskResponse.d.ts +8 -30
- package/response/abstractions/TaskResponse.js +1 -5
- package/response/abstractions/TaskResponse.js.map +1 -1
- package/response/abstractions/index.d.ts +7 -7
- package/response/abstractions/index.js +7 -82
- package/response/abstractions/index.js.map +1 -1
- package/response/index.d.ts +7 -7
- package/response/index.js +7 -82
- package/response/index.js.map +1 -1
- package/runner/TaskControl.d.ts +4 -4
- package/runner/TaskControl.js +61 -39
- package/runner/TaskControl.js.map +1 -1
- package/runner/TaskEventValidation.d.ts +2 -2
- package/runner/TaskEventValidation.js +11 -20
- package/runner/TaskEventValidation.js.map +1 -1
- package/runner/TaskManager.d.ts +7 -10
- package/runner/TaskManager.js +19 -39
- package/runner/TaskManager.js.map +1 -1
- package/runner/TaskManagerStore.d.ts +7 -7
- package/runner/TaskManagerStore.js +16 -25
- package/runner/TaskManagerStore.js.map +1 -1
- package/runner/TaskRunner.d.ts +5 -6
- package/runner/TaskRunner.js +9 -31
- package/runner/TaskRunner.js.map +1 -1
- package/runner/abstractions/TaskControl.d.ts +4 -4
- package/runner/abstractions/TaskControl.js +1 -5
- package/runner/abstractions/TaskControl.js.map +1 -1
- package/runner/abstractions/TaskEventValidation.d.ts +1 -1
- package/runner/abstractions/TaskEventValidation.js +1 -5
- package/runner/abstractions/TaskEventValidation.js.map +1 -1
- package/runner/abstractions/TaskManager.d.ts +4 -4
- package/runner/abstractions/TaskManager.js +1 -5
- package/runner/abstractions/TaskManager.js.map +1 -1
- package/runner/abstractions/TaskManagerStore.d.ts +11 -11
- package/runner/abstractions/TaskManagerStore.js +1 -5
- package/runner/abstractions/TaskManagerStore.js.map +1 -1
- package/runner/abstractions/TaskRunner.d.ts +3 -3
- package/runner/abstractions/TaskRunner.js +1 -5
- package/runner/abstractions/TaskRunner.js.map +1 -1
- package/runner/abstractions/index.d.ts +5 -5
- package/runner/abstractions/index.js +5 -60
- package/runner/abstractions/index.js.map +1 -1
- package/runner/index.d.ts +1 -1
- package/runner/index.js +1 -16
- package/runner/index.js.map +1 -1
- package/service/EventBridgeEventTransportPlugin.d.ts +4 -5
- package/service/EventBridgeEventTransportPlugin.js +8 -17
- package/service/EventBridgeEventTransportPlugin.js.map +1 -1
- package/service/StepFunctionServicePlugin.d.ts +4 -5
- package/service/StepFunctionServicePlugin.js +11 -21
- package/service/StepFunctionServicePlugin.js.map +1 -1
- package/service/createService.d.ts +2 -2
- package/service/createService.js +7 -18
- package/service/createService.js.map +1 -1
- package/service/index.d.ts +3 -3
- package/service/index.js +6 -27
- package/service/index.js.map +1 -1
- package/tasks/testingRunTask.d.ts +10 -1
- package/tasks/testingRunTask.js +13 -18
- package/tasks/testingRunTask.js.map +1 -1
- package/types.d.ts +41 -214
- package/types.js +7 -56
- package/types.js.map +1 -1
- package/utils/ObjectUpdater.js +4 -11
- package/utils/ObjectUpdater.js.map +1 -1
- package/utils/getErrorProperties.d.ts +1 -1
- package/utils/getErrorProperties.js +3 -10
- package/utils/getErrorProperties.js.map +1 -1
- package/utils/getObjectProperties.js +1 -8
- package/utils/getObjectProperties.js.map +1 -1
- package/utils/index.d.ts +3 -3
- package/utils/index.js +3 -38
- package/utils/index.js.map +1 -1
- package/utils/normalizeSelfCleanup.d.ts +2 -0
- package/utils/normalizeSelfCleanup.js +15 -0
- package/utils/normalizeSelfCleanup.js.map +1 -0
- package/crud/model.d.ts +0 -5
- package/crud/model.js +0 -216
- package/crud/model.js.map +0 -1
- package/crud/where.d.ts +0 -1
- package/crud/where.js +0 -33
- package/crud/where.js.map +0 -1
- package/task/index.d.ts +0 -2
- package/task/index.js +0 -29
- package/task/index.js.map +0 -1
- package/task/input.d.ts +0 -15
- package/task/input.js +0 -21
- package/task/input.js.map +0 -1
- package/task/plugin.d.ts +0 -36
- package/task/plugin.js +0 -106
- package/task/plugin.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { TaskExecutionContext } from "./TaskExecutionContext.js";
|
|
3
|
+
export const TaskExecutionContextFeature = createFeature({
|
|
4
|
+
name: "TaskExecutionContext",
|
|
5
|
+
register(container) {
|
|
6
|
+
container.register(TaskExecutionContext).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","TaskExecutionContext","TaskExecutionContextFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TaskExecutionContext } from \"./TaskExecutionContext.js\";\n\nexport const TaskExecutionContextFeature = createFeature({\n name: \"TaskExecutionContext\",\n register(container) {\n container.register(TaskExecutionContext).inSingletonScope();\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,2BAA2B,GAAGF,aAAa,CAAC;EACrDG,IAAI,EAAE,sBAAsB;EAC5BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,oBAAoB,CAAC,CAACK,gBAAgB,CAAC,CAAC;EAC/D;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { TriggerTaskUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
4
|
+
import { TaskService } from "@webiny/api-core/features/task/TaskService/index.js";
|
|
5
|
+
import type { Context } from "../../types.js";
|
|
6
|
+
export declare class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
7
|
+
private context;
|
|
8
|
+
constructor(context: Context);
|
|
9
|
+
execute<I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput, O extends TaskService.GenericOutput = TaskService.GenericOutput>(params: UseCaseAbstraction.Params<I>): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TriggerTaskUseCaseImpl","constructor","context","execute","params","result","tasks","trigger"],"sources":["TriggerTaskUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport type { Context } from \"~/types.js\";\n\nexport class TriggerTaskUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private context: Context) {}\n\n public async execute<\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params: UseCaseAbstraction.Params<I>\n ): Promise<Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>> {\n const result = await this.context.tasks.trigger<I, O>(params);\n\n return result as unknown as Promise<\n Result<TaskService.Task<I, O>, UseCaseAbstraction.Error>\n >;\n }\n}\n"],"mappings":"AAMA,OAAO,MAAMA,sBAAsB,CAAyC;EACjEC,WAAWA,CAASC,OAAgB,EAAE;IAAA,KAAlBA,OAAgB,GAAhBA,OAAgB;EAAG;EAE9C,MAAaC,OAAOA,CAIhBC,MAAoC,EAC6B;IACjE,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,OAAO,CAACI,KAAK,CAACC,OAAO,CAAOH,MAAM,CAAC;IAE7D,OAAOC,MAAM;EAGjB;AACJ","ignoreList":[]}
|
|
@@ -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 "../../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,"names":["createAbstraction","TriggerTaskUseCase"],"sources":["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 \"~/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"],"mappings":"AAAA,SAASA,iBAAiB,QAAgB,qBAAqB;AAkC/D,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAC/C,0BACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { TriggerTaskUseCase } from "./abstractions.js";
|
|
3
|
+
import { TriggerTaskUseCaseImpl } from "./TriggerTaskUseCase.js";
|
|
4
|
+
export const TriggerTaskFeature = createFeature({
|
|
5
|
+
name: "TriggerTask",
|
|
6
|
+
register(container, context) {
|
|
7
|
+
container.registerInstance(TriggerTaskUseCase, new TriggerTaskUseCaseImpl(context));
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","TriggerTaskUseCase","TriggerTaskUseCaseImpl","TriggerTaskFeature","name","register","container","context","registerInstance"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerTaskUseCase } from \"./abstractions.js\";\nimport { TriggerTaskUseCaseImpl } from \"~/features/TriggerTask/TriggerTaskUseCase.js\";\nimport type { Context } from \"~/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"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,sBAAsB;AAG/B,OAAO,MAAMC,kBAAkB,GAAGH,aAAa,CAAU;EACrDI,IAAI,EAAE,aAAa;EACnBC,QAAQA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACzBD,SAAS,CAACE,gBAAgB,CAACP,kBAAkB,EAAE,IAAIC,sBAAsB,CAACK,OAAQ,CAAC,CAAC;EACxF;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TriggerTaskUseCase","TriggerTaskFeature"],"sources":["index.ts"],"sourcesContent":["export { TriggerTaskUseCase } from \"./abstractions.js\";\nexport { TriggerTaskFeature } from \"./feature.js\";\n"],"mappings":"AAAA,SAASA,kBAAkB;AAC3B,SAASC,kBAAkB","ignoreList":[]}
|
package/global.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./features/TaskController/augmentation.js";
|
package/global.js
ADDED
package/global.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["global.ts"],"sourcesContent":["import \"./features/TaskController/augmentation.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { NotAuthorizedError } from "@webiny/api-core/features/security/shared/index.js";
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.checkPermissions = void 0;
|
|
7
|
-
var _apiSecurity = require("@webiny/api-security");
|
|
8
3
|
/**
|
|
9
4
|
* @throws
|
|
10
5
|
*/
|
|
11
|
-
const checkPermissions = async (context, check = {}) => {
|
|
6
|
+
export const checkPermissions = async (context, check = {}) => {
|
|
12
7
|
const taskPermissions = await context.security.getPermissions("tasks");
|
|
13
8
|
const relevant = taskPermissions.filter(current => {
|
|
14
9
|
if (check.rwd && !hasRwd(current, check.rwd)) {
|
|
@@ -17,10 +12,9 @@ const checkPermissions = async (context, check = {}) => {
|
|
|
17
12
|
return true;
|
|
18
13
|
});
|
|
19
14
|
if (relevant.length === 0) {
|
|
20
|
-
throw new
|
|
15
|
+
throw new NotAuthorizedError();
|
|
21
16
|
}
|
|
22
17
|
};
|
|
23
|
-
exports.checkPermissions = checkPermissions;
|
|
24
18
|
const hasRwd = (permissions, rwd) => {
|
|
25
19
|
if (!Array.isArray(permissions)) {
|
|
26
20
|
permissions = [permissions];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["NotAuthorizedError","checkPermissions","context","check","taskPermissions","security","getPermissions","relevant","filter","current","rwd","hasRwd","length","permissions","Array","isArray","permissionWithoutRwdRestrictions","some","permission","includes"],"sources":["checkPermissions.ts"],"sourcesContent":["import type { Context, TaskPermission } from \"~/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"],"mappings":"AACA,SAASA,kBAAkB,QAAQ,oDAAoD;;AAEvF;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,MAAAA,CAC5BC,OAAgB,EAChBC,KAAuB,GAAG,CAAC,CAAC,KACZ;EAChB,MAAMC,eAAe,GAAG,MAAMF,OAAO,CAACG,QAAQ,CAACC,cAAc,CAAiB,OAAO,CAAC;EAEtF,MAAMC,QAAQ,GAAGH,eAAe,CAACI,MAAM,CAACC,OAAO,IAAI;IAC/C,IAAIN,KAAK,CAACO,GAAG,IAAI,CAACC,MAAM,CAACF,OAAO,EAAEN,KAAK,CAACO,GAAG,CAAC,EAAE;MAC1C,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf,CAAC,CAAC;EAEF,IAAIH,QAAQ,CAACK,MAAM,KAAK,CAAC,EAAE;IACvB,MAAM,IAAIZ,kBAAkB,CAAC,CAAC;EAClC;AACJ,CAAC;AAED,MAAMW,MAAM,GAAGA,CAACE,WAA8C,EAAEH,GAAW,KAAc;EACrF,IAAI,CAACI,KAAK,CAACC,OAAO,CAACF,WAAW,CAAC,EAAE;IAC7BA,WAAW,GAAG,CAACA,WAAW,CAAC;EAC/B;EAEA,IAAI,CAACH,GAAG,EAAE;IACN,OAAO,IAAI;EACf;;EAEA;EACA,MAAMM,gCAAgC,GAAGH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IACpE,OAAO,OAAOA,UAAU,CAACR,GAAG,KAAK,QAAQ;EAC7C,CAAC,CAAC;EAEF,IAAIM,gCAAgC,EAAE;IAClC,OAAO,IAAI;EACf;;EAEA;EACA,OAAOH,WAAW,CAACI,IAAI,CAACC,UAAU,IAAI;IAClC,OAAOA,UAAU,CAACR,GAAG,IAAIQ,UAAU,CAACR,GAAG,CAACS,QAAQ,CAACT,GAAG,CAAC;EACzD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
package/graphql/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Plugin } from "@webiny/plugins/types";
|
|
1
|
+
import type { Plugin } from "@webiny/plugins/types.js";
|
|
2
2
|
export declare const createBackgroundTaskGraphQL: () => Plugin[];
|
package/graphql/index.js
CHANGED
|
@@ -1,87 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _renderListFilterFields = require("@webiny/api-headless-cms/utils/renderListFilterFields");
|
|
11
|
-
var _createFieldTypePluginRecords = require("@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords");
|
|
12
|
-
var _utils = require("./utils");
|
|
13
|
-
var _renderFields = require("@webiny/api-headless-cms/utils/renderFields");
|
|
14
|
-
var _checkPermissions = require("./checkPermissions");
|
|
15
|
-
const createWebinyBackgroundTaskDefinitionEnum = items => {
|
|
16
|
-
if (items.length === 0) {
|
|
17
|
-
return "Empty";
|
|
18
|
-
}
|
|
19
|
-
return items.filter(item => {
|
|
20
|
-
return !item.isPrivate;
|
|
21
|
-
}).map(definition => definition.id).join("\n");
|
|
22
|
-
};
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql";
|
|
2
|
+
import { renderSortEnum } from "@webiny/api-headless-cms/utils/renderSortEnum.js";
|
|
3
|
+
import { ContextPlugin } from "@webiny/handler";
|
|
4
|
+
import { renderListFilterFields } from "@webiny/api-headless-cms/utils/renderListFilterFields.js";
|
|
5
|
+
import { emptyResolver, resolve, resolveList } from "./utils.js";
|
|
6
|
+
import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
|
|
7
|
+
import { checkPermissions } from "./checkPermissions.js";
|
|
8
|
+
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
9
|
+
import { CmsModelFieldToGraphQLRegistry } from "@webiny/api-headless-cms/exports/api/cms/graphql.js";
|
|
23
10
|
const createGraphQL = () => {
|
|
24
|
-
const plugin = new
|
|
11
|
+
const plugin = new ContextPlugin(async ctx => {
|
|
25
12
|
if (!ctx.tenancy.getCurrentTenant()) {
|
|
26
13
|
return;
|
|
27
|
-
} else if (!ctx.i18n.getDefaultLocale()) {
|
|
28
|
-
return;
|
|
29
14
|
}
|
|
30
15
|
const taskModel = await ctx.tasks.getTaskModel();
|
|
31
16
|
const logModel = await ctx.tasks.getLogModel();
|
|
17
|
+
const listModels = ctx.container.resolve(ListModelsUseCase);
|
|
18
|
+
const fieldRegistry = ctx.container.resolve(CmsModelFieldToGraphQLRegistry);
|
|
32
19
|
const models = await ctx.security.withoutAuthorization(async () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return false;
|
|
36
|
-
} else if (model.isPrivate) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
return true;
|
|
20
|
+
const modelsResult = await listModels.execute({
|
|
21
|
+
includePrivate: false
|
|
40
22
|
});
|
|
23
|
+
return modelsResult.value.filter(model => model.fields.length > 0);
|
|
41
24
|
});
|
|
42
|
-
const
|
|
43
|
-
const taskFields = (0, _renderFields.renderFields)({
|
|
25
|
+
const taskFields = renderFields({
|
|
44
26
|
models,
|
|
45
27
|
model: taskModel,
|
|
46
28
|
fields: taskModel.fields,
|
|
47
29
|
type: "manage",
|
|
48
|
-
|
|
30
|
+
fieldRegistry
|
|
49
31
|
});
|
|
50
|
-
const logFields =
|
|
32
|
+
const logFields = renderFields({
|
|
51
33
|
models,
|
|
52
34
|
model: logModel,
|
|
53
35
|
fields: logModel.fields.filter(field => field.fieldId !== "task"),
|
|
54
36
|
type: "manage",
|
|
55
|
-
|
|
37
|
+
fieldRegistry
|
|
56
38
|
});
|
|
57
|
-
const listTasksFilterFieldsRender =
|
|
39
|
+
const listTasksFilterFieldsRender = renderListFilterFields({
|
|
58
40
|
model: taskModel,
|
|
59
41
|
fields: taskModel.fields,
|
|
60
42
|
type: "manage",
|
|
61
|
-
|
|
43
|
+
fieldRegistry,
|
|
62
44
|
excludeFields: ["entryId"]
|
|
63
45
|
});
|
|
64
|
-
const listLogsFilterFieldsRender =
|
|
46
|
+
const listLogsFilterFieldsRender = renderListFilterFields({
|
|
65
47
|
model: logModel,
|
|
66
48
|
fields: logModel.fields,
|
|
67
49
|
type: "manage",
|
|
68
|
-
|
|
50
|
+
fieldRegistry,
|
|
69
51
|
excludeFields: ["entryId"]
|
|
70
52
|
});
|
|
71
|
-
const sortTasksEnumRender =
|
|
53
|
+
const sortTasksEnumRender = renderSortEnum({
|
|
72
54
|
model: taskModel,
|
|
73
55
|
fields: taskModel.fields,
|
|
74
|
-
|
|
75
|
-
|
|
56
|
+
fieldRegistry,
|
|
57
|
+
sorters: []
|
|
76
58
|
});
|
|
77
|
-
const sortLogsEnumRender =
|
|
59
|
+
const sortLogsEnumRender = renderSortEnum({
|
|
78
60
|
model: logModel,
|
|
79
61
|
fields: logModel.fields,
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
fieldRegistry,
|
|
63
|
+
sorters: []
|
|
82
64
|
});
|
|
83
|
-
const
|
|
84
|
-
const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
65
|
+
const plugin = new GraphQLSchemaPlugin({
|
|
85
66
|
typeDefs: /* GraphQL */`
|
|
86
67
|
type WebinyBackgroundTaskError {
|
|
87
68
|
message: String
|
|
@@ -89,7 +70,7 @@ const createGraphQL = () => {
|
|
|
89
70
|
data: JSON
|
|
90
71
|
stack: String
|
|
91
72
|
}
|
|
92
|
-
|
|
73
|
+
|
|
93
74
|
${taskFields.map(f => f.typeDefs).join("\n")}
|
|
94
75
|
${logFields.map(f => f.typeDefs).join("\n")}
|
|
95
76
|
|
|
@@ -122,7 +103,7 @@ const createGraphQL = () => {
|
|
|
122
103
|
meta: WebinyBackgroundTaskMeta
|
|
123
104
|
error: WebinyBackgroundTaskError
|
|
124
105
|
}
|
|
125
|
-
|
|
106
|
+
|
|
126
107
|
type WebinyBackgroundTaskLog {
|
|
127
108
|
id: String!
|
|
128
109
|
createdOn: DateTime!
|
|
@@ -130,7 +111,7 @@ const createGraphQL = () => {
|
|
|
130
111
|
task: WebinyBackgroundTask!
|
|
131
112
|
${logFields.map(f => f.fields).join("\n")}
|
|
132
113
|
}
|
|
133
|
-
|
|
114
|
+
|
|
134
115
|
type WebinyBackgroundTaskLogListResponse {
|
|
135
116
|
data: [WebinyBackgroundTaskLog!]
|
|
136
117
|
meta: WebinyBackgroundTaskMeta
|
|
@@ -141,7 +122,6 @@ const createGraphQL = () => {
|
|
|
141
122
|
id: String!
|
|
142
123
|
title: String!
|
|
143
124
|
description: String
|
|
144
|
-
fields: JSON
|
|
145
125
|
}
|
|
146
126
|
|
|
147
127
|
type WebinyBackgroundTaskListDefinitionsResponse {
|
|
@@ -166,17 +146,17 @@ const createGraphQL = () => {
|
|
|
166
146
|
}
|
|
167
147
|
|
|
168
148
|
input WebinyBackgroundTaskListWhereInput {
|
|
169
|
-
${listTasksFilterFieldsRender}
|
|
149
|
+
${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
170
150
|
}
|
|
171
|
-
|
|
151
|
+
|
|
172
152
|
input WebinyBackgroundTaskLogListWhereInput {
|
|
173
|
-
${listLogsFilterFieldsRender}
|
|
153
|
+
${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
174
154
|
}
|
|
175
155
|
|
|
176
156
|
enum WebinyBackgroundTaskListSorter {
|
|
177
157
|
${sortTasksEnumRender}
|
|
178
158
|
}
|
|
179
|
-
|
|
159
|
+
|
|
180
160
|
enum WebinyBackgroundTaskLogListSorter {
|
|
181
161
|
${sortLogsEnumRender}
|
|
182
162
|
}
|
|
@@ -189,10 +169,6 @@ const createGraphQL = () => {
|
|
|
189
169
|
_empty: String
|
|
190
170
|
}
|
|
191
171
|
|
|
192
|
-
enum WebinyBackgroundTaskDefinitionEnum {
|
|
193
|
-
${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
172
|
extend type Query {
|
|
197
173
|
backgroundTasks: WebinyBackgroundTaskQuery
|
|
198
174
|
}
|
|
@@ -211,7 +187,7 @@ const createGraphQL = () => {
|
|
|
211
187
|
search: String
|
|
212
188
|
): WebinyBackgroundTaskListResponse!
|
|
213
189
|
listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
|
|
214
|
-
|
|
190
|
+
|
|
215
191
|
listLogs(
|
|
216
192
|
where: WebinyBackgroundTaskLogListWhereInput
|
|
217
193
|
sort: [WebinyBackgroundTaskLogListSorter!]
|
|
@@ -222,41 +198,41 @@ const createGraphQL = () => {
|
|
|
222
198
|
}
|
|
223
199
|
|
|
224
200
|
extend type WebinyBackgroundTaskMutation {
|
|
225
|
-
triggerTask(definition:
|
|
201
|
+
triggerTask(definition: String!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!
|
|
226
202
|
abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!
|
|
227
203
|
deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!
|
|
228
204
|
}
|
|
229
205
|
`,
|
|
230
206
|
resolvers: {
|
|
231
207
|
Query: {
|
|
232
|
-
backgroundTasks:
|
|
208
|
+
backgroundTasks: emptyResolver
|
|
233
209
|
},
|
|
234
210
|
Mutation: {
|
|
235
|
-
backgroundTasks:
|
|
211
|
+
backgroundTasks: emptyResolver
|
|
236
212
|
},
|
|
237
213
|
WebinyBackgroundTaskQuery: {
|
|
238
214
|
/**
|
|
239
215
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
240
216
|
*/
|
|
241
217
|
getTask: async (_, args, context) => {
|
|
242
|
-
return
|
|
243
|
-
await
|
|
218
|
+
return resolve(async () => {
|
|
219
|
+
await checkPermissions(context, {
|
|
244
220
|
rwd: "r"
|
|
245
221
|
});
|
|
246
222
|
return await context.tasks.getTask(args.id);
|
|
247
223
|
});
|
|
248
224
|
},
|
|
249
225
|
listTasks: async (_, args, context) => {
|
|
250
|
-
return
|
|
251
|
-
await
|
|
226
|
+
return resolveList(async () => {
|
|
227
|
+
await checkPermissions(context, {
|
|
252
228
|
rwd: "r"
|
|
253
229
|
});
|
|
254
230
|
return await context.tasks.listTasks(args);
|
|
255
231
|
});
|
|
256
232
|
},
|
|
257
233
|
listDefinitions: async (_, __, context) => {
|
|
258
|
-
return
|
|
259
|
-
await
|
|
234
|
+
return resolve(async () => {
|
|
235
|
+
await checkPermissions(context, {
|
|
260
236
|
rwd: "r"
|
|
261
237
|
});
|
|
262
238
|
const result = context.tasks.listDefinitions();
|
|
@@ -269,8 +245,8 @@ const createGraphQL = () => {
|
|
|
269
245
|
});
|
|
270
246
|
},
|
|
271
247
|
listLogs: async (_, args, context) => {
|
|
272
|
-
return
|
|
273
|
-
await
|
|
248
|
+
return resolveList(async () => {
|
|
249
|
+
await checkPermissions(context, {
|
|
274
250
|
rwd: "r"
|
|
275
251
|
});
|
|
276
252
|
return await context.tasks.listLogs(args);
|
|
@@ -282,32 +258,40 @@ const createGraphQL = () => {
|
|
|
282
258
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
283
259
|
*/
|
|
284
260
|
abortTask: async (_, args, context) => {
|
|
285
|
-
await
|
|
261
|
+
await checkPermissions(context, {
|
|
286
262
|
rwd: "w"
|
|
287
263
|
});
|
|
288
|
-
return
|
|
289
|
-
|
|
264
|
+
return resolve(async () => {
|
|
265
|
+
const result = await context.tasks.abort(args);
|
|
266
|
+
if (result.isOk()) {
|
|
267
|
+
return result.value;
|
|
268
|
+
}
|
|
269
|
+
throw result.error;
|
|
290
270
|
});
|
|
291
271
|
},
|
|
292
272
|
/**
|
|
293
273
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
294
274
|
*/
|
|
295
275
|
triggerTask: async (_, args, context) => {
|
|
296
|
-
await
|
|
276
|
+
await checkPermissions(context, {
|
|
297
277
|
rwd: "w"
|
|
298
278
|
});
|
|
299
|
-
return
|
|
300
|
-
|
|
279
|
+
return resolve(async () => {
|
|
280
|
+
const result = await context.tasks.trigger(args);
|
|
281
|
+
if (result.isOk()) {
|
|
282
|
+
return result.value;
|
|
283
|
+
}
|
|
284
|
+
throw result.error;
|
|
301
285
|
});
|
|
302
286
|
},
|
|
303
287
|
/**
|
|
304
288
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
305
289
|
*/
|
|
306
290
|
deleteTask: async (_, args, context) => {
|
|
307
|
-
await
|
|
291
|
+
await checkPermissions(context, {
|
|
308
292
|
rwd: "d"
|
|
309
293
|
});
|
|
310
|
-
return
|
|
294
|
+
return resolve(async () => {
|
|
311
295
|
return await context.tasks.deleteTask(args.id);
|
|
312
296
|
});
|
|
313
297
|
}
|
|
@@ -338,14 +322,14 @@ const createGraphQL = () => {
|
|
|
338
322
|
}
|
|
339
323
|
}
|
|
340
324
|
});
|
|
325
|
+
plugin.name = "tasks.graphql.schema";
|
|
341
326
|
ctx.plugins.register(plugin);
|
|
342
327
|
});
|
|
343
328
|
plugin.name = "tasks.graphql";
|
|
344
329
|
return plugin;
|
|
345
330
|
};
|
|
346
|
-
const createBackgroundTaskGraphQL = () => {
|
|
331
|
+
export const createBackgroundTaskGraphQL = () => {
|
|
347
332
|
return [createGraphQL()];
|
|
348
333
|
};
|
|
349
|
-
exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
|
|
350
334
|
|
|
351
335
|
//# sourceMappingURL=index.js.map
|