@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.
Files changed (298) hide show
  1. package/README.md +10 -9
  2. package/context.js +43 -21
  3. package/context.js.map +1 -1
  4. package/crud/TaskLogPrivateModel.d.ts +9 -0
  5. package/crud/TaskLogPrivateModel.js +34 -0
  6. package/crud/TaskLogPrivateModel.js.map +1 -0
  7. package/crud/TaskPrivateModel.d.ts +9 -0
  8. package/crud/TaskPrivateModel.js +46 -0
  9. package/crud/TaskPrivateModel.js.map +1 -0
  10. package/crud/crud.tasks.d.ts +1 -1
  11. package/crud/crud.tasks.js +209 -104
  12. package/crud/crud.tasks.js.map +1 -1
  13. package/crud/definition.tasks.d.ts +1 -1
  14. package/crud/definition.tasks.js +9 -18
  15. package/crud/definition.tasks.js.map +1 -1
  16. package/crud/service.tasks.d.ts +1 -1
  17. package/crud/service.tasks.js +31 -36
  18. package/crud/service.tasks.js.map +1 -1
  19. package/decorators/RunnableTaskDecorator.d.ts +31 -0
  20. package/decorators/RunnableTaskDecorator.js +82 -0
  21. package/decorators/RunnableTaskDecorator.js.map +1 -0
  22. package/domain/errors.d.ts +29 -0
  23. package/domain/errors.js +47 -0
  24. package/domain/errors.js.map +1 -0
  25. package/events/TaskAfterCreateEvent.d.ts +6 -0
  26. package/events/TaskAfterCreateEvent.js +10 -0
  27. package/events/TaskAfterCreateEvent.js.map +1 -0
  28. package/events/TaskAfterDeleteEvent.d.ts +6 -0
  29. package/events/TaskAfterDeleteEvent.js +10 -0
  30. package/events/TaskAfterDeleteEvent.js.map +1 -0
  31. package/events/TaskAfterUpdateEvent.d.ts +6 -0
  32. package/events/TaskAfterUpdateEvent.js +10 -0
  33. package/events/TaskAfterUpdateEvent.js.map +1 -0
  34. package/events/TaskBeforeCreateEvent.d.ts +6 -0
  35. package/events/TaskBeforeCreateEvent.js +10 -0
  36. package/events/TaskBeforeCreateEvent.js.map +1 -0
  37. package/events/TaskBeforeDeleteEvent.d.ts +6 -0
  38. package/events/TaskBeforeDeleteEvent.js +10 -0
  39. package/events/TaskBeforeDeleteEvent.js.map +1 -0
  40. package/events/TaskBeforeUpdateEvent.d.ts +6 -0
  41. package/events/TaskBeforeUpdateEvent.js +10 -0
  42. package/events/TaskBeforeUpdateEvent.js.map +1 -0
  43. package/events/abstractions.d.ts +53 -0
  44. package/events/abstractions.js +39 -0
  45. package/events/abstractions.js.map +1 -0
  46. package/events/index.d.ts +7 -0
  47. package/events/index.js +9 -0
  48. package/events/index.js.map +1 -0
  49. package/features/AbortTask/AbortTaskUseCase.d.ts +10 -0
  50. package/features/AbortTask/AbortTaskUseCase.js +11 -0
  51. package/features/AbortTask/AbortTaskUseCase.js.map +1 -0
  52. package/features/AbortTask/abstractions.d.ts +25 -0
  53. package/features/AbortTask/abstractions.js +4 -0
  54. package/features/AbortTask/abstractions.js.map +1 -0
  55. package/features/AbortTask/feature.d.ts +2 -0
  56. package/features/AbortTask/feature.js +11 -0
  57. package/features/AbortTask/feature.js.map +1 -0
  58. package/features/AbortTask/index.d.ts +2 -0
  59. package/features/AbortTask/index.js +4 -0
  60. package/features/AbortTask/index.js.map +1 -0
  61. package/features/GetTask/GetTaskUseCase.d.ts +9 -0
  62. package/features/GetTask/GetTaskUseCase.js +10 -0
  63. package/features/GetTask/GetTaskUseCase.js.map +1 -0
  64. package/features/GetTask/abstractions.d.ts +10 -0
  65. package/features/GetTask/abstractions.js +4 -0
  66. package/features/GetTask/abstractions.js.map +1 -0
  67. package/features/GetTask/feature.d.ts +2 -0
  68. package/features/GetTask/feature.js +11 -0
  69. package/features/GetTask/feature.js.map +1 -0
  70. package/features/GetTask/index.d.ts +2 -0
  71. package/features/GetTask/index.js +4 -0
  72. package/features/GetTask/index.js.map +1 -0
  73. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.d.ts +12 -0
  74. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js +25 -0
  75. package/features/GetTaskDefinition/GetTaskDefinitionUseCase.js.map +1 -0
  76. package/features/GetTaskDefinition/abstractions.d.ts +17 -0
  77. package/features/GetTaskDefinition/abstractions.js +4 -0
  78. package/features/GetTaskDefinition/abstractions.js.map +1 -0
  79. package/features/GetTaskDefinition/feature.d.ts +1 -0
  80. package/features/GetTaskDefinition/feature.js +10 -0
  81. package/features/GetTaskDefinition/feature.js.map +1 -0
  82. package/features/GetTaskDefinition/index.d.ts +2 -0
  83. package/features/GetTaskDefinition/index.js +4 -0
  84. package/features/GetTaskDefinition/index.js.map +1 -0
  85. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.d.ts +11 -0
  86. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js +18 -0
  87. package/features/ListTaskDefinitions/ListTaskDefinitionsUseCase.js.map +1 -0
  88. package/features/ListTaskDefinitions/abstractions.d.ts +9 -0
  89. package/features/ListTaskDefinitions/abstractions.js +4 -0
  90. package/features/ListTaskDefinitions/abstractions.js.map +1 -0
  91. package/features/ListTaskDefinitions/feature.d.ts +1 -0
  92. package/features/ListTaskDefinitions/feature.js +10 -0
  93. package/features/ListTaskDefinitions/feature.js.map +1 -0
  94. package/features/ListTaskDefinitions/index.d.ts +2 -0
  95. package/features/ListTaskDefinitions/index.js +4 -0
  96. package/features/ListTaskDefinitions/index.js.map +1 -0
  97. package/features/ListTasks/ListTasksUseCase.d.ts +9 -0
  98. package/features/ListTasks/ListTasksUseCase.js +10 -0
  99. package/features/ListTasks/ListTasksUseCase.js.map +1 -0
  100. package/features/ListTasks/abstractions.d.ts +13 -0
  101. package/features/ListTasks/abstractions.js +4 -0
  102. package/features/ListTasks/abstractions.js.map +1 -0
  103. package/features/ListTasks/feature.d.ts +2 -0
  104. package/features/ListTasks/feature.js +11 -0
  105. package/features/ListTasks/feature.js.map +1 -0
  106. package/features/ListTasks/index.d.ts +2 -0
  107. package/features/ListTasks/index.js +4 -0
  108. package/features/ListTasks/index.js.map +1 -0
  109. package/features/TaskController/TaskController.d.ts +49 -0
  110. package/features/TaskController/TaskController.js +71 -0
  111. package/features/TaskController/TaskController.js.map +1 -0
  112. package/features/TaskController/augmentation.d.ts +60 -0
  113. package/features/TaskController/augmentation.js +3 -0
  114. package/features/TaskController/augmentation.js.map +1 -0
  115. package/features/TaskController/index.d.ts +2 -0
  116. package/features/TaskController/index.js +7 -0
  117. package/features/TaskController/index.js.map +1 -0
  118. package/features/TaskExecutionContext/TaskExecutionContext.d.ts +24 -0
  119. package/features/TaskExecutionContext/TaskExecutionContext.js +50 -0
  120. package/features/TaskExecutionContext/TaskExecutionContext.js.map +1 -0
  121. package/features/TaskExecutionContext/abstractions.d.ts +26 -0
  122. package/features/TaskExecutionContext/abstractions.js +13 -0
  123. package/features/TaskExecutionContext/abstractions.js.map +1 -0
  124. package/features/TaskExecutionContext/feature.d.ts +1 -0
  125. package/features/TaskExecutionContext/feature.js +10 -0
  126. package/features/TaskExecutionContext/feature.js.map +1 -0
  127. package/features/TaskExecutionContext/index.d.ts +1 -0
  128. package/features/TaskExecutionContext/index.js +3 -0
  129. package/features/TaskExecutionContext/index.js.map +1 -0
  130. package/features/TriggerTask/TriggerTaskUseCase.d.ts +10 -0
  131. package/features/TriggerTask/TriggerTaskUseCase.js +11 -0
  132. package/features/TriggerTask/TriggerTaskUseCase.js.map +1 -0
  133. package/features/TriggerTask/abstractions.d.ts +28 -0
  134. package/features/TriggerTask/abstractions.js +4 -0
  135. package/features/TriggerTask/abstractions.js.map +1 -0
  136. package/features/TriggerTask/feature.d.ts +2 -0
  137. package/features/TriggerTask/feature.js +11 -0
  138. package/features/TriggerTask/feature.js.map +1 -0
  139. package/features/TriggerTask/index.d.ts +2 -0
  140. package/features/TriggerTask/index.js +4 -0
  141. package/features/TriggerTask/index.js.map +1 -0
  142. package/global.d.ts +1 -0
  143. package/global.js +3 -0
  144. package/global.js.map +1 -0
  145. package/graphql/checkPermissions.d.ts +1 -1
  146. package/graphql/checkPermissions.js +3 -9
  147. package/graphql/checkPermissions.js.map +1 -1
  148. package/graphql/index.d.ts +1 -1
  149. package/graphql/index.js +58 -61
  150. package/graphql/index.js.map +1 -1
  151. package/graphql/utils.d.ts +1 -1
  152. package/graphql/utils.js +8 -17
  153. package/graphql/utils.js.map +1 -1
  154. package/handler/index.d.ts +2 -2
  155. package/handler/index.js +33 -40
  156. package/handler/index.js.map +1 -1
  157. package/handler/register.js +5 -7
  158. package/handler/register.js.map +1 -1
  159. package/handler/types.d.ts +1 -3
  160. package/handler/types.js +1 -5
  161. package/handler/types.js.map +1 -1
  162. package/index.d.ts +5 -6
  163. package/index.js +5 -60
  164. package/index.js.map +1 -1
  165. package/package.json +22 -26
  166. package/plugins/TaskServicePlugin.d.ts +1 -2
  167. package/plugins/TaskServicePlugin.js +2 -9
  168. package/plugins/TaskServicePlugin.js.map +1 -1
  169. package/plugins/index.d.ts +1 -1
  170. package/plugins/index.js +1 -16
  171. package/plugins/index.js.map +1 -1
  172. package/response/DatabaseResponse.d.ts +3 -3
  173. package/response/DatabaseResponse.js +14 -20
  174. package/response/DatabaseResponse.js.map +1 -1
  175. package/response/Response.d.ts +4 -3
  176. package/response/Response.js +20 -31
  177. package/response/Response.js.map +1 -1
  178. package/response/ResponseAbortedResult.d.ts +3 -4
  179. package/response/ResponseAbortedResult.js +3 -11
  180. package/response/ResponseAbortedResult.js.map +1 -1
  181. package/response/ResponseContinueResult.d.ts +4 -5
  182. package/response/ResponseContinueResult.js +3 -11
  183. package/response/ResponseContinueResult.js.map +1 -1
  184. package/response/ResponseDoneResult.d.ts +4 -6
  185. package/response/ResponseDoneResult.js +3 -11
  186. package/response/ResponseDoneResult.js.map +1 -1
  187. package/response/ResponseErrorResult.d.ts +3 -4
  188. package/response/ResponseErrorResult.js +3 -11
  189. package/response/ResponseErrorResult.js.map +1 -1
  190. package/response/TaskResponse.d.ts +7 -6
  191. package/response/TaskResponse.js +5 -12
  192. package/response/TaskResponse.js.map +1 -1
  193. package/response/abstractions/Response.d.ts +7 -7
  194. package/response/abstractions/Response.js +1 -5
  195. package/response/abstractions/Response.js.map +1 -1
  196. package/response/abstractions/ResponseAbortedResult.d.ts +3 -3
  197. package/response/abstractions/ResponseAbortedResult.js +1 -5
  198. package/response/abstractions/ResponseAbortedResult.js.map +1 -1
  199. package/response/abstractions/ResponseBaseResult.d.ts +2 -3
  200. package/response/abstractions/ResponseBaseResult.js +1 -5
  201. package/response/abstractions/ResponseBaseResult.js.map +1 -1
  202. package/response/abstractions/ResponseContinueResult.d.ts +4 -4
  203. package/response/abstractions/ResponseContinueResult.js +1 -5
  204. package/response/abstractions/ResponseContinueResult.js.map +1 -1
  205. package/response/abstractions/ResponseDoneResult.d.ts +5 -6
  206. package/response/abstractions/ResponseDoneResult.js +1 -5
  207. package/response/abstractions/ResponseDoneResult.js.map +1 -1
  208. package/response/abstractions/ResponseErrorResult.d.ts +4 -5
  209. package/response/abstractions/ResponseErrorResult.js +1 -5
  210. package/response/abstractions/ResponseErrorResult.js.map +1 -1
  211. package/response/abstractions/TaskResponse.d.ts +8 -30
  212. package/response/abstractions/TaskResponse.js +1 -5
  213. package/response/abstractions/TaskResponse.js.map +1 -1
  214. package/response/abstractions/index.d.ts +7 -7
  215. package/response/abstractions/index.js +7 -82
  216. package/response/abstractions/index.js.map +1 -1
  217. package/response/index.d.ts +7 -7
  218. package/response/index.js +7 -82
  219. package/response/index.js.map +1 -1
  220. package/runner/TaskControl.d.ts +4 -4
  221. package/runner/TaskControl.js +61 -39
  222. package/runner/TaskControl.js.map +1 -1
  223. package/runner/TaskEventValidation.d.ts +2 -2
  224. package/runner/TaskEventValidation.js +11 -20
  225. package/runner/TaskEventValidation.js.map +1 -1
  226. package/runner/TaskManager.d.ts +7 -10
  227. package/runner/TaskManager.js +19 -39
  228. package/runner/TaskManager.js.map +1 -1
  229. package/runner/TaskManagerStore.d.ts +7 -7
  230. package/runner/TaskManagerStore.js +16 -25
  231. package/runner/TaskManagerStore.js.map +1 -1
  232. package/runner/TaskRunner.d.ts +5 -6
  233. package/runner/TaskRunner.js +9 -31
  234. package/runner/TaskRunner.js.map +1 -1
  235. package/runner/abstractions/TaskControl.d.ts +4 -4
  236. package/runner/abstractions/TaskControl.js +1 -5
  237. package/runner/abstractions/TaskControl.js.map +1 -1
  238. package/runner/abstractions/TaskEventValidation.d.ts +1 -1
  239. package/runner/abstractions/TaskEventValidation.js +1 -5
  240. package/runner/abstractions/TaskEventValidation.js.map +1 -1
  241. package/runner/abstractions/TaskManager.d.ts +4 -4
  242. package/runner/abstractions/TaskManager.js +1 -5
  243. package/runner/abstractions/TaskManager.js.map +1 -1
  244. package/runner/abstractions/TaskManagerStore.d.ts +11 -11
  245. package/runner/abstractions/TaskManagerStore.js +1 -5
  246. package/runner/abstractions/TaskManagerStore.js.map +1 -1
  247. package/runner/abstractions/TaskRunner.d.ts +3 -3
  248. package/runner/abstractions/TaskRunner.js +1 -5
  249. package/runner/abstractions/TaskRunner.js.map +1 -1
  250. package/runner/abstractions/index.d.ts +5 -5
  251. package/runner/abstractions/index.js +5 -60
  252. package/runner/abstractions/index.js.map +1 -1
  253. package/runner/index.d.ts +1 -1
  254. package/runner/index.js +1 -16
  255. package/runner/index.js.map +1 -1
  256. package/service/EventBridgeEventTransportPlugin.d.ts +4 -5
  257. package/service/EventBridgeEventTransportPlugin.js +8 -17
  258. package/service/EventBridgeEventTransportPlugin.js.map +1 -1
  259. package/service/StepFunctionServicePlugin.d.ts +4 -5
  260. package/service/StepFunctionServicePlugin.js +11 -21
  261. package/service/StepFunctionServicePlugin.js.map +1 -1
  262. package/service/createService.d.ts +2 -2
  263. package/service/createService.js +7 -18
  264. package/service/createService.js.map +1 -1
  265. package/service/index.d.ts +3 -3
  266. package/service/index.js +6 -27
  267. package/service/index.js.map +1 -1
  268. package/tasks/testingRunTask.d.ts +10 -1
  269. package/tasks/testingRunTask.js +13 -18
  270. package/tasks/testingRunTask.js.map +1 -1
  271. package/types.d.ts +32 -214
  272. package/types.js +5 -56
  273. package/types.js.map +1 -1
  274. package/utils/ObjectUpdater.js +4 -11
  275. package/utils/ObjectUpdater.js.map +1 -1
  276. package/utils/getErrorProperties.d.ts +1 -1
  277. package/utils/getErrorProperties.js +3 -10
  278. package/utils/getErrorProperties.js.map +1 -1
  279. package/utils/getObjectProperties.js +1 -8
  280. package/utils/getObjectProperties.js.map +1 -1
  281. package/utils/index.d.ts +3 -3
  282. package/utils/index.js +3 -38
  283. package/utils/index.js.map +1 -1
  284. package/crud/model.d.ts +0 -5
  285. package/crud/model.js +0 -216
  286. package/crud/model.js.map +0 -1
  287. package/crud/where.d.ts +0 -1
  288. package/crud/where.js +0 -33
  289. package/crud/where.js.map +0 -1
  290. package/task/index.d.ts +0 -2
  291. package/task/index.js +0 -29
  292. package/task/index.js.map +0 -1
  293. package/task/input.d.ts +0 -15
  294. package/task/input.js +0 -21
  295. package/task/input.js.map +0 -1
  296. package/task/plugin.d.ts +0 -36
  297. package/task/plugin.js +0 -106
  298. package/task/plugin.js.map +0 -1
