@webiny/tasks 6.0.0-alpha.5 → 6.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/graphql/index.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
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");
|
|
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 { createFieldTypePluginRecords } from "@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js";
|
|
6
|
+
import { emptyResolver, resolve, resolveList } from "./utils.js";
|
|
7
|
+
import { renderFields } from "@webiny/api-headless-cms/utils/renderFields.js";
|
|
8
|
+
import { checkPermissions } from "./checkPermissions.js";
|
|
9
|
+
import { ListModelsUseCase } from "@webiny/api-headless-cms/features/contentModel/ListModels/index.js";
|
|
15
10
|
const createWebinyBackgroundTaskDefinitionEnum = items => {
|
|
16
11
|
if (items.length === 0) {
|
|
17
12
|
return "Empty";
|
|
@@ -21,67 +16,62 @@ const createWebinyBackgroundTaskDefinitionEnum = items => {
|
|
|
21
16
|
}).map(definition => definition.id).join("\n");
|
|
22
17
|
};
|
|
23
18
|
const createGraphQL = () => {
|
|
24
|
-
const plugin = new
|
|
19
|
+
const plugin = new ContextPlugin(async ctx => {
|
|
25
20
|
if (!ctx.tenancy.getCurrentTenant()) {
|
|
26
21
|
return;
|
|
27
|
-
} else if (!ctx.i18n.getDefaultLocale()) {
|
|
28
|
-
return;
|
|
29
22
|
}
|
|
30
23
|
const taskModel = await ctx.tasks.getTaskModel();
|
|
31
24
|
const logModel = await ctx.tasks.getLogModel();
|
|
25
|
+
const listModels = ctx.container.resolve(ListModelsUseCase);
|
|
32
26
|
const models = await ctx.security.withoutAuthorization(async () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return false;
|
|
36
|
-
} else if (model.isPrivate) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
return true;
|
|
27
|
+
const modelsResult = await listModels.execute({
|
|
28
|
+
includePrivate: false
|
|
40
29
|
});
|
|
30
|
+
return modelsResult.value.filter(model => model.fields.length > 0);
|
|
41
31
|
});
|
|
42
|
-
const fieldTypePlugins =
|
|
43
|
-
const taskFields =
|
|
32
|
+
const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);
|
|
33
|
+
const taskFields = renderFields({
|
|
44
34
|
models,
|
|
45
35
|
model: taskModel,
|
|
46
36
|
fields: taskModel.fields,
|
|
47
37
|
type: "manage",
|
|
48
38
|
fieldTypePlugins
|
|
49
39
|
});
|
|
50
|
-
const logFields =
|
|
40
|
+
const logFields = renderFields({
|
|
51
41
|
models,
|
|
52
42
|
model: logModel,
|
|
53
43
|
fields: logModel.fields.filter(field => field.fieldId !== "task"),
|
|
54
44
|
type: "manage",
|
|
55
45
|
fieldTypePlugins
|
|
56
46
|
});
|
|
57
|
-
const listTasksFilterFieldsRender =
|
|
47
|
+
const listTasksFilterFieldsRender = renderListFilterFields({
|
|
58
48
|
model: taskModel,
|
|
59
49
|
fields: taskModel.fields,
|
|
60
50
|
type: "manage",
|
|
61
51
|
fieldTypePlugins,
|
|
62
52
|
excludeFields: ["entryId"]
|
|
63
53
|
});
|
|
64
|
-
const listLogsFilterFieldsRender =
|
|
54
|
+
const listLogsFilterFieldsRender = renderListFilterFields({
|
|
65
55
|
model: logModel,
|
|
66
56
|
fields: logModel.fields,
|
|
67
57
|
type: "manage",
|
|
68
58
|
fieldTypePlugins,
|
|
69
59
|
excludeFields: ["entryId"]
|
|
70
60
|
});
|
|
71
|
-
const sortTasksEnumRender =
|
|
61
|
+
const sortTasksEnumRender = renderSortEnum({
|
|
72
62
|
model: taskModel,
|
|
73
63
|
fields: taskModel.fields,
|
|
74
64
|
fieldTypePlugins,
|
|
75
65
|
sorterPlugins: []
|
|
76
66
|
});
|
|
77
|
-
const sortLogsEnumRender =
|
|
67
|
+
const sortLogsEnumRender = renderSortEnum({
|
|
78
68
|
model: logModel,
|
|
79
69
|
fields: logModel.fields,
|
|
80
70
|
fieldTypePlugins,
|
|
81
71
|
sorterPlugins: []
|
|
82
72
|
});
|
|
83
73
|
const taskDefinitions = ctx.tasks.listDefinitions();
|
|
84
|
-
const plugin = new
|
|
74
|
+
const plugin = new GraphQLSchemaPlugin({
|
|
85
75
|
typeDefs: /* GraphQL */`
|
|
86
76
|
type WebinyBackgroundTaskError {
|
|
87
77
|
message: String
|
|
@@ -89,7 +79,7 @@ const createGraphQL = () => {
|
|
|
89
79
|
data: JSON
|
|
90
80
|
stack: String
|
|
91
81
|
}
|
|
92
|
-
|
|
82
|
+
|
|
93
83
|
${taskFields.map(f => f.typeDefs).join("\n")}
|
|
94
84
|
${logFields.map(f => f.typeDefs).join("\n")}
|
|
95
85
|
|
|
@@ -122,7 +112,7 @@ const createGraphQL = () => {
|
|
|
122
112
|
meta: WebinyBackgroundTaskMeta
|
|
123
113
|
error: WebinyBackgroundTaskError
|
|
124
114
|
}
|
|
125
|
-
|
|
115
|
+
|
|
126
116
|
type WebinyBackgroundTaskLog {
|
|
127
117
|
id: String!
|
|
128
118
|
createdOn: DateTime!
|
|
@@ -130,7 +120,7 @@ const createGraphQL = () => {
|
|
|
130
120
|
task: WebinyBackgroundTask!
|
|
131
121
|
${logFields.map(f => f.fields).join("\n")}
|
|
132
122
|
}
|
|
133
|
-
|
|
123
|
+
|
|
134
124
|
type WebinyBackgroundTaskLogListResponse {
|
|
135
125
|
data: [WebinyBackgroundTaskLog!]
|
|
136
126
|
meta: WebinyBackgroundTaskMeta
|
|
@@ -141,7 +131,6 @@ const createGraphQL = () => {
|
|
|
141
131
|
id: String!
|
|
142
132
|
title: String!
|
|
143
133
|
description: String
|
|
144
|
-
fields: JSON
|
|
145
134
|
}
|
|
146
135
|
|
|
147
136
|
type WebinyBackgroundTaskListDefinitionsResponse {
|
|
@@ -166,17 +155,17 @@ const createGraphQL = () => {
|
|
|
166
155
|
}
|
|
167
156
|
|
|
168
157
|
input WebinyBackgroundTaskListWhereInput {
|
|
169
|
-
${listTasksFilterFieldsRender}
|
|
158
|
+
${listTasksFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
170
159
|
}
|
|
171
|
-
|
|
160
|
+
|
|
172
161
|
input WebinyBackgroundTaskLogListWhereInput {
|
|
173
|
-
${listLogsFilterFieldsRender}
|
|
162
|
+
${listLogsFilterFieldsRender.allFiltersAsString() || "_empty: String"}
|
|
174
163
|
}
|
|
175
164
|
|
|
176
165
|
enum WebinyBackgroundTaskListSorter {
|
|
177
166
|
${sortTasksEnumRender}
|
|
178
167
|
}
|
|
179
|
-
|
|
168
|
+
|
|
180
169
|
enum WebinyBackgroundTaskLogListSorter {
|
|
181
170
|
${sortLogsEnumRender}
|
|
182
171
|
}
|
|
@@ -211,7 +200,7 @@ const createGraphQL = () => {
|
|
|
211
200
|
search: String
|
|
212
201
|
): WebinyBackgroundTaskListResponse!
|
|
213
202
|
listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!
|
|
214
|
-
|
|
203
|
+
|
|
215
204
|
listLogs(
|
|
216
205
|
where: WebinyBackgroundTaskLogListWhereInput
|
|
217
206
|
sort: [WebinyBackgroundTaskLogListSorter!]
|
|
@@ -229,34 +218,34 @@ const createGraphQL = () => {
|
|
|
229
218
|
`,
|
|
230
219
|
resolvers: {
|
|
231
220
|
Query: {
|
|
232
|
-
backgroundTasks:
|
|
221
|
+
backgroundTasks: emptyResolver
|
|
233
222
|
},
|
|
234
223
|
Mutation: {
|
|
235
|
-
backgroundTasks:
|
|
224
|
+
backgroundTasks: emptyResolver
|
|
236
225
|
},
|
|
237
226
|
WebinyBackgroundTaskQuery: {
|
|
238
227
|
/**
|
|
239
228
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
240
229
|
*/
|
|
241
230
|
getTask: async (_, args, context) => {
|
|
242
|
-
return
|
|
243
|
-
await
|
|
231
|
+
return resolve(async () => {
|
|
232
|
+
await checkPermissions(context, {
|
|
244
233
|
rwd: "r"
|
|
245
234
|
});
|
|
246
235
|
return await context.tasks.getTask(args.id);
|
|
247
236
|
});
|
|
248
237
|
},
|
|
249
238
|
listTasks: async (_, args, context) => {
|
|
250
|
-
return
|
|
251
|
-
await
|
|
239
|
+
return resolveList(async () => {
|
|
240
|
+
await checkPermissions(context, {
|
|
252
241
|
rwd: "r"
|
|
253
242
|
});
|
|
254
243
|
return await context.tasks.listTasks(args);
|
|
255
244
|
});
|
|
256
245
|
},
|
|
257
246
|
listDefinitions: async (_, __, context) => {
|
|
258
|
-
return
|
|
259
|
-
await
|
|
247
|
+
return resolve(async () => {
|
|
248
|
+
await checkPermissions(context, {
|
|
260
249
|
rwd: "r"
|
|
261
250
|
});
|
|
262
251
|
const result = context.tasks.listDefinitions();
|
|
@@ -269,8 +258,8 @@ const createGraphQL = () => {
|
|
|
269
258
|
});
|
|
270
259
|
},
|
|
271
260
|
listLogs: async (_, args, context) => {
|
|
272
|
-
return
|
|
273
|
-
await
|
|
261
|
+
return resolveList(async () => {
|
|
262
|
+
await checkPermissions(context, {
|
|
274
263
|
rwd: "r"
|
|
275
264
|
});
|
|
276
265
|
return await context.tasks.listLogs(args);
|
|
@@ -282,32 +271,40 @@ const createGraphQL = () => {
|
|
|
282
271
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
283
272
|
*/
|
|
284
273
|
abortTask: async (_, args, context) => {
|
|
285
|
-
await
|
|
274
|
+
await checkPermissions(context, {
|
|
286
275
|
rwd: "w"
|
|
287
276
|
});
|
|
288
|
-
return
|
|
289
|
-
|
|
277
|
+
return resolve(async () => {
|
|
278
|
+
const result = await context.tasks.abort(args);
|
|
279
|
+
if (result.isOk()) {
|
|
280
|
+
return result.value;
|
|
281
|
+
}
|
|
282
|
+
throw result.error;
|
|
290
283
|
});
|
|
291
284
|
},
|
|
292
285
|
/**
|
|
293
286
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
294
287
|
*/
|
|
295
288
|
triggerTask: async (_, args, context) => {
|
|
296
|
-
await
|
|
289
|
+
await checkPermissions(context, {
|
|
297
290
|
rwd: "w"
|
|
298
291
|
});
|
|
299
|
-
return
|
|
300
|
-
|
|
292
|
+
return resolve(async () => {
|
|
293
|
+
const result = await context.tasks.trigger(args);
|
|
294
|
+
if (result.isOk()) {
|
|
295
|
+
return result.value;
|
|
296
|
+
}
|
|
297
|
+
throw result.error;
|
|
301
298
|
});
|
|
302
299
|
},
|
|
303
300
|
/**
|
|
304
301
|
* We need to think of a way to pass the args type to the resolver without assigning it directly.
|
|
305
302
|
*/
|
|
306
303
|
deleteTask: async (_, args, context) => {
|
|
307
|
-
await
|
|
304
|
+
await checkPermissions(context, {
|
|
308
305
|
rwd: "d"
|
|
309
306
|
});
|
|
310
|
-
return
|
|
307
|
+
return resolve(async () => {
|
|
311
308
|
return await context.tasks.deleteTask(args.id);
|
|
312
309
|
});
|
|
313
310
|
}
|
|
@@ -338,14 +335,14 @@ const createGraphQL = () => {
|
|
|
338
335
|
}
|
|
339
336
|
}
|
|
340
337
|
});
|
|
338
|
+
plugin.name = "tasks.graphql.schema";
|
|
341
339
|
ctx.plugins.register(plugin);
|
|
342
340
|
});
|
|
343
341
|
plugin.name = "tasks.graphql";
|
|
344
342
|
return plugin;
|
|
345
343
|
};
|
|
346
|
-
const createBackgroundTaskGraphQL = () => {
|
|
344
|
+
export const createBackgroundTaskGraphQL = () => {
|
|
347
345
|
return [createGraphQL()];
|
|
348
346
|
};
|
|
349
|
-
exports.createBackgroundTaskGraphQL = createBackgroundTaskGraphQL;
|
|
350
347
|
|
|
351
348
|
//# sourceMappingURL=index.js.map
|
package/graphql/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_handlerGraphql","require","_renderSortEnum","_handler","_renderListFilterFields","_createFieldTypePluginRecords","_utils","_renderFields","_checkPermissions","createWebinyBackgroundTaskDefinitionEnum","items","length","filter","item","isPrivate","map","definition","id","join","createGraphQL","plugin","ContextPlugin","ctx","tenancy","getCurrentTenant","i18n","getDefaultLocale","taskModel","tasks","getTaskModel","logModel","getLogModel","models","security","withoutAuthorization","cms","listModels","model","fields","fieldTypePlugins","createFieldTypePluginRecords","plugins","taskFields","renderFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","renderListFilterFields","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","renderSortEnum","sorterPlugins","sortLogsEnumRender","taskDefinitions","listDefinitions","GraphQLSchemaPlugin","typeDefs","f","resolvers","Query","backgroundTasks","emptyResolver","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","resolve","checkPermissions","rwd","listTasks","resolveList","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","sort","limit","where","task","WebinyBackgroundTaskLog","register","name","createBackgroundTaskGraphQL","exports"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type {\n Context,\n IListTaskLogParams,\n IListTaskParams,\n ITask,\n ITaskDefinition,\n ITaskLog\n} from \"~/types\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords\";\nimport { emptyResolver, resolve, resolveList } from \"./utils\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields\";\nimport { checkPermissions } from \"./checkPermissions\";\nimport type { Plugin } from \"@webiny/plugins/types\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (items: ITaskDefinition[]): string => {\n if (items.length === 0) {\n return \"Empty\";\n }\n return items\n .filter(item => {\n return !item.isPrivate;\n })\n .map(definition => definition.id)\n .join(\"\\n\");\n};\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n } else if (!ctx.i18n.getDefaultLocale()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const models = await ctx.security.withoutAuthorization(async () => {\n return (await ctx.cms.listModels()).filter(model => {\n if (model.fields.length === 0) {\n return false;\n } else if (model.isPrivate) {\n return false;\n }\n return true;\n });\n });\n const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldTypePlugins\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const taskDefinitions = ctx.tasks.listDefinitions();\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n \n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n \n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n \n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n fields: JSON\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender}\n }\n \n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n \n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n enum WebinyBackgroundTaskDefinitionEnum {\n ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n \n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve(async () => {\n return await context.tasks.abort(args);\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve(async () => {\n return await context.tasks.trigger(args);\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"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C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBjB,UAAU,CAAC3B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACzC,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACzC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBwB,UAAU,CAAC3B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACtB,MAAM,CAAC,CAACpB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB2B,SAAS,CAAC9B,GAAG,CAAC6C,CAAC,IAAIA,CAAC,CAACtB,MAAM,CAAC,CAACpB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB8B,2BAA2B;AACjD;AACA;AACA;AACA,sBAAsBG,0BAA0B;AAChD;AACA;AACA;AACA,sBAAsBC,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBG,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB9C,wCAAwC,CAAC+C,eAAe,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;MACDK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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["GraphQLSchemaPlugin","renderSortEnum","ContextPlugin","renderListFilterFields","createFieldTypePluginRecords","emptyResolver","resolve","resolveList","renderFields","checkPermissions","ListModelsUseCase","createWebinyBackgroundTaskDefinitionEnum","items","length","filter","item","isPrivate","map","definition","id","join","createGraphQL","plugin","ctx","tenancy","getCurrentTenant","taskModel","tasks","getTaskModel","logModel","getLogModel","listModels","container","models","security","withoutAuthorization","modelsResult","execute","includePrivate","value","model","fields","fieldTypePlugins","plugins","taskFields","type","logFields","field","fieldId","listTasksFilterFieldsRender","excludeFields","listLogsFilterFieldsRender","sortTasksEnumRender","sorterPlugins","sortLogsEnumRender","taskDefinitions","listDefinitions","typeDefs","f","allFiltersAsString","resolvers","Query","backgroundTasks","Mutation","WebinyBackgroundTaskQuery","getTask","_","args","context","rwd","listTasks","__","result","listLogs","WebinyBackgroundTaskMutation","abortTask","abort","isOk","error","triggerTask","trigger","deleteTask","WebinyBackgroundTask","logs","parent","sort","limit","where","task","WebinyBackgroundTaskLog","name","register","createBackgroundTaskGraphQL"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { renderSortEnum } from \"@webiny/api-headless-cms/utils/renderSortEnum.js\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport type { Context, IListTaskLogParams, IListTaskParams, ITask, ITaskLog } from \"~/types.js\";\nimport { renderListFilterFields } from \"@webiny/api-headless-cms/utils/renderListFilterFields.js\";\nimport { createFieldTypePluginRecords } from \"@webiny/api-headless-cms/graphql/schema/createFieldTypePluginRecords.js\";\nimport { emptyResolver, resolve, resolveList } from \"./utils.js\";\nimport { renderFields } from \"@webiny/api-headless-cms/utils/renderFields.js\";\nimport { checkPermissions } from \"./checkPermissions.js\";\nimport type { Plugin } from \"@webiny/plugins/types.js\";\nimport { ListModelsUseCase } from \"@webiny/api-headless-cms/features/contentModel/ListModels/index.js\";\nimport { TaskDefinition } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\ninterface IGetTaskQueryParams {\n id: string;\n}\n\ninterface IAbortTaskMutationParams {\n id: string;\n message?: string;\n}\n\ninterface ITriggerTaskMutationParams {\n name?: string;\n definition: string;\n input?: Record<string, any>;\n delay?: number;\n}\n\ninterface IDeleteTaskMutationParams {\n id: string;\n}\n\nconst createWebinyBackgroundTaskDefinitionEnum = (items: TaskDefinition.Interface[]): string => {\n if (items.length === 0) {\n return \"Empty\";\n }\n return items\n .filter(item => {\n return !item.isPrivate;\n })\n .map(definition => definition.id)\n .join(\"\\n\");\n};\n\nconst createGraphQL = () => {\n const plugin = new ContextPlugin<Context>(async ctx => {\n if (!ctx.tenancy.getCurrentTenant()) {\n return;\n }\n\n const taskModel = await ctx.tasks.getTaskModel();\n const logModel = await ctx.tasks.getLogModel();\n\n const listModels = ctx.container.resolve(ListModelsUseCase);\n\n const models = await ctx.security.withoutAuthorization(async () => {\n const modelsResult = await listModels.execute({ includePrivate: false });\n\n return modelsResult.value.filter(model => model.fields.length > 0);\n });\n const fieldTypePlugins = createFieldTypePluginRecords(ctx.plugins);\n\n const taskFields = renderFields({\n models,\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const logFields = renderFields({\n models,\n model: logModel,\n fields: logModel.fields.filter(field => field.fieldId !== \"task\"),\n type: \"manage\",\n fieldTypePlugins\n });\n\n const listTasksFilterFieldsRender = renderListFilterFields({\n model: taskModel,\n fields: taskModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const listLogsFilterFieldsRender = renderListFilterFields({\n model: logModel,\n fields: logModel.fields,\n type: \"manage\",\n fieldTypePlugins,\n excludeFields: [\"entryId\"]\n });\n\n const sortTasksEnumRender = renderSortEnum({\n model: taskModel,\n fields: taskModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const sortLogsEnumRender = renderSortEnum({\n model: logModel,\n fields: logModel.fields,\n fieldTypePlugins,\n sorterPlugins: []\n });\n\n const taskDefinitions = ctx.tasks.listDefinitions();\n\n const plugin = new GraphQLSchemaPlugin<Context>({\n typeDefs: /* GraphQL */ `\n type WebinyBackgroundTaskError {\n message: String\n code: String\n data: JSON\n stack: String\n }\n\n ${taskFields.map(f => f.typeDefs).join(\"\\n\")}\n ${logFields.map(f => f.typeDefs).join(\"\\n\")}\n\n type WebinyBackgroundTask {\n id: String!\n createdOn: DateTime!\n savedOn: DateTime\n createdBy: WebinyBackgroundTaskIdentity!\n logs(\n where: WebinyBackgroundTaskLogListWhereInput\n limit: Number\n sort: [WebinyBackgroundTaskLogListSorter!]\n ): [WebinyBackgroundTaskLog!]!\n ${taskFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskMeta {\n cursor: String\n hasMoreItems: Boolean!\n totalCount: Int!\n }\n\n type WebinyBackgroundTaskListResponse {\n data: [WebinyBackgroundTask!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskLog {\n id: String!\n createdOn: DateTime!\n createdBy: WebinyBackgroundTaskIdentity!\n task: WebinyBackgroundTask!\n ${logFields.map(f => f.fields).join(\"\\n\")}\n }\n\n type WebinyBackgroundTaskLogListResponse {\n data: [WebinyBackgroundTaskLog!]\n meta: WebinyBackgroundTaskMeta\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDefinition {\n id: String!\n title: String!\n description: String\n }\n\n type WebinyBackgroundTaskListDefinitionsResponse {\n data: [WebinyBackgroundTaskDefinition!]\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskIdentity {\n id: String!\n displayName: String!\n type: String\n }\n\n type WebinyBackgroundTaskTriggerResponse {\n data: WebinyBackgroundTask\n error: WebinyBackgroundTaskError\n }\n\n type WebinyBackgroundTaskDeleteResponse {\n data: Boolean\n error: WebinyBackgroundTaskError\n }\n\n input WebinyBackgroundTaskListWhereInput {\n ${listTasksFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n input WebinyBackgroundTaskLogListWhereInput {\n ${listLogsFilterFieldsRender.allFiltersAsString() || \"_empty: String\"}\n }\n\n enum WebinyBackgroundTaskListSorter {\n ${sortTasksEnumRender}\n }\n\n enum WebinyBackgroundTaskLogListSorter {\n ${sortLogsEnumRender}\n }\n\n type WebinyBackgroundTaskQuery {\n _empty: String\n }\n\n type WebinyBackgroundTaskMutation {\n _empty: String\n }\n\n enum WebinyBackgroundTaskDefinitionEnum {\n ${createWebinyBackgroundTaskDefinitionEnum(taskDefinitions)}\n }\n\n extend type Query {\n backgroundTasks: WebinyBackgroundTaskQuery\n }\n\n extend type Mutation {\n backgroundTasks: WebinyBackgroundTaskMutation\n }\n\n extend type WebinyBackgroundTaskQuery {\n getTask(id: ID!): WebinyBackgroundTaskResponse!\n listTasks(\n where: WebinyBackgroundTaskListWhereInput\n sort: [WebinyBackgroundTaskListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskListResponse!\n listDefinitions: WebinyBackgroundTaskListDefinitionsResponse!\n\n listLogs(\n where: WebinyBackgroundTaskLogListWhereInput\n sort: [WebinyBackgroundTaskLogListSorter!]\n limit: Int\n after: String\n search: String\n ): WebinyBackgroundTaskLogListResponse!\n }\n\n extend type WebinyBackgroundTaskMutation {\n triggerTask(definition: WebinyBackgroundTaskDefinitionEnum!, input: JSON, name: String, delay: Number): WebinyBackgroundTaskTriggerResponse!\n abortTask(id: ID!, message: String): WebinyBackgroundTaskResponse!\n deleteTask(id: ID!): WebinyBackgroundTaskDeleteResponse!\n }\n `,\n resolvers: {\n Query: {\n backgroundTasks: emptyResolver\n },\n Mutation: {\n backgroundTasks: emptyResolver\n },\n WebinyBackgroundTaskQuery: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n getTask: async (_, args: IGetTaskQueryParams, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.getTask(args.id);\n });\n },\n listTasks: async (_, args: IListTaskParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listTasks(args);\n });\n },\n listDefinitions: async (_, __, context) => {\n return resolve(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n const result = context.tasks.listDefinitions();\n /**\n * Do not output private tasks.\n */\n return result.filter(item => {\n return !item.isPrivate;\n });\n });\n },\n listLogs: async (_, args: IListTaskLogParams, context) => {\n return resolveList(async () => {\n await checkPermissions(context, {\n rwd: \"r\"\n });\n return await context.tasks.listLogs(args);\n });\n }\n },\n WebinyBackgroundTaskMutation: {\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n abortTask: async (_, args: IAbortTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.abort(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n triggerTask: async (_, args: ITriggerTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"w\"\n });\n return resolve<ITask>(async () => {\n const result = await context.tasks.trigger(args);\n if (result.isOk()) {\n return result.value;\n }\n\n throw result.error;\n });\n },\n /**\n * We need to think of a way to pass the args type to the resolver without assigning it directly.\n */\n deleteTask: async (_, args: IDeleteTaskMutationParams, context) => {\n await checkPermissions(context, {\n rwd: \"d\"\n });\n return resolve(async () => {\n return await context.tasks.deleteTask(args.id);\n });\n }\n },\n /**\n * Custom resolvers for fields\n */\n WebinyBackgroundTask: {\n logs: async (parent: ITask, args: IListTaskLogParams, context) => {\n const { items } = await context.tasks.listLogs({\n sort: [\"createdBy_ASC\"],\n limit: 10000,\n ...args,\n where: {\n ...args?.where,\n task: parent.id\n }\n });\n return items;\n }\n },\n WebinyBackgroundTaskLog: {\n task: async (parent: ITaskLog, _, context) => {\n return await context.tasks.getTask(parent.task);\n }\n }\n }\n });\n\n plugin.name = \"tasks.graphql.schema\";\n\n ctx.plugins.register(plugin);\n });\n\n plugin.name = \"tasks.graphql\";\n\n return plugin;\n};\n\nexport const createBackgroundTaskGraphQL = (): Plugin[] => {\n return [createGraphQL()];\n};\n"],"mappings":"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CAACyC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACrC,IAAI,CAAC,IAAI,CAAC;AAC5D,kBAAkB0B,SAAS,CAAC7B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACD,QAAQ,CAAC,CAACrC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBwB,UAAU,CAAC3B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB0B,SAAS,CAAC7B,GAAG,CAACyC,CAAC,IAAIA,CAAC,CAACjB,MAAM,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB6B,2BAA2B,CAACU,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AAC1F;AACA;AACA;AACA,sBAAsBR,0BAA0B,CAACQ,kBAAkB,CAAC,CAAC,IAAI,gBAAgB;AACzF;AACA;AACA;AACA,sBAAsBP,mBAAmB;AACzC;AACA;AACA;AACA,sBAAsBE,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB3C,wCAAwC,CAAC4C,eAAe,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;MAC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","ignoreList":[]}
|
package/graphql/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
-
import type { CmsEntryMeta } from "@webiny/api-headless-cms/types";
|
|
2
|
+
import type { CmsEntryMeta } from "@webiny/api-headless-cms/types/index.js";
|
|
3
3
|
export declare const emptyResolver: () => {};
|
|
4
4
|
interface ResolveCallable<T = any> {
|
|
5
5
|
(): Promise<T>;
|
package/graphql/utils.js
CHANGED
|
@@ -1,28 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.resolveList = exports.resolve = exports.emptyResolver = void 0;
|
|
7
|
-
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
8
|
-
const emptyResolver = () => ({});
|
|
9
|
-
exports.emptyResolver = emptyResolver;
|
|
10
|
-
const resolve = async fn => {
|
|
1
|
+
import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "@webiny/handler-graphql";
|
|
2
|
+
export const emptyResolver = () => ({});
|
|
3
|
+
export const resolve = async fn => {
|
|
11
4
|
try {
|
|
12
|
-
return new
|
|
5
|
+
return new Response(await fn());
|
|
13
6
|
} catch (ex) {
|
|
14
|
-
return new
|
|
7
|
+
return new ErrorResponse(ex);
|
|
15
8
|
}
|
|
16
9
|
};
|
|
17
|
-
|
|
18
|
-
const resolveList = async fn => {
|
|
10
|
+
export const resolveList = async fn => {
|
|
19
11
|
try {
|
|
20
12
|
const result = await fn();
|
|
21
|
-
return new
|
|
13
|
+
return new ListResponse(result.items, result.meta);
|
|
22
14
|
} catch (ex) {
|
|
23
|
-
return new
|
|
15
|
+
return new ListErrorResponse(ex);
|
|
24
16
|
}
|
|
25
17
|
};
|
|
26
|
-
exports.resolveList = resolveList;
|
|
27
18
|
|
|
28
19
|
//# sourceMappingURL=utils.js.map
|
package/graphql/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ErrorResponse","ListErrorResponse","ListResponse","Response","emptyResolver","resolve","fn","ex","resolveList","result","items","meta"],"sources":["utils.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"@webiny/handler-graphql\";\nimport type { CmsEntryMeta } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = any> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = any>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface IListResult {\n items: any[];\n meta: CmsEntryMeta;\n}\n\nexport const resolveList = async (fn: ResolveCallable) => {\n try {\n const result = (await fn()) as IListResult;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,yBAAyB;AAGlG,OAAO,MAAMC,aAAa,GAAGA,CAAA,MAAO,CAAC,CAAC,CAAC;AAMvC,OAAO,MAAMC,OAAO,GAAG,MAAgBC,EAAsB,IAAK;EAC9D,IAAI;IACA,OAAO,IAAIH,QAAQ,CAAC,MAAMG,EAAE,CAAC,CAAC,CAAC;EACnC,CAAC,CAAC,OAAOC,EAAE,EAAE;IACT,OAAO,IAAIP,aAAa,CAACO,EAAE,CAAC;EAChC;AACJ,CAAC;AAOD,OAAO,MAAMC,WAAW,GAAG,MAAOF,EAAmB,IAAK;EACtD,IAAI;IACA,MAAMG,MAAM,GAAI,MAAMH,EAAE,CAAC,CAAiB;IAC1C,OAAO,IAAIJ,YAAY,CAACO,MAAM,CAACC,KAAK,EAAED,MAAM,CAACE,IAAI,CAAC;EACtD,CAAC,CAAC,OAAOJ,EAAE,EAAE;IACT,OAAO,IAAIN,iBAAiB,CAACM,EAAE,CAAC;EACpC;AACJ,CAAC","ignoreList":[]}
|
package/handler/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types";
|
|
2
|
-
import type { HandlerParams, ITaskRawEvent } from "
|
|
1
|
+
import type { APIGatewayProxyResult, Context as LambdaContext } from "@webiny/aws-sdk/types/index.js";
|
|
2
|
+
import type { HandlerParams, ITaskRawEvent } from "../handler/types.js";
|
|
3
3
|
export interface HandlerCallable {
|
|
4
4
|
(event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;
|
|
5
5
|
}
|
package/handler/index.js
CHANGED
|
@@ -1,54 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _plugins = require("@webiny/handler-aws/plugins");
|
|
9
|
-
var _execute = require("@webiny/handler-aws/execute");
|
|
10
|
-
var _types = require("../types");
|
|
11
|
-
var _runner = require("../runner");
|
|
12
|
-
var _utils = require("@webiny/handler-aws/utils");
|
|
13
|
-
var _TaskEventValidation = require("../runner/TaskEventValidation");
|
|
1
|
+
import { createHandler as createBaseHandler } from "@webiny/handler";
|
|
2
|
+
import { registerDefaultPlugins } from "@webiny/handler-aws/plugins/index.js";
|
|
3
|
+
import { execute } from "@webiny/handler-aws/execute.js";
|
|
4
|
+
import { TaskRunner } from "../runner/index.js";
|
|
5
|
+
import { timerFactory } from "@webiny/handler-aws/utils/index.js";
|
|
6
|
+
import { TaskEventValidation } from "../runner/TaskEventValidation.js";
|
|
7
|
+
import { TaskResultStatus } from "@webiny/api-core/features/task/TaskDefinition/index.js";
|
|
14
8
|
const url = "/webiny-background-task-event";
|
|
15
|
-
const createHandler = params => {
|
|
9
|
+
export const createHandler = params => {
|
|
16
10
|
return async (event, context) => {
|
|
17
|
-
const app = (
|
|
11
|
+
const app = createBaseHandler({
|
|
18
12
|
...params,
|
|
19
13
|
options: {
|
|
20
14
|
logger: params.debug === true,
|
|
21
15
|
...(params.options || {})
|
|
22
16
|
}
|
|
23
17
|
});
|
|
24
|
-
|
|
18
|
+
registerDefaultPlugins(app.webiny);
|
|
25
19
|
app.addHook("preSerialization", async (_, __, payload) => {
|
|
26
20
|
if (!payload.body) {
|
|
27
21
|
return payload;
|
|
28
22
|
}
|
|
29
23
|
return payload.body;
|
|
30
24
|
});
|
|
31
|
-
app.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
25
|
+
await app.register(async taskApp => {
|
|
26
|
+
taskApp.setErrorHandler(async (error, _, reply) => {
|
|
27
|
+
app.__webiny_raw_result = {
|
|
28
|
+
error: {
|
|
29
|
+
message: error.message,
|
|
30
|
+
code: error.code,
|
|
31
|
+
data: error.data
|
|
32
|
+
},
|
|
33
|
+
status: TaskResultStatus.ERROR
|
|
34
|
+
};
|
|
35
|
+
return reply.send();
|
|
36
|
+
});
|
|
37
|
+
taskApp.post(url, async (_, reply) => {
|
|
38
|
+
const handler = new TaskRunner(
|
|
39
|
+
/**
|
|
40
|
+
* We can safely cast because we know that the context is of type tasks/Context
|
|
41
|
+
*/
|
|
42
|
+
app.webiny, timerFactory(context), new TaskEventValidation());
|
|
43
|
+
app.__webiny_raw_result = await handler.run(event);
|
|
44
|
+
return reply.send({});
|
|
45
|
+
});
|
|
50
46
|
});
|
|
51
|
-
return
|
|
47
|
+
return execute({
|
|
52
48
|
app,
|
|
53
49
|
url,
|
|
54
50
|
payload: {
|
|
@@ -56,14 +52,11 @@ const createHandler = params => {
|
|
|
56
52
|
headers: {
|
|
57
53
|
["x-tenant"]: event.tenant,
|
|
58
54
|
["x-webiny-cms-endpoint"]: event.endpoint,
|
|
59
|
-
["
|
|
60
|
-
["x-i18n-locale"]: event.locale,
|
|
61
|
-
["accept-language"]: event.locale
|
|
55
|
+
["accept-language"]: "en-US"
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
58
|
});
|
|
65
59
|
};
|
|
66
60
|
};
|
|
67
|
-
exports.createHandler = createHandler;
|
|
68
61
|
|
|
69
62
|
//# sourceMappingURL=index.js.map
|
package/handler/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createHandler","createBaseHandler","registerDefaultPlugins","execute","TaskRunner","timerFactory","TaskEventValidation","TaskResultStatus","url","params","event","context","app","options","logger","debug","webiny","addHook","_","__","payload","body","register","taskApp","setErrorHandler","error","reply","__webiny_raw_result","message","code","data","status","ERROR","send","post","handler","run","headers","tenant","endpoint"],"sources":["index.ts"],"sourcesContent":["import { createHandler as createBaseHandler } from \"@webiny/handler\";\nimport { registerDefaultPlugins } from \"@webiny/handler-aws/plugins/index.js\";\nimport { execute } from \"@webiny/handler-aws/execute.js\";\nimport type {\n APIGatewayProxyResult,\n Context as LambdaContext\n} from \"@webiny/aws-sdk/types/index.js\";\nimport type { Context } from \"~/types.js\";\nimport type { HandlerParams, ITaskRawEvent } from \"~/handler/types.js\";\nimport { TaskRunner } from \"~/runner/index.js\";\nimport type WebinyError from \"@webiny/error\";\nimport { timerFactory } from \"@webiny/handler-aws/utils/index.js\";\nimport { TaskEventValidation } from \"~/runner/TaskEventValidation.js\";\nimport { TaskResultStatus } from \"@webiny/api-core/features/task/TaskDefinition/index.js\";\n\nexport interface HandlerCallable {\n (event: ITaskRawEvent, context: LambdaContext): Promise<APIGatewayProxyResult>;\n}\n\nconst url = \"/webiny-background-task-event\";\n\nexport const createHandler = (params: HandlerParams): HandlerCallable => {\n return async (event, context) => {\n const app = createBaseHandler({\n ...params,\n options: {\n logger: params.debug === true,\n ...(params.options || {})\n }\n });\n\n registerDefaultPlugins(app.webiny);\n\n app.addHook(\"preSerialization\", async (_, __, payload: Record<string, any>) => {\n if (!payload.body) {\n return payload;\n }\n return payload.body;\n });\n\n await app.register(async taskApp => {\n taskApp.setErrorHandler<WebinyError>(async (error, _, reply) => {\n app.__webiny_raw_result = {\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n },\n status: TaskResultStatus.ERROR\n };\n return reply.send();\n });\n\n taskApp.post(url, async (_, reply) => {\n const handler = new TaskRunner(\n /**\n * We can safely cast because we know that the context is of type tasks/Context\n */\n app.webiny as Context,\n timerFactory(context),\n new TaskEventValidation()\n );\n\n app.__webiny_raw_result = await handler.run(event);\n return reply.send({});\n });\n });\n\n return execute({\n app,\n url,\n payload: {\n ...event,\n headers: {\n [\"x-tenant\"]: event.tenant,\n [\"x-webiny-cms-endpoint\"]: event.endpoint,\n [\"accept-language\"]: \"en-US\"\n }\n }\n });\n };\n};\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,iBAAiB,QAAQ,iBAAiB;AACpE,SAASC,sBAAsB,QAAQ,sCAAsC;AAC7E,SAASC,OAAO,QAAQ,gCAAgC;AAOxD,SAASC,UAAU;AAEnB,SAASC,YAAY,QAAQ,oCAAoC;AACjE,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB,QAAQ,wDAAwD;AAMzF,MAAMC,GAAG,GAAG,+BAA+B;AAE3C,OAAO,MAAMR,aAAa,GAAIS,MAAqB,IAAsB;EACrE,OAAO,OAAOC,KAAK,EAAEC,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAGX,iBAAiB,CAAC;MAC1B,GAAGQ,MAAM;MACTI,OAAO,EAAE;QACLC,MAAM,EAAEL,MAAM,CAACM,KAAK,KAAK,IAAI;QAC7B,IAAIN,MAAM,CAACI,OAAO,IAAI,CAAC,CAAC;MAC5B;IACJ,CAAC,CAAC;IAEFX,sBAAsB,CAACU,GAAG,CAACI,MAAM,CAAC;IAElCJ,GAAG,CAACK,OAAO,CAAC,kBAAkB,EAAE,OAAOC,CAAC,EAAEC,EAAE,EAAEC,OAA4B,KAAK;MAC3E,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;QACf,OAAOD,OAAO;MAClB;MACA,OAAOA,OAAO,CAACC,IAAI;IACvB,CAAC,CAAC;IAEF,MAAMT,GAAG,CAACU,QAAQ,CAAC,MAAMC,OAAO,IAAI;MAChCA,OAAO,CAACC,eAAe,CAAc,OAAOC,KAAK,EAAEP,CAAC,EAAEQ,KAAK,KAAK;QAC5Dd,GAAG,CAACe,mBAAmB,GAAG;UACtBF,KAAK,EAAE;YACHG,OAAO,EAAEH,KAAK,CAACG,OAAO;YACtBC,IAAI,EAAEJ,KAAK,CAACI,IAAI;YAChBC,IAAI,EAAEL,KAAK,CAACK;UAChB,CAAC;UACDC,MAAM,EAAExB,gBAAgB,CAACyB;QAC7B,CAAC;QACD,OAAON,KAAK,CAACO,IAAI,CAAC,CAAC;MACvB,CAAC,CAAC;MAEFV,OAAO,CAACW,IAAI,CAAC1B,GAAG,EAAE,OAAOU,CAAC,EAAEQ,KAAK,KAAK;QAClC,MAAMS,OAAO,GAAG,IAAI/B,UAAU;QAC1B;AACpB;AACA;QACoBQ,GAAG,CAACI,MAAM,EACVX,YAAY,CAACM,OAAO,CAAC,EACrB,IAAIL,mBAAmB,CAAC,CAC5B,CAAC;QAEDM,GAAG,CAACe,mBAAmB,GAAG,MAAMQ,OAAO,CAACC,GAAG,CAAC1B,KAAK,CAAC;QAClD,OAAOgB,KAAK,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC;MACzB,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO9B,OAAO,CAAC;MACXS,GAAG;MACHJ,GAAG;MACHY,OAAO,EAAE;QACL,GAAGV,KAAK;QACR2B,OAAO,EAAE;UACL,CAAC,UAAU,GAAG3B,KAAK,CAAC4B,MAAM;UAC1B,CAAC,uBAAuB,GAAG5B,KAAK,CAAC6B,QAAQ;UACzC,CAAC,iBAAiB,GAAG;QACzB;MACJ;IACJ,CAAC,CAAC;EACN,CAAC;AACL,CAAC","ignoreList":[]}
|