@webiny/tasks 0.0.0-unstable.eb196ccd2f → 0.0.0-unstable.f6dc066313
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 +43 -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/crud.tasks.d.ts +1 -1
- package/crud/crud.tasks.js +209 -104
- 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 +31 -0
- package/decorators/RunnableTaskDecorator.js +82 -0
- package/decorators/RunnableTaskDecorator.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 +2 -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/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 +2 -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 +1 -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 +1 -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 +2 -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 +1 -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 +2 -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 +58 -61
- package/graphql/index.js.map +1 -1
- package/graphql/utils.d.ts +1 -1
- 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 +22 -26
- 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 +32 -214
- package/types.js +5 -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/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
package/crud/crud.tasks.js
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import WebinyError from "@webiny/error";
|
|
2
|
+
import { TaskDataStatus } from "../types.js";
|
|
3
|
+
import { WEBINY_TASK_MODEL_ID } from "./TaskPrivateModel.js";
|
|
4
|
+
import { WEBINY_TASK_LOG_MODEL_ID } from "./TaskLogPrivateModel.js";
|
|
5
|
+
import { NotFoundError } from "@webiny/handler-graphql";
|
|
6
|
+
import { createZodError, parseIdentifier } from "@webiny/utils";
|
|
7
|
+
import zod from "zod";
|
|
8
|
+
import { GetModelUseCase } from "@webiny/api-headless-cms/features/contentModel/GetModel";
|
|
9
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
10
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
|
|
11
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry";
|
|
12
|
+
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry";
|
|
13
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry";
|
|
14
|
+
import { IdentityContext } from "@webiny/api-core/features/IdentityContext";
|
|
15
|
+
import { TaskDefinitionNotFoundError, TaskLogNotFoundError, TaskNotFoundError } from "../domain/errors.js";
|
|
16
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
17
|
+
import { TaskAfterCreateEvent, TaskAfterDeleteEvent, TaskAfterUpdateEvent, TaskBeforeCreateEvent, TaskBeforeDeleteEvent, TaskBeforeUpdateEvent } from "../events/index.js";
|
|
18
|
+
import { CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
16
19
|
const createRevisionId = id => {
|
|
17
20
|
const {
|
|
18
21
|
id: entryId
|
|
19
|
-
} =
|
|
22
|
+
} = parseIdentifier(id);
|
|
20
23
|
return `${entryId}#0001`;
|
|
21
24
|
};
|
|
22
25
|
const convertToTask = entry => {
|
|
@@ -51,26 +54,24 @@ const convertToLog = entry => {
|
|
|
51
54
|
};
|
|
52
55
|
const getZodSchema = schema => {
|
|
53
56
|
if (!schema) {
|
|
54
|
-
return
|
|
55
|
-
} else if (schema instanceof
|
|
57
|
+
return zod.object({}).passthrough();
|
|
58
|
+
} else if (schema instanceof zod.ZodObject) {
|
|
56
59
|
return schema.passthrough();
|
|
57
|
-
} else if (schema instanceof
|
|
60
|
+
} else if (schema instanceof zod.Schema) {
|
|
58
61
|
return schema;
|
|
59
62
|
}
|
|
60
|
-
return
|
|
63
|
+
return zod.object(schema).passthrough();
|
|
61
64
|
};
|
|
62
65
|
const validateTaskInput = async params => {
|
|
63
66
|
const {
|
|
64
67
|
definition,
|
|
65
|
-
data
|
|
66
|
-
context
|
|
68
|
+
data
|
|
67
69
|
} = params;
|
|
68
70
|
if (!definition.createInputValidation) {
|
|
69
71
|
return;
|
|
70
72
|
}
|
|
71
73
|
const schema = definition.createInputValidation({
|
|
72
|
-
|
|
73
|
-
validator: _zod.default
|
|
74
|
+
validator: zod
|
|
74
75
|
});
|
|
75
76
|
/**
|
|
76
77
|
* If the schema is not an object, we need to wrap it with the `object` function.
|
|
@@ -80,179 +81,284 @@ const validateTaskInput = async params => {
|
|
|
80
81
|
if (result.success) {
|
|
81
82
|
return;
|
|
82
83
|
}
|
|
83
|
-
throw
|
|
84
|
+
throw createZodError(result.error);
|
|
84
85
|
};
|
|
85
|
-
const createTaskCrud = context => {
|
|
86
|
-
const
|
|
87
|
-
const onTaskAfterCreate = (0, _pubsub.createTopic)("tasks.onAfterCreate");
|
|
88
|
-
const onTaskBeforeUpdate = (0, _pubsub.createTopic)("tasks.onBeforeUpdate");
|
|
89
|
-
const onTaskAfterUpdate = (0, _pubsub.createTopic)("tasks.onAfterUpdate");
|
|
90
|
-
const onTaskBeforeDelete = (0, _pubsub.createTopic)("tasks.onBeforeDelete");
|
|
91
|
-
const onTaskAfterDelete = (0, _pubsub.createTopic)("tasks.onAfterDelete");
|
|
86
|
+
export const createTaskCrud = context => {
|
|
87
|
+
const cmsWhereMapper = context.container.resolve(CmsWhereMapper);
|
|
92
88
|
const getTaskModel = async () => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
90
|
+
return await identityContext.withoutAuthorization(async () => {
|
|
91
|
+
const getModel = context.container.resolve(GetModelUseCase);
|
|
92
|
+
const result = await getModel.execute(WEBINY_TASK_MODEL_ID);
|
|
93
|
+
if (result.isFail()) {
|
|
94
|
+
throw new WebinyError(`There is no model "${WEBINY_TASK_MODEL_ID}".`);
|
|
97
95
|
}
|
|
98
|
-
|
|
96
|
+
return result.value;
|
|
99
97
|
});
|
|
100
98
|
};
|
|
101
99
|
const getLogModel = async () => {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
101
|
+
return await identityContext.withoutAuthorization(async () => {
|
|
102
|
+
const getModel = context.container.resolve(GetModelUseCase);
|
|
103
|
+
const result = await getModel.execute(WEBINY_TASK_LOG_MODEL_ID);
|
|
104
|
+
if (result.isFail()) {
|
|
105
|
+
throw new WebinyError(`There is no model "${WEBINY_TASK_LOG_MODEL_ID}".`);
|
|
106
106
|
}
|
|
107
|
-
|
|
107
|
+
return result.value;
|
|
108
108
|
});
|
|
109
109
|
};
|
|
110
110
|
const getTask = async id => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
} catch (ex) {
|
|
118
|
-
if (ex instanceof _handlerGraphql.NotFoundError) {
|
|
111
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
112
|
+
const entry = await identityContext.withoutAuthorization(async () => {
|
|
113
|
+
const model = await getTaskModel();
|
|
114
|
+
const getEntryById = context.container.resolve(GetEntryByIdUseCase);
|
|
115
|
+
const result = await getEntryById.execute(model, createRevisionId(id));
|
|
116
|
+
if (result.isFail()) {
|
|
119
117
|
return null;
|
|
120
118
|
}
|
|
121
|
-
|
|
122
|
-
}
|
|
119
|
+
return result.value;
|
|
120
|
+
});
|
|
123
121
|
if (!entry) {
|
|
124
122
|
return null;
|
|
125
123
|
}
|
|
126
124
|
return convertToTask(entry);
|
|
127
125
|
};
|
|
128
126
|
const listTasks = async params => {
|
|
129
|
-
const
|
|
127
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
128
|
+
const {
|
|
129
|
+
entries,
|
|
130
|
+
meta
|
|
131
|
+
} = await identityContext.withoutAuthorization(async () => {
|
|
130
132
|
const model = await getTaskModel();
|
|
131
|
-
|
|
133
|
+
const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
|
|
134
|
+
const result = await listLatestEntries.execute(model, {
|
|
132
135
|
...params,
|
|
133
|
-
where:
|
|
136
|
+
where: cmsWhereMapper.map({
|
|
137
|
+
input: params?.where,
|
|
138
|
+
fields: model.fields
|
|
139
|
+
})
|
|
134
140
|
});
|
|
141
|
+
if (result.isFail()) {
|
|
142
|
+
throw result.error;
|
|
143
|
+
}
|
|
144
|
+
return result.value;
|
|
135
145
|
});
|
|
136
146
|
return {
|
|
137
|
-
items:
|
|
147
|
+
items: entries.map(item => convertToTask(item)),
|
|
138
148
|
meta
|
|
139
149
|
};
|
|
140
150
|
};
|
|
141
151
|
const createTask = async data => {
|
|
142
152
|
const definition = context.tasks.getDefinition(data.definitionId);
|
|
143
153
|
if (!definition) {
|
|
144
|
-
throw new
|
|
145
|
-
id: data.definitionId
|
|
146
|
-
});
|
|
154
|
+
throw new TaskDefinitionNotFoundError(data.definitionId);
|
|
147
155
|
}
|
|
148
156
|
await validateTaskInput({
|
|
149
157
|
context,
|
|
150
158
|
definition,
|
|
151
159
|
data
|
|
152
160
|
});
|
|
153
|
-
const
|
|
161
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
162
|
+
const eventPublisher = context.container.resolve(EventPublisher);
|
|
163
|
+
const beforeCreateEvent = new TaskBeforeCreateEvent({
|
|
164
|
+
input: data
|
|
165
|
+
});
|
|
166
|
+
await eventPublisher.publish(beforeCreateEvent);
|
|
167
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
154
168
|
const model = await getTaskModel();
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
169
|
+
const createEntry = context.container.resolve(CreateEntryUseCase);
|
|
170
|
+
return createEntry.execute(model, {
|
|
171
|
+
values: {
|
|
172
|
+
...data,
|
|
173
|
+
iterations: 0,
|
|
174
|
+
taskStatus: TaskDataStatus.PENDING
|
|
175
|
+
}
|
|
159
176
|
});
|
|
160
177
|
});
|
|
161
|
-
|
|
178
|
+
if (result.isFail()) {
|
|
179
|
+
throw result.error;
|
|
180
|
+
}
|
|
181
|
+
const task = convertToTask(result.value);
|
|
182
|
+
const afterCreateEvent = new TaskAfterCreateEvent({
|
|
183
|
+
input: data,
|
|
184
|
+
task
|
|
185
|
+
});
|
|
186
|
+
await eventPublisher.publish(afterCreateEvent);
|
|
187
|
+
return task;
|
|
162
188
|
};
|
|
163
189
|
const updateTask = async (id, data) => {
|
|
164
|
-
const
|
|
190
|
+
const original = await getTask(id);
|
|
191
|
+
if (!original) {
|
|
192
|
+
throw new TaskNotFoundError();
|
|
193
|
+
}
|
|
194
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
195
|
+
const eventPublisher = context.container.resolve(EventPublisher);
|
|
196
|
+
const beforeUpdateEvent = new TaskBeforeUpdateEvent({
|
|
197
|
+
input: data,
|
|
198
|
+
original
|
|
199
|
+
});
|
|
200
|
+
await eventPublisher.publish(beforeUpdateEvent);
|
|
201
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
165
202
|
const model = await getTaskModel();
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
203
|
+
const updateEntry = context.container.resolve(UpdateEntryUseCase);
|
|
204
|
+
return updateEntry.execute(model, createRevisionId(id), {
|
|
205
|
+
values: {
|
|
206
|
+
...data
|
|
207
|
+
}
|
|
169
208
|
});
|
|
170
209
|
});
|
|
171
|
-
|
|
210
|
+
if (result.isFail()) {
|
|
211
|
+
throw result.error;
|
|
212
|
+
}
|
|
213
|
+
const task = convertToTask(result.value);
|
|
214
|
+
const afterUpdateEvent = new TaskAfterUpdateEvent({
|
|
215
|
+
input: data,
|
|
216
|
+
task
|
|
217
|
+
});
|
|
218
|
+
await eventPublisher.publish(afterUpdateEvent);
|
|
219
|
+
return task;
|
|
172
220
|
};
|
|
173
221
|
const deleteTask = async id => {
|
|
174
|
-
|
|
222
|
+
const task = await getTask(id);
|
|
223
|
+
if (!task) {
|
|
224
|
+
throw new TaskNotFoundError();
|
|
225
|
+
}
|
|
226
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
227
|
+
const eventPublisher = context.container.resolve(EventPublisher);
|
|
228
|
+
const beforeDeleteEvent = new TaskBeforeDeleteEvent({
|
|
229
|
+
task
|
|
230
|
+
});
|
|
231
|
+
await eventPublisher.publish(beforeDeleteEvent);
|
|
232
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
175
233
|
const model = await getTaskModel();
|
|
176
|
-
|
|
177
|
-
return
|
|
234
|
+
const deleteEntry = context.container.resolve(DeleteEntryUseCase);
|
|
235
|
+
return deleteEntry.execute(model, createRevisionId(id));
|
|
178
236
|
});
|
|
237
|
+
if (result.isFail()) {
|
|
238
|
+
throw new TaskNotFoundError();
|
|
239
|
+
}
|
|
240
|
+
const afterDeleteEvent = new TaskAfterDeleteEvent({
|
|
241
|
+
task
|
|
242
|
+
});
|
|
243
|
+
await eventPublisher.publish(afterDeleteEvent);
|
|
244
|
+
return true;
|
|
179
245
|
};
|
|
180
246
|
const createLog = async (task, data) => {
|
|
181
|
-
const
|
|
247
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
248
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
182
249
|
const model = await getLogModel();
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
250
|
+
const createEntry = context.container.resolve(CreateEntryUseCase);
|
|
251
|
+
return createEntry.execute(model, {
|
|
252
|
+
values: {
|
|
253
|
+
...data,
|
|
254
|
+
task: task.id
|
|
255
|
+
}
|
|
186
256
|
});
|
|
187
257
|
});
|
|
188
|
-
|
|
258
|
+
if (result.isFail()) {
|
|
259
|
+
throw result.error;
|
|
260
|
+
}
|
|
261
|
+
return convertToLog(result.value);
|
|
189
262
|
};
|
|
190
263
|
const updateLog = async (id, data) => {
|
|
191
|
-
const
|
|
264
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
265
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
192
266
|
const model = await getLogModel();
|
|
193
|
-
|
|
267
|
+
const updateEntry = context.container.resolve(UpdateEntryUseCase);
|
|
268
|
+
return updateEntry.execute(model, createRevisionId(id), {
|
|
269
|
+
values: data
|
|
270
|
+
});
|
|
194
271
|
});
|
|
195
|
-
|
|
272
|
+
if (result.isFail()) {
|
|
273
|
+
throw new TaskLogNotFoundError();
|
|
274
|
+
}
|
|
275
|
+
return convertToLog(result.value);
|
|
196
276
|
};
|
|
197
277
|
const deleteLog = async id => {
|
|
198
|
-
|
|
278
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
279
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
199
280
|
const model = await getLogModel();
|
|
200
|
-
|
|
201
|
-
return
|
|
281
|
+
const deleteEntry = context.container.resolve(DeleteEntryUseCase);
|
|
282
|
+
return deleteEntry.execute(model, id);
|
|
202
283
|
});
|
|
284
|
+
if (result.isFail()) {
|
|
285
|
+
throw new TaskLogNotFoundError();
|
|
286
|
+
}
|
|
287
|
+
return true;
|
|
203
288
|
};
|
|
204
289
|
const getLog = async id => {
|
|
290
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
205
291
|
try {
|
|
206
|
-
const
|
|
292
|
+
const result = await identityContext.withoutAuthorization(async () => {
|
|
207
293
|
const model = await getLogModel();
|
|
208
|
-
|
|
294
|
+
const getEntryById = context.container.resolve(GetEntryByIdUseCase);
|
|
295
|
+
return getEntryById.execute(model, id);
|
|
209
296
|
});
|
|
210
|
-
|
|
297
|
+
if (result.isFail()) {
|
|
298
|
+
throw result.error;
|
|
299
|
+
}
|
|
300
|
+
return convertToLog(result.value);
|
|
211
301
|
} catch (ex) {
|
|
212
|
-
if (ex instanceof
|
|
302
|
+
if (ex instanceof NotFoundError) {
|
|
213
303
|
return null;
|
|
214
304
|
}
|
|
215
305
|
throw ex;
|
|
216
306
|
}
|
|
217
307
|
};
|
|
218
308
|
const getLatestLog = async taskId => {
|
|
219
|
-
const
|
|
309
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
310
|
+
const entry = await identityContext.withoutAuthorization(async () => {
|
|
220
311
|
const model = await getLogModel();
|
|
221
|
-
const
|
|
312
|
+
const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
|
|
313
|
+
const result = await listLatestEntries.execute(model, {
|
|
222
314
|
where: {
|
|
223
|
-
|
|
315
|
+
values: {
|
|
316
|
+
task: taskId
|
|
317
|
+
}
|
|
224
318
|
},
|
|
225
319
|
sort: ["createdOn_DESC"],
|
|
226
320
|
limit: 1
|
|
227
321
|
});
|
|
228
|
-
|
|
322
|
+
if (result.isFail()) {
|
|
323
|
+
throw result.error;
|
|
324
|
+
}
|
|
325
|
+
const {
|
|
326
|
+
entries
|
|
327
|
+
} = result.value;
|
|
328
|
+
const [item] = entries;
|
|
229
329
|
if (!item) {
|
|
230
|
-
throw new
|
|
330
|
+
throw new NotFoundError(`No existing latest log found for task "${taskId}".`);
|
|
231
331
|
}
|
|
232
332
|
return item;
|
|
233
333
|
});
|
|
234
334
|
return convertToLog(entry);
|
|
235
335
|
};
|
|
236
336
|
const listLogs = async params => {
|
|
237
|
-
const
|
|
337
|
+
const identityContext = context.container.resolve(IdentityContext);
|
|
338
|
+
const {
|
|
339
|
+
entries,
|
|
340
|
+
meta
|
|
341
|
+
} = await identityContext.withoutAuthorization(async () => {
|
|
238
342
|
const model = await getLogModel();
|
|
239
|
-
|
|
343
|
+
const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
|
|
344
|
+
const result = await listLatestEntries.execute(model, {
|
|
240
345
|
...params,
|
|
241
|
-
where:
|
|
346
|
+
where: cmsWhereMapper.map({
|
|
347
|
+
input: params.where,
|
|
348
|
+
fields: model.fields
|
|
349
|
+
})
|
|
242
350
|
});
|
|
351
|
+
if (result.isFail()) {
|
|
352
|
+
throw result.error;
|
|
353
|
+
}
|
|
354
|
+
return result.value;
|
|
243
355
|
});
|
|
244
356
|
return {
|
|
245
|
-
items:
|
|
357
|
+
items: entries.map(item => convertToLog(item)),
|
|
246
358
|
meta
|
|
247
359
|
};
|
|
248
360
|
};
|
|
249
361
|
return {
|
|
250
|
-
onTaskBeforeCreate,
|
|
251
|
-
onTaskAfterCreate,
|
|
252
|
-
onTaskBeforeUpdate,
|
|
253
|
-
onTaskAfterUpdate,
|
|
254
|
-
onTaskBeforeDelete,
|
|
255
|
-
onTaskAfterDelete,
|
|
256
362
|
getTask,
|
|
257
363
|
listTasks,
|
|
258
364
|
createTask,
|
|
@@ -268,6 +374,5 @@ const createTaskCrud = context => {
|
|
|
268
374
|
getLogModel
|
|
269
375
|
};
|
|
270
376
|
};
|
|
271
|
-
exports.createTaskCrud = createTaskCrud;
|
|
272
377
|
|
|
273
378
|
//# sourceMappingURL=crud.tasks.js.map
|
package/crud/crud.tasks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_types","_model","_handlerGraphql","_pubsub","_where","_utils","_zod","createRevisionId","id","entryId","parseIdentifier","convertToTask","entry","createdOn","savedOn","createdBy","name","values","definitionId","input","output","taskStatus","executionName","eventResponse","startedOn","finishedOn","iterations","parentId","convertToLog","task","iteration","items","getZodSchema","schema","zod","object","passthrough","ZodObject","Schema","validateTaskInput","params","definition","data","context","createInputValidation","validator","validate","result","safeParseAsync","success","createZodError","error","createTaskCrud","onTaskBeforeCreate","createTopic","onTaskAfterCreate","onTaskBeforeUpdate","onTaskAfterUpdate","onTaskBeforeDelete","onTaskAfterDelete","getTaskModel","security","withoutAuthorization","model","cms","getModel","WEBINY_TASK_MODEL_ID","WebinyError","getLogModel","WEBINY_TASK_LOG_MODEL_ID","getTask","getEntryById","ex","NotFoundError","listTasks","meta","listLatestEntries","where","remapWhere","map","item","createTask","tasks","getDefinition","createEntry","TaskDataStatus","PENDING","updateTask","updateEntry","Date","toISOString","deleteTask","deleteEntry","createLog","updateLog","deleteLog","getLog","getLatestLog","taskId","sort","limit","listLogs","exports"],"sources":["crud.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITask,\n ITaskCreateData,\n ITaskDataInput,\n ITaskDefinition,\n ITaskLog,\n ITaskLogCreateInput,\n ITaskLogUpdateInput,\n ITaskResponseDoneResultOutput,\n ITasksContextCrudObject,\n ITaskUpdateData,\n OnTaskAfterCreateTopicParams,\n OnTaskAfterDeleteTopicParams,\n OnTaskAfterUpdateTopicParams,\n OnTaskBeforeCreateTopicParams,\n OnTaskBeforeDeleteTopicParams,\n OnTaskBeforeUpdateTopicParams\n} from \"~/types\";\nimport { TaskDataStatus } from \"~/types\";\nimport { WEBINY_TASK_LOG_MODEL_ID, WEBINY_TASK_MODEL_ID } from \"./model\";\nimport type { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { remapWhere } from \"./where\";\nimport { createZodError, parseIdentifier } from \"@webiny/utils\";\nimport zod from \"zod\";\nimport type { GenericRecord } from \"@webiny/api/types\";\n\nconst createRevisionId = (id: string) => {\n const { id: entryId } = parseIdentifier(id);\n return `${entryId}#0001`;\n};\n\nconst convertToTask = <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n>(\n entry: CmsEntry<ITask<T, O>>\n): ITask<T, O> => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n name: entry.values.name,\n definitionId: entry.values.definitionId,\n input: entry.values.input,\n output: entry.values.output,\n taskStatus: entry.values.taskStatus,\n executionName: entry.values.executionName || \"\",\n eventResponse: entry.values.eventResponse,\n startedOn: entry.values.startedOn,\n finishedOn: entry.values.finishedOn,\n iterations: entry.values.iterations,\n parentId: entry.values.parentId\n };\n};\n\nconst convertToLog = (entry: CmsEntry<ITaskLog>): ITaskLog => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n executionName: entry.values.executionName,\n task: entry.values.task,\n iteration: entry.values.iteration,\n items: entry.values.items || []\n };\n};\n\ninterface IValidateParams {\n definition: Pick<ITaskDefinition, \"createInputValidation\">;\n data: Pick<ITaskCreateData, \"input\">;\n context: Context;\n}\n\nconst getZodSchema = (schema: GenericRecord<string, zod.Schema> | zod.Schema) => {\n if (!schema) {\n return zod.object({}).passthrough();\n } else if (schema instanceof zod.ZodObject) {\n return schema.passthrough();\n } else if (schema instanceof zod.Schema) {\n return schema;\n }\n return zod.object(schema).passthrough();\n};\n\nconst validateTaskInput = async (params: IValidateParams) => {\n const { definition, data, context } = params;\n if (!definition.createInputValidation) {\n return;\n }\n const schema = definition.createInputValidation({\n context,\n validator: zod\n });\n /**\n * If the schema is not an object, we need to wrap it with the `object` function.\n */\n const validate = getZodSchema(schema);\n\n const result = await validate.safeParseAsync(data.input);\n if (result.success) {\n return;\n }\n throw createZodError(result.error);\n};\n\nexport const createTaskCrud = (context: Context): ITasksContextCrudObject => {\n const onTaskBeforeCreate = createTopic<OnTaskBeforeCreateTopicParams>(\"tasks.onBeforeCreate\");\n const onTaskAfterCreate = createTopic<OnTaskAfterCreateTopicParams>(\"tasks.onAfterCreate\");\n const onTaskBeforeUpdate = createTopic<OnTaskBeforeUpdateTopicParams>(\"tasks.onBeforeUpdate\");\n const onTaskAfterUpdate = createTopic<OnTaskAfterUpdateTopicParams>(\"tasks.onAfterUpdate\");\n const onTaskBeforeDelete = createTopic<OnTaskBeforeDeleteTopicParams>(\"tasks.onBeforeDelete\");\n const onTaskAfterDelete = createTopic<OnTaskAfterDeleteTopicParams>(\"tasks.onAfterDelete\");\n\n const getTaskModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_MODEL_ID}\".`);\n });\n };\n\n const getLogModel = async (): Promise<CmsModel> => {\n return await context.security.withoutAuthorization(async () => {\n const model = await context.cms.getModel(WEBINY_TASK_LOG_MODEL_ID);\n if (model) {\n return model;\n }\n throw new WebinyError(`There is no model \"${WEBINY_TASK_LOG_MODEL_ID}\".`);\n });\n };\n\n const getTask = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string\n ) => {\n let entry: CmsEntry;\n try {\n entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.getEntryById(model, createRevisionId(id));\n });\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n\n if (!entry) {\n return null;\n }\n\n return convertToTask(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const listTasks = async <\n T = any,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n params?: IListTaskParams\n ) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.listLatestEntries<ITask<T, O>>(model, {\n ...params,\n where: remapWhere(params?.where)\n });\n });\n\n return {\n items: items.map(item => convertToTask<T, O>(item)),\n meta\n };\n };\n\n const createTask = async (data: ITaskCreateData) => {\n const definition = context.tasks.getDefinition(data.definitionId);\n if (!definition) {\n throw new WebinyError(`There is no task definition.`, \"TASK_DEFINITION_ERROR\", {\n id: data.definitionId\n });\n }\n\n await validateTaskInput({\n context,\n definition,\n data\n });\n\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.createEntry(model, {\n ...data,\n iterations: 0,\n taskStatus: TaskDataStatus.PENDING\n });\n });\n\n return convertToTask(entry as unknown as CmsEntry<ITask>);\n };\n\n const updateTask = async <\n T = ITaskDataInput,\n O extends ITaskResponseDoneResultOutput = ITaskResponseDoneResultOutput\n >(\n id: string,\n data: ITaskUpdateData<T, O>\n ) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n return await context.cms.updateEntry(model, createRevisionId(id), {\n ...data,\n savedOn: new Date().toISOString()\n });\n });\n return convertToTask<T, O>(entry as unknown as CmsEntry<ITask<T, O>>);\n };\n\n const deleteTask = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getTaskModel();\n await context.cms.deleteEntry(model, createRevisionId(id));\n return true;\n });\n };\n\n const createLog = async (task: Pick<ITask, \"id\">, data: ITaskLogCreateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.createEntry(model, {\n ...data,\n task: task.id\n });\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const updateLog = async (id: string, data: ITaskLogUpdateInput) => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n\n return await context.cms.updateEntry(model, createRevisionId(id), data);\n });\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const deleteLog = async (id: string) => {\n return context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n await context.cms.deleteEntry(model, id);\n return true;\n });\n };\n\n const getLog = async (id: string): Promise<ITaskLog | null> => {\n try {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.getEntryById(model, id);\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n };\n\n const getLatestLog = async (taskId: string): Promise<ITaskLog> => {\n const entry = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n const [items] = await context.cms.listLatestEntries<ITaskLog>(model, {\n where: {\n task: taskId\n },\n sort: [\"createdOn_DESC\"],\n limit: 1\n });\n const [item] = items;\n if (!item) {\n throw new NotFoundError(`No existing latest log found for task \"${taskId}\".`);\n }\n return item;\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const listLogs = async (params: IListTaskLogParams) => {\n const [items, meta] = await context.security.withoutAuthorization(async () => {\n const model = await getLogModel();\n return await context.cms.listLatestEntries<ITaskLog>(model, {\n ...params,\n where: remapWhere(params.where)\n });\n });\n\n return {\n items: items.map(item => convertToLog(item)),\n meta\n };\n };\n\n return {\n onTaskBeforeCreate,\n onTaskAfterCreate,\n onTaskBeforeUpdate,\n onTaskAfterUpdate,\n onTaskBeforeDelete,\n onTaskAfterDelete,\n getTask,\n listTasks,\n createTask,\n updateTask,\n deleteTask,\n createLog,\n updateLog,\n deleteLog,\n getLog,\n listLogs,\n getLatestLog,\n getTaskModel,\n getLogModel\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["WebinyError","TaskDataStatus","WEBINY_TASK_MODEL_ID","WEBINY_TASK_LOG_MODEL_ID","NotFoundError","createZodError","parseIdentifier","zod","GetModelUseCase","GetEntryByIdUseCase","ListLatestEntriesUseCase","CreateEntryUseCase","UpdateEntryUseCase","DeleteEntryUseCase","IdentityContext","TaskDefinitionNotFoundError","TaskLogNotFoundError","TaskNotFoundError","EventPublisher","TaskAfterCreateEvent","TaskAfterDeleteEvent","TaskAfterUpdateEvent","TaskBeforeCreateEvent","TaskBeforeDeleteEvent","TaskBeforeUpdateEvent","CmsWhereMapper","createRevisionId","id","entryId","convertToTask","entry","createdOn","savedOn","createdBy","name","values","definitionId","input","output","taskStatus","executionName","eventResponse","startedOn","finishedOn","iterations","parentId","convertToLog","task","iteration","items","getZodSchema","schema","object","passthrough","ZodObject","Schema","validateTaskInput","params","definition","data","createInputValidation","validator","validate","result","safeParseAsync","success","error","createTaskCrud","context","cmsWhereMapper","container","resolve","getTaskModel","identityContext","withoutAuthorization","getModel","execute","isFail","value","getLogModel","getTask","model","getEntryById","listTasks","entries","meta","listLatestEntries","where","map","fields","item","createTask","tasks","getDefinition","eventPublisher","beforeCreateEvent","publish","createEntry","PENDING","afterCreateEvent","updateTask","original","beforeUpdateEvent","updateEntry","afterUpdateEvent","deleteTask","beforeDeleteEvent","deleteEntry","afterDeleteEvent","createLog","updateLog","deleteLog","getLog","ex","getLatestLog","taskId","sort","limit","listLogs"],"sources":["crud.tasks.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport type {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITaskCreateData,\n ITaskLog,\n ITaskLogCreateInput,\n ITaskLogUpdateInput,\n ITasksContextCrudObject,\n ITaskUpdateData\n} from \"~/types.js\";\nimport { TaskDataStatus } from \"~/types.js\";\nimport { WEBINY_TASK_MODEL_ID } from \"./TaskPrivateModel.js\";\nimport { WEBINY_TASK_LOG_MODEL_ID } from \"./TaskLogPrivateModel.js\";\nimport type { CmsEntry, CmsModel } from \"@webiny/api-headless-cms/types/index.js\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { createZodError, parseIdentifier } from \"@webiny/utils\";\nimport zod from \"zod\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { GetModelUseCase } from \"@webiny/api-headless-cms/features/contentModel/GetModel\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry\";\nimport { IdentityContext } from \"@webiny/api-core/features/IdentityContext\";\nimport {\n TaskDefinitionNotFoundError,\n TaskLogNotFoundError,\n TaskNotFoundError\n} from \"~/domain/errors.js\";\nimport { TaskService } from \"@webiny/api-core/features/task/TaskService/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { EventPublisher } from \"@webiny/api-core/features/EventPublisher\";\nimport {\n TaskAfterCreateEvent,\n TaskAfterDeleteEvent,\n TaskAfterUpdateEvent,\n TaskBeforeCreateEvent,\n TaskBeforeDeleteEvent,\n TaskBeforeUpdateEvent\n} from \"~/events/index.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nconst createRevisionId = (id: string) => {\n const { id: entryId } = parseIdentifier(id);\n return `${entryId}#0001`;\n};\n\nconst convertToTask = <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n>(\n entry: CmsEntry<TaskService.Task<T, O>>\n): TaskService.Task<T, O> => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n name: entry.values.name,\n definitionId: entry.values.definitionId,\n input: entry.values.input,\n output: entry.values.output,\n taskStatus: entry.values.taskStatus,\n executionName: entry.values.executionName || \"\",\n eventResponse: entry.values.eventResponse,\n startedOn: entry.values.startedOn,\n finishedOn: entry.values.finishedOn,\n iterations: entry.values.iterations,\n parentId: entry.values.parentId\n };\n};\n\nconst convertToLog = (entry: CmsEntry<ITaskLog>): ITaskLog => {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n createdBy: entry.createdBy,\n executionName: entry.values.executionName,\n task: entry.values.task,\n iteration: entry.values.iteration,\n items: entry.values.items || []\n };\n};\n\ninterface IValidateParams {\n definition: Pick<TaskDefinition.Interface, \"createInputValidation\">;\n data: Pick<ITaskCreateData, \"input\">;\n context: Context;\n}\n\nconst getZodSchema = (schema: GenericRecord<string, zod.Schema> | zod.Schema) => {\n if (!schema) {\n return zod.object({}).passthrough();\n } else if (schema instanceof zod.ZodObject) {\n return schema.passthrough();\n } else if (schema instanceof zod.Schema) {\n return schema;\n }\n return zod.object(schema).passthrough();\n};\n\nconst validateTaskInput = async (params: IValidateParams) => {\n const { definition, data } = params;\n if (!definition.createInputValidation) {\n return;\n }\n const schema = definition.createInputValidation({\n validator: zod\n });\n /**\n * If the schema is not an object, we need to wrap it with the `object` function.\n */\n const validate = getZodSchema(schema);\n\n const result = await validate.safeParseAsync(data.input);\n if (result.success) {\n return;\n }\n throw createZodError(result.error);\n};\n\nexport const createTaskCrud = (context: Context): ITasksContextCrudObject => {\n const cmsWhereMapper = context.container.resolve(CmsWhereMapper);\n\n const getTaskModel = async (): Promise<CmsModel> => {\n const identityContext = context.container.resolve(IdentityContext);\n return await identityContext.withoutAuthorization(async () => {\n const getModel = context.container.resolve(GetModelUseCase);\n const result = await getModel.execute(WEBINY_TASK_MODEL_ID);\n if (result.isFail()) {\n throw new WebinyError(`There is no model \"${WEBINY_TASK_MODEL_ID}\".`);\n }\n return result.value;\n });\n };\n\n const getLogModel = async (): Promise<CmsModel> => {\n const identityContext = context.container.resolve(IdentityContext);\n return await identityContext.withoutAuthorization(async () => {\n const getModel = context.container.resolve(GetModelUseCase);\n const result = await getModel.execute(WEBINY_TASK_LOG_MODEL_ID);\n if (result.isFail()) {\n throw new WebinyError(`There is no model \"${WEBINY_TASK_LOG_MODEL_ID}\".`);\n }\n return result.value;\n });\n };\n\n const getTask = async <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string\n ) => {\n const identityContext = context.container.resolve(IdentityContext);\n\n const entry = await identityContext.withoutAuthorization(async () => {\n const model = await getTaskModel();\n const getEntryById = context.container.resolve(GetEntryByIdUseCase);\n const result = await getEntryById.execute(model, createRevisionId(id));\n if (result.isFail()) {\n return null;\n }\n return result.value;\n });\n\n if (!entry) {\n return null;\n }\n\n return convertToTask(entry as unknown as CmsEntry<TaskService.Task<T, O>>);\n };\n\n const listTasks = async <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n params?: IListTaskParams\n ) => {\n const identityContext = context.container.resolve(IdentityContext);\n const { entries, meta } = await identityContext.withoutAuthorization(async () => {\n const model = await getTaskModel();\n const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);\n const result = await listLatestEntries.execute<TaskService.Task<T, O>>(model, {\n ...params,\n where: cmsWhereMapper.map({\n input: params?.where,\n fields: model.fields\n })\n });\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n\n return {\n items: entries.map(item => convertToTask<T, O>(item)),\n meta\n };\n };\n\n const createTask = async (data: ITaskCreateData) => {\n const definition = context.tasks.getDefinition(data.definitionId);\n if (!definition) {\n throw new TaskDefinitionNotFoundError(data.definitionId);\n }\n\n await validateTaskInput({\n context,\n definition,\n data\n });\n\n const identityContext = context.container.resolve(IdentityContext);\n const eventPublisher = context.container.resolve(EventPublisher);\n\n const beforeCreateEvent = new TaskBeforeCreateEvent({\n input: data\n });\n await eventPublisher.publish(beforeCreateEvent);\n\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getTaskModel();\n const createEntry = context.container.resolve(CreateEntryUseCase);\n return createEntry.execute(model, {\n values: {\n ...data,\n iterations: 0,\n taskStatus: TaskDataStatus.PENDING\n }\n });\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n const task = convertToTask(result.value as unknown as CmsEntry<TaskService.Task>);\n\n const afterCreateEvent = new TaskAfterCreateEvent({\n input: data,\n task\n });\n await eventPublisher.publish(afterCreateEvent);\n\n return task;\n };\n\n const updateTask = async <\n T extends TaskService.TaskInput = TaskService.TaskInput,\n O extends TaskService.GenericOutput = TaskService.GenericOutput\n >(\n id: string,\n data: ITaskUpdateData<T, O>\n ) => {\n const original = await getTask<T, O>(id);\n if (!original) {\n throw new TaskNotFoundError();\n }\n\n const identityContext = context.container.resolve(IdentityContext);\n const eventPublisher = context.container.resolve(EventPublisher);\n\n const beforeUpdateEvent = new TaskBeforeUpdateEvent({\n input: data,\n original\n });\n await eventPublisher.publish(beforeUpdateEvent);\n\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getTaskModel();\n const updateEntry = context.container.resolve(UpdateEntryUseCase);\n return updateEntry.execute(model, createRevisionId(id), {\n values: {\n ...data\n }\n });\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n const task = convertToTask<T, O>(\n result.value as unknown as CmsEntry<TaskService.Task<T, O>>\n );\n\n const afterUpdateEvent = new TaskAfterUpdateEvent({\n input: data,\n task\n });\n await eventPublisher.publish(afterUpdateEvent);\n\n return task;\n };\n\n const deleteTask = async (id: string) => {\n const task = await getTask(id);\n if (!task) {\n throw new TaskNotFoundError();\n }\n\n const identityContext = context.container.resolve(IdentityContext);\n const eventPublisher = context.container.resolve(EventPublisher);\n\n const beforeDeleteEvent = new TaskBeforeDeleteEvent({\n task\n });\n await eventPublisher.publish(beforeDeleteEvent);\n\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getTaskModel();\n const deleteEntry = context.container.resolve(DeleteEntryUseCase);\n return deleteEntry.execute(model, createRevisionId(id));\n });\n\n if (result.isFail()) {\n throw new TaskNotFoundError();\n }\n\n const afterDeleteEvent = new TaskAfterDeleteEvent({ task });\n await eventPublisher.publish(afterDeleteEvent);\n\n return true;\n };\n\n const createLog = async (task: Pick<TaskService.Task, \"id\">, data: ITaskLogCreateInput) => {\n const identityContext = context.container.resolve(IdentityContext);\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const createEntry = context.container.resolve(CreateEntryUseCase);\n return createEntry.execute(model, {\n values: {\n ...data,\n task: task.id\n }\n });\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n return convertToLog(result.value as unknown as CmsEntry<ITaskLog>);\n };\n\n const updateLog = async (id: string, data: ITaskLogUpdateInput) => {\n const identityContext = context.container.resolve(IdentityContext);\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const updateEntry = context.container.resolve(UpdateEntryUseCase);\n return updateEntry.execute(model, createRevisionId(id), {\n values: data\n });\n });\n\n if (result.isFail()) {\n throw new TaskLogNotFoundError();\n }\n\n return convertToLog(result.value as unknown as CmsEntry<ITaskLog>);\n };\n\n const deleteLog = async (id: string) => {\n const identityContext = context.container.resolve(IdentityContext);\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const deleteEntry = context.container.resolve(DeleteEntryUseCase);\n return deleteEntry.execute(model, id);\n });\n\n if (result.isFail()) {\n throw new TaskLogNotFoundError();\n }\n\n return true;\n };\n\n const getLog = async (id: string): Promise<ITaskLog | null> => {\n const identityContext = context.container.resolve(IdentityContext);\n try {\n const result = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const getEntryById = context.container.resolve(GetEntryByIdUseCase);\n return getEntryById.execute(model, id);\n });\n\n if (result.isFail()) {\n throw result.error;\n }\n\n return convertToLog(result.value as unknown as CmsEntry<ITaskLog>);\n } catch (ex) {\n if (ex instanceof NotFoundError) {\n return null;\n }\n throw ex;\n }\n };\n\n const getLatestLog = async (taskId: string): Promise<ITaskLog> => {\n const identityContext = context.container.resolve(IdentityContext);\n const entry = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);\n const result = await listLatestEntries.execute<ITaskLog>(model, {\n where: {\n values: {\n task: taskId\n }\n },\n sort: [\"createdOn_DESC\"],\n limit: 1\n });\n if (result.isFail()) {\n throw result.error;\n }\n const { entries } = result.value;\n const [item] = entries;\n if (!item) {\n throw new NotFoundError(`No existing latest log found for task \"${taskId}\".`);\n }\n return item;\n });\n\n return convertToLog(entry as unknown as CmsEntry<ITaskLog>);\n };\n\n const listLogs = async (params: IListTaskLogParams) => {\n const identityContext = context.container.resolve(IdentityContext);\n const { entries, meta } = await identityContext.withoutAuthorization(async () => {\n const model = await getLogModel();\n const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);\n const result = await listLatestEntries.execute<ITaskLog>(model, {\n ...params,\n where: cmsWhereMapper.map({\n input: params.where,\n fields: model.fields\n })\n });\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n });\n\n return {\n items: entries.map(item => convertToLog(item)),\n meta\n };\n };\n\n return {\n getTask,\n listTasks,\n createTask,\n updateTask,\n deleteTask,\n createLog,\n updateLog,\n deleteLog,\n getLog,\n listLogs,\n getLatestLog,\n getTaskModel,\n getLogModel\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context, ITasksContextDefinitionObject } from "../types";
|
|
1
|
+
import type { Context, ITasksContextDefinitionObject } from "../types.js";
|
|
2
2
|
export declare const createDefinitionCrud: (context: Context) => ITasksContextDefinitionObject;
|
package/crud/definition.tasks.js
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.createDefinitionCrud = void 0;
|
|
7
|
-
var _task = require("../task");
|
|
8
|
-
const getTaskDefinitionPlugins = context => {
|
|
9
|
-
return context.plugins.byType(_task.TaskDefinitionPlugin.type);
|
|
10
|
-
};
|
|
11
|
-
const createDefinitionCrud = context => {
|
|
1
|
+
import { GetTaskDefinitionUseCase } from "../features/GetTaskDefinition/index.js";
|
|
2
|
+
import { ListTaskDefinitionsUseCase } from "../features/ListTaskDefinitions/index.js";
|
|
3
|
+
export const createDefinitionCrud = context => {
|
|
12
4
|
return {
|
|
13
5
|
getDefinition: id => {
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
6
|
+
const useCase = context.container.resolve(GetTaskDefinitionUseCase);
|
|
7
|
+
const result = useCase.execute(id);
|
|
8
|
+
if (result.isOk()) {
|
|
9
|
+
return result.value;
|
|
19
10
|
}
|
|
20
11
|
return null;
|
|
21
12
|
},
|
|
22
13
|
listDefinitions: () => {
|
|
23
|
-
|
|
14
|
+
const useCase = context.container.resolve(ListTaskDefinitionsUseCase);
|
|
15
|
+
return useCase.execute();
|
|
24
16
|
}
|
|
25
17
|
};
|
|
26
18
|
};
|
|
27
|
-
exports.createDefinitionCrud = createDefinitionCrud;
|
|
28
19
|
|
|
29
20
|
//# sourceMappingURL=definition.tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["GetTaskDefinitionUseCase","ListTaskDefinitionsUseCase","createDefinitionCrud","context","getDefinition","id","useCase","container","resolve","result","execute","isOk","value","listDefinitions"],"sources":["definition.tasks.ts"],"sourcesContent":["import type { Context, ITasksContextDefinitionObject } from \"~/types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\nimport { GetTaskDefinitionUseCase } from \"~/features/GetTaskDefinition/index.js\";\nimport { ListTaskDefinitionsUseCase } from \"~/features/ListTaskDefinitions/index.js\";\n\nexport const createDefinitionCrud = (context: Context): ITasksContextDefinitionObject => {\n return {\n getDefinition: <\n I extends TaskDefinition.TaskInput = TaskDefinition.TaskInput,\n O extends TaskDefinition.TaskOutput = TaskDefinition.TaskOutput\n >(\n id: string\n ) => {\n const useCase = context.container.resolve(GetTaskDefinitionUseCase);\n const result = useCase.execute<I, O>(id);\n\n if (result.isOk()) {\n return result.value;\n }\n\n return null;\n },\n listDefinitions: () => {\n const useCase = context.container.resolve(ListTaskDefinitionsUseCase);\n return useCase.execute();\n }\n };\n};\n"],"mappings":"AAEA,SAASA,wBAAwB;AACjC,SAASC,0BAA0B;AAEnC,OAAO,MAAMC,oBAAoB,GAAIC,OAAgB,IAAoC;EACrF,OAAO;IACHC,aAAa,EAITC,EAAU,IACT;MACD,MAAMC,OAAO,GAAGH,OAAO,CAACI,SAAS,CAACC,OAAO,CAACR,wBAAwB,CAAC;MACnE,MAAMS,MAAM,GAAGH,OAAO,CAACI,OAAO,CAAOL,EAAE,CAAC;MAExC,IAAII,MAAM,CAACE,IAAI,CAAC,CAAC,EAAE;QACf,OAAOF,MAAM,CAACG,KAAK;MACvB;MAEA,OAAO,IAAI;IACf,CAAC;IACDC,eAAe,EAAEA,CAAA,KAAM;MACnB,MAAMP,OAAO,GAAGH,OAAO,CAACI,SAAS,CAACC,OAAO,CAACP,0BAA0B,CAAC;MACrE,OAAOK,OAAO,CAACI,OAAO,CAAC,CAAC;IAC5B;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
package/crud/service.tasks.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Context, ITasksContextServiceObject } from "../types";
|
|
1
|
+
import type { Context, ITasksContextServiceObject } from "../types.js";
|
|
2
2
|
export declare const createServiceCrud: (context: Context) => ITasksContextServiceObject;
|