@@ -1,22 +1,25 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createTaskCrud = void 0;
8
- var _error = _interopRequireDefault(require("@webiny/error"));
9
- var _types = require("../types");
10
- var _model = require("./model");
11
- var _handlerGraphql = require("@webiny/handler-graphql");
12
- var _pubsub = require("@webiny/pubsub");
13
- var _where = require("./where");
14
- var _utils = require("@webiny/utils");
15
- var _zod = _interopRequireDefault(require("zod"));
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
- } = (0, _utils.parseIdentifier)(id);
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 _zod.default.object({}).passthrough();
55
- } else if (schema instanceof _zod.default.ZodObject) {
57
+ return zod.object({}).passthrough();
58
+ } else if (schema instanceof zod.ZodObject) {
56
59
  return schema.passthrough();
57
- } else if (schema instanceof _zod.default.Schema) {
60
+ } else if (schema instanceof zod.Schema) {
58
61
  return schema;
59
62
  }
60
- return _zod.default.object(schema).passthrough();
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
- context,
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 (0, _utils.createZodError)(result.error);
84
+ throw createZodError(result.error);
84
85
  };
85
- const createTaskCrud = context => {
86
- const onTaskBeforeCreate = (0, _pubsub.createTopic)("tasks.onBeforeCreate");
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
- return await context.security.withoutAuthorization(async () => {
94
- const model = await context.cms.getModel(_model.WEBINY_TASK_MODEL_ID);
95
- if (model) {
96
- return model;
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
- throw new _error.default(`There is no model "${_model.WEBINY_TASK_MODEL_ID}".`);
96
+ return result.value;
99
97
  });
100
98
  };
101
99
  const getLogModel = async () => {
102
- return await context.security.withoutAuthorization(async () => {
103
- const model = await context.cms.getModel(_model.WEBINY_TASK_LOG_MODEL_ID);
104
- if (model) {
105
- return model;
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
- throw new _error.default(`There is no model "${_model.WEBINY_TASK_LOG_MODEL_ID}".`);
107
+ return result.value;
108
108
  });
109
109
  };
110
110
  const getTask = async id => {
111
- let entry;
112
- try {
113
- entry = await context.security.withoutAuthorization(async () => {
114
- const model = await getTaskModel();
115
- return await context.cms.getEntryById(model, createRevisionId(id));
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
- throw ex;
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 [items, meta] = await context.security.withoutAuthorization(async () => {
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
- return await context.cms.listLatestEntries(model, {
133
+ const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
134
+ const result = await listLatestEntries.execute(model, {
132
135
  ...params,
133
- where: (0, _where.remapWhere)(params?.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: items.map(item => convertToTask(item)),
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 _error.default(`There is no task definition.`, "TASK_DEFINITION_ERROR", {
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 entry = await context.security.withoutAuthorization(async () => {
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
- return await context.cms.createEntry(model, {
156
- ...data,
157
- iterations: 0,
158
- taskStatus: _types.TaskDataStatus.PENDING
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
- return convertToTask(entry);
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 entry = await context.security.withoutAuthorization(async () => {
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
- return await context.cms.updateEntry(model, createRevisionId(id), {
167
- ...data,
168
- savedOn: new Date().toISOString()
203
+ const updateEntry = context.container.resolve(UpdateEntryUseCase);
204
+ return updateEntry.execute(model, createRevisionId(id), {
205
+ values: {
206
+ ...data
207
+ }
169
208
  });
170
209
  });
171
- return convertToTask(entry);
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
- return context.security.withoutAuthorization(async () => {
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
- await context.cms.deleteEntry(model, createRevisionId(id));
177
- return true;
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 entry = await context.security.withoutAuthorization(async () => {
247
+ const identityContext = context.container.resolve(IdentityContext);
248
+ const result = await identityContext.withoutAuthorization(async () => {
182
249
  const model = await getLogModel();
183
- return await context.cms.createEntry(model, {
184
- ...data,
185
- task: task.id
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
- return convertToLog(entry);
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 entry = await context.security.withoutAuthorization(async () => {
264
+ const identityContext = context.container.resolve(IdentityContext);
265
+ const result = await identityContext.withoutAuthorization(async () => {
192
266
  const model = await getLogModel();
193
- return await context.cms.updateEntry(model, createRevisionId(id), data);
267
+ const updateEntry = context.container.resolve(UpdateEntryUseCase);
268
+ return updateEntry.execute(model, createRevisionId(id), {
269
+ values: data
270
+ });
194
271
  });
195
- return convertToLog(entry);
272
+ if (result.isFail()) {
273
+ throw new TaskLogNotFoundError();
274
+ }
275
+ return convertToLog(result.value);
196
276
  };
197
277
  const deleteLog = async id => {
198
- return context.security.withoutAuthorization(async () => {
278
+ const identityContext = context.container.resolve(IdentityContext);
279
+ const result = await identityContext.withoutAuthorization(async () => {
199
280
  const model = await getLogModel();
200
- await context.cms.deleteEntry(model, id);
201
- return true;
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 entry = await context.security.withoutAuthorization(async () => {
292
+ const result = await identityContext.withoutAuthorization(async () => {
207
293
  const model = await getLogModel();
208
- return await context.cms.getEntryById(model, id);
294
+ const getEntryById = context.container.resolve(GetEntryByIdUseCase);
295
+ return getEntryById.execute(model, id);
209
296
  });
210
- return convertToLog(entry);
297
+ if (result.isFail()) {
298
+ throw result.error;
299
+ }
300
+ return convertToLog(result.value);
211
301
  } catch (ex) {
212
- if (ex instanceof _handlerGraphql.NotFoundError) {
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 entry = await context.security.withoutAuthorization(async () => {
309
+ const identityContext = context.container.resolve(IdentityContext);
310
+ const entry = await identityContext.withoutAuthorization(async () => {
220
311
  const model = await getLogModel();
221
- const [items] = await context.cms.listLatestEntries(model, {
312
+ const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
313
+ const result = await listLatestEntries.execute(model, {
222
314
  where: {
223
- task: taskId
315
+ values: {
316
+ task: taskId
317
+ }
224
318
  },
225
319
  sort: ["createdOn_DESC"],
226
320
  limit: 1
227
321
  });
228
- const [item] = items;
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 _handlerGraphql.NotFoundError(`No existing latest log found for task "${taskId}".`);
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 [items, meta] = await context.security.withoutAuthorization(async () => {
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
- return await context.cms.listLatestEntries(model, {
343
+ const listLatestEntries = context.container.resolve(ListLatestEntriesUseCase);
344
+ const result = await listLatestEntries.execute(model, {
240
345
  ...params,
241
- where: (0, _where.remapWhere)(params.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: items.map(item => convertToLog(item)),
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
@@ -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;
@@ -1,29 +1,20 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
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 plugins = getTaskDefinitionPlugins(context);
15
- for (const plugin of plugins) {
16
- if (plugin.getTask().id === id) {
17
- return plugin.getTask();
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
- return getTaskDefinitionPlugins(context).map(plugin => plugin.getTask());
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":["_task","require","getTaskDefinitionPlugins","context","plugins","byType","TaskDefinitionPlugin","type","createDefinitionCrud","getDefinition","id","plugin","getTask","listDefinitions","map","exports"],"sources":["definition.tasks.ts"],"sourcesContent":["import type { Context, ITasksContextDefinitionObject } from \"~/types\";\nimport { TaskDefinitionPlugin } from \"~/task\";\n\nconst getTaskDefinitionPlugins = (context: Context) => {\n return context.plugins.byType<TaskDefinitionPlugin>(TaskDefinitionPlugin.type);\n};\n\nexport const createDefinitionCrud = (context: Context): ITasksContextDefinitionObject => {\n return {\n getDefinition: (id: string) => {\n const plugins = getTaskDefinitionPlugins(context);\n\n for (const plugin of plugins) {\n if (plugin.getTask().id === id) {\n return plugin.getTask();\n }\n }\n return null;\n },\n listDefinitions: () => {\n return getTaskDefinitionPlugins(context).map(plugin => plugin.getTask());\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,wBAAwB,GAAIC,OAAgB,IAAK;EACnD,OAAOA,OAAO,CAACC,OAAO,CAACC,MAAM,CAAuBC,0BAAoB,CAACC,IAAI,CAAC;AAClF,CAAC;AAEM,MAAMC,oBAAoB,GAAIL,OAAgB,IAAoC;EACrF,OAAO;IACHM,aAAa,EAAGC,EAAU,IAAK;MAC3B,MAAMN,OAAO,GAAGF,wBAAwB,CAACC,OAAO,CAAC;MAEjD,KAAK,MAAMQ,MAAM,IAAIP,OAAO,EAAE;QAC1B,IAAIO,MAAM,CAACC,OAAO,CAAC,CAAC,CAACF,EAAE,KAAKA,EAAE,EAAE;UAC5B,OAAOC,MAAM,CAACC,OAAO,CAAC,CAAC;QAC3B;MACJ;MACA,OAAO,IAAI;IACf,CAAC;IACDC,eAAe,EAAEA,CAAA,KAAM;MACnB,OAAOX,wBAAwB,CAACC,OAAO,CAAC,CAACW,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACC,OAAO,CAAC,CAAC,CAAC;IAC5E;EACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAP,oBAAA,GAAAA,oBAAA","ignoreList":[]}
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":[]}
@@ -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;