@webiny/api-apw 0.0.0-ee-vpcs.549378cf03

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 (316) hide show
  1. package/ApwChangeRequestNotification.d.ts +27 -0
  2. package/ApwChangeRequestNotification.js +40 -0
  3. package/ApwChangeRequestNotification.js.map +1 -0
  4. package/ApwCommentNotification.d.ts +27 -0
  5. package/ApwCommentNotification.js +40 -0
  6. package/ApwCommentNotification.js.map +1 -0
  7. package/ApwContentReviewNotification.d.ts +26 -0
  8. package/ApwContentReviewNotification.js +40 -0
  9. package/ApwContentReviewNotification.js.map +1 -0
  10. package/ApwContentUrlPlugin.d.ts +19 -0
  11. package/ApwContentUrlPlugin.js +40 -0
  12. package/ApwContentUrlPlugin.js.map +1 -0
  13. package/ContentApwSettingsPlugin.d.ts +10 -0
  14. package/ContentApwSettingsPlugin.js +17 -0
  15. package/ContentApwSettingsPlugin.js.map +1 -0
  16. package/LICENSE +21 -0
  17. package/README.md +34 -0
  18. package/crud/createChangeRequestMethods.d.ts +2 -0
  19. package/crud/createChangeRequestMethods.js +98 -0
  20. package/crud/createChangeRequestMethods.js.map +1 -0
  21. package/crud/createCommentMethods.d.ts +2 -0
  22. package/crud/createCommentMethods.js +99 -0
  23. package/crud/createCommentMethods.js.map +1 -0
  24. package/crud/createContentReviewMethods.d.ts +10 -0
  25. package/crud/createContentReviewMethods.js +562 -0
  26. package/crud/createContentReviewMethods.js.map +1 -0
  27. package/crud/createReviewerMethods.d.ts +2 -0
  28. package/crud/createReviewerMethods.js +99 -0
  29. package/crud/createReviewerMethods.js.map +1 -0
  30. package/crud/createWorkflowMethods.d.ts +2 -0
  31. package/crud/createWorkflowMethods.js +118 -0
  32. package/crud/createWorkflowMethods.js.map +1 -0
  33. package/crud/index.d.ts +2 -0
  34. package/crud/index.js +96 -0
  35. package/crud/index.js.map +1 -0
  36. package/crud/utils.d.ts +21 -0
  37. package/crud/utils.js +138 -0
  38. package/crud/utils.js.map +1 -0
  39. package/index.d.ts +4 -0
  40. package/index.js +38 -0
  41. package/index.js.map +1 -0
  42. package/package.json +76 -0
  43. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.d.ts +10 -0
  44. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +51 -0
  45. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -0
  46. package/plugins/cms/README.md +49 -0
  47. package/plugins/cms/apwEntryPlugins.d.ts +8 -0
  48. package/plugins/cms/apwEntryPlugins.js +46 -0
  49. package/plugins/cms/apwEntryPlugins.js.map +1 -0
  50. package/plugins/cms/index.d.ts +12 -0
  51. package/plugins/cms/index.js +45 -0
  52. package/plugins/cms/index.js.map +1 -0
  53. package/plugins/cms/linkContentReviewToEntry.d.ts +8 -0
  54. package/plugins/cms/linkContentReviewToEntry.js +108 -0
  55. package/plugins/cms/linkContentReviewToEntry.js.map +1 -0
  56. package/plugins/cms/linkWorkflowToEntry.d.ts +8 -0
  57. package/plugins/cms/linkWorkflowToEntry.js +166 -0
  58. package/plugins/cms/linkWorkflowToEntry.js.map +1 -0
  59. package/plugins/cms/notifications/changeRequestNotification.d.ts +1 -0
  60. package/plugins/cms/notifications/changeRequestNotification.js +35 -0
  61. package/plugins/cms/notifications/changeRequestNotification.js.map +1 -0
  62. package/plugins/cms/notifications/commentNotification.d.ts +1 -0
  63. package/plugins/cms/notifications/commentNotification.js +35 -0
  64. package/plugins/cms/notifications/commentNotification.js.map +1 -0
  65. package/plugins/cms/notifications/contentReviewNotification.d.ts +1 -0
  66. package/plugins/cms/notifications/contentReviewNotification.js +35 -0
  67. package/plugins/cms/notifications/contentReviewNotification.js.map +1 -0
  68. package/plugins/cms/notifications/contentUrl.d.ts +8 -0
  69. package/plugins/cms/notifications/contentUrl.js +60 -0
  70. package/plugins/cms/notifications/contentUrl.js.map +1 -0
  71. package/plugins/cms/triggerContentReview.d.ts +8 -0
  72. package/plugins/cms/triggerContentReview.js +59 -0
  73. package/plugins/cms/triggerContentReview.js.map +1 -0
  74. package/plugins/cms/updateContentReviewStatus.d.ts +10 -0
  75. package/plugins/cms/updateContentReviewStatus.js +97 -0
  76. package/plugins/cms/updateContentReviewStatus.js.map +1 -0
  77. package/plugins/cms/utils.d.ts +27 -0
  78. package/plugins/cms/utils.js +207 -0
  79. package/plugins/cms/utils.js.map +1 -0
  80. package/plugins/context.d.ts +5 -0
  81. package/plugins/context.js +146 -0
  82. package/plugins/context.js.map +1 -0
  83. package/plugins/graphql/changeRequest.gql.d.ts +4 -0
  84. package/plugins/graphql/changeRequest.gql.js +155 -0
  85. package/plugins/graphql/changeRequest.gql.js.map +1 -0
  86. package/plugins/graphql/comment.gql.d.ts +4 -0
  87. package/plugins/graphql/comment.gql.js +160 -0
  88. package/plugins/graphql/comment.gql.js.map +1 -0
  89. package/plugins/graphql/contentReview.gql.d.ts +4 -0
  90. package/plugins/graphql/contentReview.gql.js +382 -0
  91. package/plugins/graphql/contentReview.gql.js.map +1 -0
  92. package/plugins/graphql/reviewer.gql.d.ts +4 -0
  93. package/plugins/graphql/reviewer.gql.js +116 -0
  94. package/plugins/graphql/reviewer.gql.js.map +1 -0
  95. package/plugins/graphql/workflow.gql.d.ts +4 -0
  96. package/plugins/graphql/workflow.gql.js +205 -0
  97. package/plugins/graphql/workflow.gql.js.map +1 -0
  98. package/plugins/graphql.d.ts +4 -0
  99. package/plugins/graphql.js +95 -0
  100. package/plugins/graphql.js.map +1 -0
  101. package/plugins/hooks/createReviewerFromIdentity.d.ts +2 -0
  102. package/plugins/hooks/createReviewerFromIdentity.js +82 -0
  103. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -0
  104. package/plugins/hooks/deleteChangeRequestsAfterContentReview.d.ts +2 -0
  105. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +67 -0
  106. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -0
  107. package/plugins/hooks/deleteCommentsAfterChangeRequest.d.ts +2 -0
  108. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +59 -0
  109. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -0
  110. package/plugins/hooks/index.d.ts +3 -0
  111. package/plugins/hooks/index.js +74 -0
  112. package/plugins/hooks/index.js.map +1 -0
  113. package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -0
  114. package/plugins/hooks/initializeContentReviewSteps.js +86 -0
  115. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -0
  116. package/plugins/hooks/initializeNotifications.d.ts +2 -0
  117. package/plugins/hooks/initializeNotifications.js +20 -0
  118. package/plugins/hooks/initializeNotifications.js.map +1 -0
  119. package/plugins/hooks/listContentReviews.d.ts +10 -0
  120. package/plugins/hooks/listContentReviews.js +68 -0
  121. package/plugins/hooks/listContentReviews.js.map +1 -0
  122. package/plugins/hooks/notifications/appUrl.d.ts +2 -0
  123. package/plugins/hooks/notifications/appUrl.js +22 -0
  124. package/plugins/hooks/notifications/appUrl.js.map +1 -0
  125. package/plugins/hooks/notifications/changeRequestAfterCreate.d.ts +2 -0
  126. package/plugins/hooks/notifications/changeRequestAfterCreate.js +144 -0
  127. package/plugins/hooks/notifications/changeRequestAfterCreate.js.map +1 -0
  128. package/plugins/hooks/notifications/changeRequestUrl.d.ts +8 -0
  129. package/plugins/hooks/notifications/changeRequestUrl.js +31 -0
  130. package/plugins/hooks/notifications/changeRequestUrl.js.map +1 -0
  131. package/plugins/hooks/notifications/commentAfterCreate.d.ts +2 -0
  132. package/plugins/hooks/notifications/commentAfterCreate.js +157 -0
  133. package/plugins/hooks/notifications/commentAfterCreate.js.map +1 -0
  134. package/plugins/hooks/notifications/commentUrl.d.ts +8 -0
  135. package/plugins/hooks/notifications/commentUrl.js +31 -0
  136. package/plugins/hooks/notifications/commentUrl.js.map +1 -0
  137. package/plugins/hooks/notifications/contentReviewAfterCreate.d.ts +2 -0
  138. package/plugins/hooks/notifications/contentReviewAfterCreate.js +122 -0
  139. package/plugins/hooks/notifications/contentReviewAfterCreate.js.map +1 -0
  140. package/plugins/hooks/notifications/contentReviewUrl.d.ts +7 -0
  141. package/plugins/hooks/notifications/contentReviewUrl.js +30 -0
  142. package/plugins/hooks/notifications/contentReviewUrl.js.map +1 -0
  143. package/plugins/hooks/notifications/contentUrl.d.ts +7 -0
  144. package/plugins/hooks/notifications/contentUrl.js +29 -0
  145. package/plugins/hooks/notifications/contentUrl.js.map +1 -0
  146. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.d.ts +11 -0
  147. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +25 -0
  148. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js.map +1 -0
  149. package/plugins/hooks/notifications/lastCommentNotificationPlugin.d.ts +11 -0
  150. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +25 -0
  151. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js.map +1 -0
  152. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.d.ts +11 -0
  153. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +25 -0
  154. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js.map +1 -0
  155. package/plugins/hooks/notifications/reviewers.d.ts +15 -0
  156. package/plugins/hooks/notifications/reviewers.js +51 -0
  157. package/plugins/hooks/notifications/reviewers.js.map +1 -0
  158. package/plugins/hooks/notifications/sendChangeRequestNotification.d.ts +2 -0
  159. package/plugins/hooks/notifications/sendChangeRequestNotification.js +52 -0
  160. package/plugins/hooks/notifications/sendChangeRequestNotification.js.map +1 -0
  161. package/plugins/hooks/notifications/sendCommentNotification.d.ts +2 -0
  162. package/plugins/hooks/notifications/sendCommentNotification.js +52 -0
  163. package/plugins/hooks/notifications/sendCommentNotification.js.map +1 -0
  164. package/plugins/hooks/notifications/sendContentReviewNotification.d.ts +2 -0
  165. package/plugins/hooks/notifications/sendContentReviewNotification.js +52 -0
  166. package/plugins/hooks/notifications/sendContentReviewNotification.js.map +1 -0
  167. package/plugins/hooks/updatePendingChangeRequests.d.ts +2 -0
  168. package/plugins/hooks/updatePendingChangeRequests.js +94 -0
  169. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -0
  170. package/plugins/hooks/updateTotalComments.d.ts +3 -0
  171. package/plugins/hooks/updateTotalComments.js +153 -0
  172. package/plugins/hooks/updateTotalComments.js.map +1 -0
  173. package/plugins/hooks/validateChangeRequest.d.ts +2 -0
  174. package/plugins/hooks/validateChangeRequest.js +89 -0
  175. package/plugins/hooks/validateChangeRequest.js.map +1 -0
  176. package/plugins/hooks/validateComment.d.ts +2 -0
  177. package/plugins/hooks/validateComment.js +57 -0
  178. package/plugins/hooks/validateComment.js.map +1 -0
  179. package/plugins/hooks/validateContentReview.d.ts +2 -0
  180. package/plugins/hooks/validateContentReview.js +38 -0
  181. package/plugins/hooks/validateContentReview.js.map +1 -0
  182. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.d.ts +9 -0
  183. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +51 -0
  184. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +1 -0
  185. package/plugins/pageBuilder/apwContentPagePlugins.d.ts +3 -0
  186. package/plugins/pageBuilder/apwContentPagePlugins.js +30 -0
  187. package/plugins/pageBuilder/apwContentPagePlugins.js.map +1 -0
  188. package/plugins/pageBuilder/extendPbPageSettingsSchema.d.ts +3 -0
  189. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +25 -0
  190. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +1 -0
  191. package/plugins/pageBuilder/index.d.ts +11 -0
  192. package/plugins/pageBuilder/index.js +53 -0
  193. package/plugins/pageBuilder/index.js.map +1 -0
  194. package/plugins/pageBuilder/linkContentReviewToPage.d.ts +8 -0
  195. package/plugins/pageBuilder/linkContentReviewToPage.js +105 -0
  196. package/plugins/pageBuilder/linkContentReviewToPage.js.map +1 -0
  197. package/plugins/pageBuilder/linkWorkflowToPage.d.ts +8 -0
  198. package/plugins/pageBuilder/linkWorkflowToPage.js +194 -0
  199. package/plugins/pageBuilder/linkWorkflowToPage.js.map +1 -0
  200. package/plugins/pageBuilder/notifications/changeRequestNotification.d.ts +1 -0
  201. package/plugins/pageBuilder/notifications/changeRequestNotification.js +35 -0
  202. package/plugins/pageBuilder/notifications/changeRequestNotification.js.map +1 -0
  203. package/plugins/pageBuilder/notifications/commentNotification.d.ts +1 -0
  204. package/plugins/pageBuilder/notifications/commentNotification.js +35 -0
  205. package/plugins/pageBuilder/notifications/commentNotification.js.map +1 -0
  206. package/plugins/pageBuilder/notifications/contentReviewNotification.d.ts +1 -0
  207. package/plugins/pageBuilder/notifications/contentReviewNotification.js +35 -0
  208. package/plugins/pageBuilder/notifications/contentReviewNotification.js.map +1 -0
  209. package/plugins/pageBuilder/notifications/contentUrl.d.ts +1 -0
  210. package/plugins/pageBuilder/notifications/contentUrl.js +53 -0
  211. package/plugins/pageBuilder/notifications/contentUrl.js.map +1 -0
  212. package/plugins/pageBuilder/triggerContentReview.d.ts +8 -0
  213. package/plugins/pageBuilder/triggerContentReview.js +50 -0
  214. package/plugins/pageBuilder/triggerContentReview.js.map +1 -0
  215. package/plugins/pageBuilder/updateContentReviewStatus.d.ts +10 -0
  216. package/plugins/pageBuilder/updateContentReviewStatus.js +79 -0
  217. package/plugins/pageBuilder/updateContentReviewStatus.js.map +1 -0
  218. package/plugins/pageBuilder/utils.d.ts +22 -0
  219. package/plugins/pageBuilder/utils.js +184 -0
  220. package/plugins/pageBuilder/utils.js.map +1 -0
  221. package/plugins/utils.d.ts +35 -0
  222. package/plugins/utils.js +187 -0
  223. package/plugins/utils.js.map +1 -0
  224. package/scheduler/createScheduleActionMethods.d.ts +2 -0
  225. package/scheduler/createScheduleActionMethods.js +149 -0
  226. package/scheduler/createScheduleActionMethods.js.map +1 -0
  227. package/scheduler/handlers/executeAction/index.d.ts +13 -0
  228. package/scheduler/handlers/executeAction/index.js +172 -0
  229. package/scheduler/handlers/executeAction/index.js.map +1 -0
  230. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +13 -0
  231. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +17 -0
  232. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -0
  233. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +11 -0
  234. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +126 -0
  235. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -0
  236. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +11 -0
  237. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +163 -0
  238. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -0
  239. package/scheduler/handlers/executeAction/security.d.ts +4 -0
  240. package/scheduler/handlers/executeAction/security.js +68 -0
  241. package/scheduler/handlers/executeAction/security.js.map +1 -0
  242. package/scheduler/handlers/scheduleAction/index.d.ts +22 -0
  243. package/scheduler/handlers/scheduleAction/index.js +164 -0
  244. package/scheduler/handlers/scheduleAction/index.js.map +1 -0
  245. package/scheduler/handlers/scheduleAction/scheduleAction.utils.d.ts +24 -0
  246. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +172 -0
  247. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -0
  248. package/scheduler/handlers/utils.d.ts +33 -0
  249. package/scheduler/handlers/utils.js +168 -0
  250. package/scheduler/handlers/utils.js.map +1 -0
  251. package/scheduler/index.d.ts +2 -0
  252. package/scheduler/index.js +27 -0
  253. package/scheduler/index.js.map +1 -0
  254. package/scheduler/types.d.ts +171 -0
  255. package/scheduler/types.js +34 -0
  256. package/scheduler/types.js.map +1 -0
  257. package/storageOperations/changeRequestStorageOperations.d.ts +3 -0
  258. package/storageOperations/changeRequestStorageOperations.js +122 -0
  259. package/storageOperations/changeRequestStorageOperations.js.map +1 -0
  260. package/storageOperations/commentStorageOperations.d.ts +3 -0
  261. package/storageOperations/commentStorageOperations.js +138 -0
  262. package/storageOperations/commentStorageOperations.js.map +1 -0
  263. package/storageOperations/contentReviewStorageOperations.d.ts +3 -0
  264. package/storageOperations/contentReviewStorageOperations.js +93 -0
  265. package/storageOperations/contentReviewStorageOperations.js.map +1 -0
  266. package/storageOperations/index.d.ts +15 -0
  267. package/storageOperations/index.js +48 -0
  268. package/storageOperations/index.js.map +1 -0
  269. package/storageOperations/models/changeRequest.model.d.ts +3 -0
  270. package/storageOperations/models/changeRequest.model.js +59 -0
  271. package/storageOperations/models/changeRequest.model.js.map +1 -0
  272. package/storageOperations/models/comment.model.d.ts +7 -0
  273. package/storageOperations/models/comment.model.js +60 -0
  274. package/storageOperations/models/comment.model.js.map +1 -0
  275. package/storageOperations/models/contentModelPluginFactory.d.ts +15 -0
  276. package/storageOperations/models/contentModelPluginFactory.js +28 -0
  277. package/storageOperations/models/contentModelPluginFactory.js.map +1 -0
  278. package/storageOperations/models/contentReview.model.d.ts +7 -0
  279. package/storageOperations/models/contentReview.model.js +258 -0
  280. package/storageOperations/models/contentReview.model.js.map +1 -0
  281. package/storageOperations/models/index.d.ts +2 -0
  282. package/storageOperations/models/index.js +115 -0
  283. package/storageOperations/models/index.js.map +1 -0
  284. package/storageOperations/models/reviewer.model.d.ts +3 -0
  285. package/storageOperations/models/reviewer.model.js +71 -0
  286. package/storageOperations/models/reviewer.model.js.map +1 -0
  287. package/storageOperations/models/utils.d.ts +3 -0
  288. package/storageOperations/models/utils.js +37 -0
  289. package/storageOperations/models/utils.js.map +1 -0
  290. package/storageOperations/models/workflow.model.d.ts +12 -0
  291. package/storageOperations/models/workflow.model.js +208 -0
  292. package/storageOperations/models/workflow.model.js.map +1 -0
  293. package/storageOperations/reviewerStorageOperations.d.ts +3 -0
  294. package/storageOperations/reviewerStorageOperations.js +97 -0
  295. package/storageOperations/reviewerStorageOperations.js.map +1 -0
  296. package/storageOperations/types.d.ts +34 -0
  297. package/storageOperations/types.js +5 -0
  298. package/storageOperations/types.js.map +1 -0
  299. package/storageOperations/workflowStorageOperations.d.ts +3 -0
  300. package/storageOperations/workflowStorageOperations.js +111 -0
  301. package/storageOperations/workflowStorageOperations.js.map +1 -0
  302. package/types.d.ts +752 -0
  303. package/types.js +69 -0
  304. package/types.js.map +1 -0
  305. package/utils/contentApwSettingsPlugin.d.ts +9 -0
  306. package/utils/contentApwSettingsPlugin.js +26 -0
  307. package/utils/contentApwSettingsPlugin.js.map +1 -0
  308. package/utils/errors.d.ts +16 -0
  309. package/utils/errors.js +75 -0
  310. package/utils/errors.js.map +1 -0
  311. package/utils/fieldResolver.d.ts +16 -0
  312. package/utils/fieldResolver.js +54 -0
  313. package/utils/fieldResolver.js.map +1 -0
  314. package/utils/resolve.d.ts +3 -0
  315. package/utils/resolve.js +18 -0
  316. package/utils/resolve.js.map +1 -0
@@ -0,0 +1,562 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createContentReviewMethods = createContentReviewMethods;
9
+
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _get = _interopRequireDefault(require("lodash/get"));
13
+
14
+ var _pubsub = require("@webiny/pubsub");
15
+
16
+ var _error = _interopRequireDefault(require("@webiny/error"));
17
+
18
+ var _types = require("../types");
19
+
20
+ var _utils = require("../plugins/utils");
21
+
22
+ var _errors = require("../utils/errors");
23
+
24
+ var _types2 = require("../scheduler/types");
25
+
26
+ var _utils2 = require("./utils");
27
+
28
+ var _contentApwSettingsPlugin = require("../utils/contentApwSettingsPlugin");
29
+
30
+ function createContentReviewMethods(params) {
31
+ const {
32
+ getIdentity,
33
+ storageOperations,
34
+ getReviewer,
35
+ getContentGetter,
36
+ getContentPublisher,
37
+ getContentUnPublisher,
38
+ scheduler,
39
+ handlerClient,
40
+ getTenant,
41
+ getLocale,
42
+ plugins
43
+ } = params; // create
44
+
45
+ const onContentReviewBeforeCreate = (0, _pubsub.createTopic)("apw.onContentReviewBeforeCreate");
46
+ const onContentReviewAfterCreate = (0, _pubsub.createTopic)("apw.onContentReviewAfterCreate"); // update
47
+
48
+ const onContentReviewBeforeUpdate = (0, _pubsub.createTopic)("apw.onContentReviewBeforeUpdate");
49
+ const onContentReviewAfterUpdate = (0, _pubsub.createTopic)("apw.onContentReviewAfterUpdate"); // delete
50
+
51
+ const onContentReviewBeforeDelete = (0, _pubsub.createTopic)("apw.onContentReviewBeforeDelete");
52
+ const onContentReviewAfterDelete = (0, _pubsub.createTopic)("apw.onContentReviewAfterDelete"); // list
53
+
54
+ const onContentReviewBeforeList = (0, _pubsub.createTopic)("apw.onContentReviewBeforeList");
55
+ return {
56
+ /**
57
+ * Lifecycle events
58
+ */
59
+ onContentReviewBeforeCreate,
60
+ onContentReviewAfterCreate,
61
+ onContentReviewBeforeUpdate,
62
+ onContentReviewAfterUpdate,
63
+ onContentReviewBeforeDelete,
64
+ onContentReviewAfterDelete,
65
+ onContentReviewBeforeList,
66
+
67
+ async get(id) {
68
+ return storageOperations.getContentReview({
69
+ id
70
+ });
71
+ },
72
+
73
+ async list(params) {
74
+ const where = params.where || {};
75
+ await onContentReviewBeforeList.publish({
76
+ where
77
+ });
78
+
79
+ if (where.reviewStatus === "requiresMyAttention") {
80
+ return (0, _utils2.filterContentReviewsByRequiresMyAttention)({
81
+ listParams: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
82
+ where
83
+ }),
84
+ listContentReviews: storageOperations.listContentReviews,
85
+ getReviewer,
86
+ getIdentity
87
+ });
88
+ }
89
+
90
+ return storageOperations.listContentReviews((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
91
+ where
92
+ }));
93
+ },
94
+
95
+ async create(data) {
96
+ const input = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
97
+ reviewStatus: _types.ApwContentReviewStatus.UNDER_REVIEW
98
+ });
99
+ await onContentReviewBeforeCreate.publish({
100
+ input
101
+ });
102
+ const contentReview = await storageOperations.createContentReview({
103
+ data: input
104
+ });
105
+ await onContentReviewAfterCreate.publish({
106
+ contentReview
107
+ });
108
+ return contentReview;
109
+ },
110
+
111
+ async update(id, data) {
112
+ const original = await storageOperations.getContentReview({
113
+ id
114
+ });
115
+ await onContentReviewBeforeUpdate.publish({
116
+ original,
117
+ input: {
118
+ id,
119
+ data
120
+ }
121
+ });
122
+ const contentReview = await storageOperations.updateContentReview({
123
+ id,
124
+ data
125
+ });
126
+ await onContentReviewAfterUpdate.publish({
127
+ original,
128
+ input: {
129
+ id,
130
+ data
131
+ },
132
+ contentReview
133
+ });
134
+ return contentReview;
135
+ },
136
+
137
+ async delete(id) {
138
+ const contentReview = await storageOperations.getContentReview({
139
+ id
140
+ });
141
+ await onContentReviewBeforeDelete.publish({
142
+ contentReview
143
+ });
144
+ await storageOperations.deleteContentReview({
145
+ id
146
+ });
147
+ await onContentReviewAfterDelete.publish({
148
+ contentReview
149
+ });
150
+ return true;
151
+ },
152
+
153
+ async provideSignOff(id, stepId) {
154
+ const entry = await this.get(id);
155
+ const {
156
+ steps,
157
+ reviewStatus
158
+ } = entry;
159
+ const stepIndex = steps.findIndex(step => step.id === stepId);
160
+ const currentStep = steps[stepIndex];
161
+ const previousStep = steps[stepIndex - 1];
162
+ const identity = getIdentity();
163
+ const hasPermission = await (0, _utils.hasReviewer)({
164
+ getReviewer,
165
+ identity,
166
+ step: currentStep
167
+ });
168
+ /**
169
+ * Check whether the sign-off is requested by a reviewer.
170
+ */
171
+
172
+ if (!hasPermission) {
173
+ throw new _errors.NotAuthorizedError({
174
+ entry,
175
+ input: {
176
+ id,
177
+ step: stepId
178
+ }
179
+ });
180
+ }
181
+ /**
182
+ * Don't allow sign off, if previous step is of "mandatory_blocking" type and undone.
183
+ */
184
+
185
+
186
+ if (previousStep && previousStep.status !== _types.ApwContentReviewStepStatus.DONE && previousStep.type === _types.ApwWorkflowStepTypes.MANDATORY_BLOCKING) {
187
+ throw new _errors.StepMissingError({
188
+ entry,
189
+ input: {
190
+ id,
191
+ step: stepId
192
+ }
193
+ });
194
+ }
195
+ /**
196
+ * Don't allow sign off, if there are pending change requests.
197
+ */
198
+
199
+
200
+ if (currentStep.pendingChangeRequests > 0) {
201
+ throw new _errors.PendingChangeRequestsError({
202
+ entry,
203
+ input: {
204
+ id,
205
+ step: stepId
206
+ }
207
+ });
208
+ }
209
+ /**
210
+ * Don't allow sign off, if current step is not in "active" state.
211
+ */
212
+
213
+
214
+ if (currentStep.status !== _types.ApwContentReviewStepStatus.ACTIVE) {
215
+ throw new _errors.StepInActiveError({
216
+ entry,
217
+ input: {
218
+ id,
219
+ step: stepId
220
+ }
221
+ });
222
+ }
223
+
224
+ let previousStepStatus;
225
+ /*
226
+ * Provide sign-off for give step.
227
+ */
228
+
229
+ const updatedSteps = steps.map((step, index) => {
230
+ if (index === stepIndex) {
231
+ previousStepStatus = _types.ApwContentReviewStepStatus.DONE;
232
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, step), {}, {
233
+ status: _types.ApwContentReviewStepStatus.DONE,
234
+ signOffProvidedOn: new Date().toISOString(),
235
+ signOffProvidedBy: identity
236
+ });
237
+ }
238
+ /**
239
+ * Update next steps status based on type.
240
+ */
241
+
242
+
243
+ if (index > stepIndex) {
244
+ const previousStep = steps[index - 1];
245
+ previousStepStatus = (0, _utils.getNextStepStatus)(previousStep.type, previousStepStatus);
246
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, step), {}, {
247
+ status: previousStepStatus
248
+ });
249
+ }
250
+
251
+ return step;
252
+ });
253
+ /**
254
+ * Check for pending steps
255
+ */
256
+
257
+ let newStatus = reviewStatus;
258
+ const pendingRequiredSteps = (0, _utils2.getPendingRequiredSteps)(updatedSteps, step => typeof step.signOffProvidedOn !== "string");
259
+ /**
260
+ * If there are no required steps that are pending, set the status to "READY_TO_BE_PUBLISHED".
261
+ */
262
+
263
+ if (pendingRequiredSteps.length === 0) {
264
+ newStatus = _types.ApwContentReviewStatus.READY_TO_BE_PUBLISHED;
265
+ }
266
+ /**
267
+ * Save updated steps.
268
+ */
269
+
270
+
271
+ await this.update(id, {
272
+ steps: updatedSteps,
273
+ reviewStatus: newStatus
274
+ });
275
+ return true;
276
+ },
277
+
278
+ async retractSignOff(id, stepId) {
279
+ const entry = await this.get(id);
280
+ const {
281
+ steps,
282
+ reviewStatus
283
+ } = entry;
284
+ const stepIndex = steps.findIndex(step => step.id === stepId);
285
+ const currentStep = steps[stepIndex];
286
+ const identity = getIdentity();
287
+ const hasPermission = await (0, _utils.hasReviewer)({
288
+ getReviewer,
289
+ identity,
290
+ step: currentStep
291
+ });
292
+ /**
293
+ * Check whether the retract sign-off is requested by a reviewer.
294
+ */
295
+
296
+ if (!hasPermission) {
297
+ throw new _errors.NotAuthorizedError({
298
+ entry,
299
+ input: {
300
+ id,
301
+ step: stepId
302
+ }
303
+ });
304
+ }
305
+ /**
306
+ * Don't allow, if step in not "done" i.e. no sign-off was provided for it.
307
+ */
308
+
309
+
310
+ if (currentStep.status !== _types.ApwContentReviewStepStatus.DONE) {
311
+ throw new _errors.NoSignOffProvidedError({
312
+ entry,
313
+ input: {
314
+ id,
315
+ step: stepId
316
+ }
317
+ });
318
+ }
319
+
320
+ let previousStepStatus;
321
+ /*
322
+ * Retract sign-off for give step.
323
+ */
324
+
325
+ const updatedSteps = steps.map((step, index) => {
326
+ if (index === stepIndex) {
327
+ previousStepStatus = _types.ApwContentReviewStepStatus.ACTIVE;
328
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, step), {}, {
329
+ status: previousStepStatus,
330
+ signOffProvidedOn: null,
331
+ signOffProvidedBy: null
332
+ });
333
+ }
334
+ /**
335
+ * Set next step status as "inactive".
336
+ */
337
+
338
+
339
+ if (index > stepIndex) {
340
+ const previousStep = steps[index - 1];
341
+ previousStepStatus = (0, _utils.getNextStepStatus)(previousStep.type, previousStepStatus);
342
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, step), {}, {
343
+ status: previousStepStatus
344
+ });
345
+ }
346
+
347
+ return step;
348
+ });
349
+ /**
350
+ * Check for pending steps
351
+ */
352
+
353
+ let newStatus = reviewStatus;
354
+ const pendingRequiredSteps = (0, _utils2.getPendingRequiredSteps)(updatedSteps, step => step.signOffProvidedOn === null);
355
+ /**
356
+ * If there are required steps that are pending, set the status to "UNDER_REVIEW".
357
+ */
358
+
359
+ if (pendingRequiredSteps.length !== 0) {
360
+ newStatus = _types.ApwContentReviewStatus.UNDER_REVIEW;
361
+ }
362
+
363
+ await this.update(id, {
364
+ steps: updatedSteps,
365
+ reviewStatus: newStatus
366
+ });
367
+ return true;
368
+ },
369
+
370
+ async isReviewRequired(data) {
371
+ const contentGetter = getContentGetter(data.type);
372
+ const content = await contentGetter(data.id, data.settings);
373
+ let isReviewRequired = false;
374
+ let contentReviewId = null;
375
+ const contentApwSettingsPlugin = (0, _contentApwSettingsPlugin.getContentApwSettingsPlugin)({
376
+ plugins,
377
+ type: data.type
378
+ });
379
+
380
+ if (contentApwSettingsPlugin) {
381
+ contentReviewId = contentApwSettingsPlugin.getContentReviewId(content);
382
+ const workflowId = contentApwSettingsPlugin.getWorkflowId(content);
383
+
384
+ if (workflowId) {
385
+ isReviewRequired = true;
386
+ }
387
+ }
388
+
389
+ return {
390
+ isReviewRequired,
391
+ contentReviewId
392
+ };
393
+ },
394
+
395
+ async publishContent(id, datetime) {
396
+ var _content$settings;
397
+
398
+ const {
399
+ content,
400
+ reviewStatus
401
+ } = await this.get(id);
402
+ const identity = getIdentity();
403
+
404
+ if (reviewStatus !== _types.ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {
405
+ throw new _error.default({
406
+ message: `Cannot publish content because it is not yet ready to be published.`,
407
+ code: "NOT_READY_TO_BE_PUBLISHED",
408
+ data: {
409
+ id,
410
+ status: reviewStatus,
411
+ content
412
+ }
413
+ });
414
+ }
415
+
416
+ (0, _utils2.checkValidDateTime)(datetime);
417
+ /**
418
+ * If datetime is present it means we're scheduling this action.
419
+ * And if not, we are publishing immediately.
420
+ */
421
+
422
+ if (!datetime) {
423
+ const contentPublisher = getContentPublisher(content.type);
424
+ await contentPublisher(content.id, content.settings);
425
+ return true;
426
+ }
427
+
428
+ const data = {
429
+ action: _types2.ApwScheduleActionTypes.PUBLISH,
430
+ type: content.type,
431
+ entryId: content.id,
432
+ modelId: (_content$settings = content.settings) === null || _content$settings === void 0 ? void 0 : _content$settings.modelId,
433
+ datetime
434
+ };
435
+ const scheduledActionId = await this.scheduleAction(data);
436
+ /**
437
+ * Update scheduled related meta data.
438
+ */
439
+
440
+ await this.update(id, {
441
+ content: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, content), {}, {
442
+ scheduledOn: datetime,
443
+ scheduledBy: identity.id,
444
+ scheduledActionId
445
+ })
446
+ });
447
+ return true;
448
+ },
449
+
450
+ async unpublishContent(id, datetime) {
451
+ var _content$settings2;
452
+
453
+ const {
454
+ content,
455
+ reviewStatus
456
+ } = await this.get(id);
457
+ const identity = getIdentity();
458
+
459
+ if (reviewStatus !== _types.ApwContentReviewStatus.PUBLISHED) {
460
+ throw new _error.default({
461
+ message: `Cannot unpublish content because it is not yet published.`,
462
+ code: "NOT_YET_PUBLISHED",
463
+ data: {
464
+ id,
465
+ status: reviewStatus,
466
+ content
467
+ }
468
+ });
469
+ }
470
+
471
+ (0, _utils2.checkValidDateTime)(datetime);
472
+ /**
473
+ * If datetime is present it means we're scheduling this action.
474
+ * If not, we are unpublishing immediately.
475
+ */
476
+
477
+ if (!datetime) {
478
+ const contentUnPublisher = getContentUnPublisher(content.type);
479
+ await contentUnPublisher(content.id, content.settings);
480
+ return true;
481
+ }
482
+
483
+ const scheduledActionId = await this.scheduleAction({
484
+ action: _types2.ApwScheduleActionTypes.UNPUBLISH,
485
+ type: content.type,
486
+ entryId: content.id,
487
+ modelId: (_content$settings2 = content.settings) === null || _content$settings2 === void 0 ? void 0 : _content$settings2.modelId,
488
+ datetime
489
+ });
490
+ /**
491
+ * Update scheduled related meta data.
492
+ */
493
+
494
+ await this.update(id, {
495
+ content: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, content), {}, {
496
+ scheduledOn: datetime,
497
+ scheduledBy: identity.id,
498
+ scheduledActionId
499
+ })
500
+ });
501
+ return true;
502
+ },
503
+
504
+ async scheduleAction(data) {
505
+ // Save input in DB
506
+ const scheduledAction = await scheduler.create(data);
507
+ /**
508
+ * This function contains logic of lambda invocation.
509
+ * Current we're not mocking it, therefore, we're just returning true.
510
+ */
511
+
512
+ if (process.env.NODE_ENV === "test") {
513
+ return scheduledAction.id;
514
+ } // Invoke handler
515
+
516
+
517
+ await handlerClient.invoke({
518
+ name: String(process.env.APW_SCHEDULER_SCHEDULE_ACTION_HANDLER),
519
+ payload: {
520
+ tenant: getTenant().id,
521
+ locale: getLocale().code
522
+ },
523
+ await: false,
524
+ description: "APW scheduler handler"
525
+ });
526
+ return scheduledAction.id;
527
+ },
528
+
529
+ async deleteScheduledAction(id) {
530
+ const contentReview = await this.get(id);
531
+ const scheduledActionId = (0, _get.default)(contentReview, "content.scheduledActionId");
532
+ /**
533
+ * Check if there is any action scheduled for this "content review".
534
+ */
535
+
536
+ if (!scheduledActionId) {
537
+ throw new _error.default({
538
+ message: `There is no action scheduled for content review.`,
539
+ code: "NO_ACTION_SCHEDULED",
540
+ data: {
541
+ id
542
+ }
543
+ });
544
+ }
545
+ /**
546
+ * Delete scheduled action.
547
+ */
548
+
549
+
550
+ await scheduler.delete(scheduledActionId);
551
+ /**
552
+ * Reset scheduled related meta data.
553
+ */
554
+
555
+ await this.update(id, {
556
+ content: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, contentReview.content), _utils2.INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META)
557
+ });
558
+ return true;
559
+ }
560
+
561
+ };
562
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContentReviewMethods","params","getIdentity","storageOperations","getReviewer","getContentGetter","getContentPublisher","getContentUnPublisher","scheduler","handlerClient","getTenant","getLocale","plugins","onContentReviewBeforeCreate","createTopic","onContentReviewAfterCreate","onContentReviewBeforeUpdate","onContentReviewAfterUpdate","onContentReviewBeforeDelete","onContentReviewAfterDelete","onContentReviewBeforeList","get","id","getContentReview","list","where","publish","reviewStatus","filterContentReviewsByRequiresMyAttention","listParams","listContentReviews","create","data","input","ApwContentReviewStatus","UNDER_REVIEW","contentReview","createContentReview","update","original","updateContentReview","delete","deleteContentReview","provideSignOff","stepId","entry","steps","stepIndex","findIndex","step","currentStep","previousStep","identity","hasPermission","hasReviewer","NotAuthorizedError","status","ApwContentReviewStepStatus","DONE","type","ApwWorkflowStepTypes","MANDATORY_BLOCKING","StepMissingError","pendingChangeRequests","PendingChangeRequestsError","ACTIVE","StepInActiveError","previousStepStatus","updatedSteps","map","index","signOffProvidedOn","Date","toISOString","signOffProvidedBy","getNextStepStatus","newStatus","pendingRequiredSteps","getPendingRequiredSteps","length","READY_TO_BE_PUBLISHED","retractSignOff","NoSignOffProvidedError","isReviewRequired","contentGetter","content","settings","contentReviewId","contentApwSettingsPlugin","getContentApwSettingsPlugin","getContentReviewId","workflowId","getWorkflowId","publishContent","datetime","Error","message","code","checkValidDateTime","contentPublisher","action","ApwScheduleActionTypes","PUBLISH","entryId","modelId","scheduledActionId","scheduleAction","scheduledOn","scheduledBy","unpublishContent","PUBLISHED","contentUnPublisher","UNPUBLISH","scheduledAction","process","env","NODE_ENV","invoke","name","String","APW_SCHEDULER_SCHEDULE_ACTION_HANDLER","payload","tenant","locale","await","description","deleteScheduledAction","INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META"],"sources":["createContentReviewMethods.ts"],"sourcesContent":["import get from \"lodash/get\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport Error from \"@webiny/error\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReview,\n ApwContentReviewCrud,\n ApwContentReviewStatus,\n ApwContentReviewStepStatus,\n ApwReviewerCrud,\n ApwScheduleActionData,\n ApwWorkflowStepTypes,\n CreateApwContentReviewParams,\n CreateApwParams,\n OnContentReviewAfterCreateTopicParams,\n OnContentReviewAfterDeleteTopicParams,\n OnContentReviewAfterUpdateTopicParams,\n OnContentReviewBeforeCreateTopicParams,\n OnContentReviewBeforeDeleteTopicParams,\n OnContentReviewBeforeListTopicParams,\n OnContentReviewBeforeUpdateTopicParams,\n UpdateApwContentReviewParams\n} from \"~/types\";\nimport { getNextStepStatus, hasReviewer } from \"~/plugins/utils\";\nimport {\n NoSignOffProvidedError,\n NotAuthorizedError,\n PendingChangeRequestsError,\n StepInActiveError,\n StepMissingError\n} from \"~/utils/errors\";\nimport { ApwScheduleActionTypes } from \"~/scheduler/types\";\nimport {\n checkValidDateTime,\n filterContentReviewsByRequiresMyAttention,\n getPendingRequiredSteps,\n INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META\n} from \"./utils\";\nimport { getContentApwSettingsPlugin } from \"~/utils/contentApwSettingsPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface CreateContentReviewMethodsParams extends CreateApwParams {\n getReviewer: ApwReviewerCrud[\"get\"];\n getContentGetter: AdvancedPublishingWorkflow[\"getContentGetter\"];\n getContentPublisher: AdvancedPublishingWorkflow[\"getContentPublisher\"];\n getContentUnPublisher: AdvancedPublishingWorkflow[\"getContentUnPublisher\"];\n plugins: PluginsContainer;\n}\n\nexport function createContentReviewMethods(\n params: CreateContentReviewMethodsParams\n): ApwContentReviewCrud {\n const {\n getIdentity,\n storageOperations,\n getReviewer,\n getContentGetter,\n getContentPublisher,\n getContentUnPublisher,\n scheduler,\n handlerClient,\n getTenant,\n getLocale,\n plugins\n } = params;\n\n // create\n const onContentReviewBeforeCreate = createTopic<OnContentReviewBeforeCreateTopicParams>(\n \"apw.onContentReviewBeforeCreate\"\n );\n const onContentReviewAfterCreate = createTopic<OnContentReviewAfterCreateTopicParams>(\n \"apw.onContentReviewAfterCreate\"\n );\n // update\n const onContentReviewBeforeUpdate = createTopic<OnContentReviewBeforeUpdateTopicParams>(\n \"apw.onContentReviewBeforeUpdate\"\n );\n const onContentReviewAfterUpdate = createTopic<OnContentReviewAfterUpdateTopicParams>(\n \"apw.onContentReviewAfterUpdate\"\n );\n // delete\n const onContentReviewBeforeDelete = createTopic<OnContentReviewBeforeDeleteTopicParams>(\n \"apw.onContentReviewBeforeDelete\"\n );\n const onContentReviewAfterDelete = createTopic<OnContentReviewAfterDeleteTopicParams>(\n \"apw.onContentReviewAfterDelete\"\n );\n // list\n const onContentReviewBeforeList = createTopic<OnContentReviewBeforeListTopicParams>(\n \"apw.onContentReviewBeforeList\"\n );\n return {\n /**\n * Lifecycle events\n */\n onContentReviewBeforeCreate,\n onContentReviewAfterCreate,\n onContentReviewBeforeUpdate,\n onContentReviewAfterUpdate,\n onContentReviewBeforeDelete,\n onContentReviewAfterDelete,\n onContentReviewBeforeList,\n async get(id) {\n return storageOperations.getContentReview({ id });\n },\n async list(params) {\n const where = params.where || {};\n\n await onContentReviewBeforeList.publish({\n where\n });\n\n if (where.reviewStatus === \"requiresMyAttention\") {\n return filterContentReviewsByRequiresMyAttention({\n listParams: {\n ...params,\n where\n },\n listContentReviews: storageOperations.listContentReviews,\n getReviewer,\n getIdentity\n });\n }\n\n return storageOperations.listContentReviews({\n ...params,\n where\n });\n },\n async create(data: Omit<CreateApwContentReviewParams, \"reviewStatus\">) {\n const input: CreateApwContentReviewParams = {\n ...data,\n reviewStatus: ApwContentReviewStatus.UNDER_REVIEW\n };\n await onContentReviewBeforeCreate.publish({ input });\n\n const contentReview = await storageOperations.createContentReview({\n data: input\n });\n\n await onContentReviewAfterCreate.publish({ contentReview });\n\n return contentReview;\n },\n async update(id, data: UpdateApwContentReviewParams) {\n const original = await storageOperations.getContentReview({ id });\n\n await onContentReviewBeforeUpdate.publish({ original, input: { id, data } });\n\n const contentReview = await storageOperations.updateContentReview({\n id,\n data\n });\n\n await onContentReviewAfterUpdate.publish({\n original,\n input: { id, data },\n contentReview\n });\n\n return contentReview;\n },\n async delete(id) {\n const contentReview = await storageOperations.getContentReview({ id });\n\n await onContentReviewBeforeDelete.publish({ contentReview });\n\n await storageOperations.deleteContentReview({ id });\n\n await onContentReviewAfterDelete.publish({ contentReview });\n\n return true;\n },\n async provideSignOff(this: ApwContentReviewCrud, id, stepId) {\n const entry: ApwContentReview = await this.get(id);\n const { steps, reviewStatus } = entry;\n const stepIndex = steps.findIndex(step => step.id === stepId);\n const currentStep = steps[stepIndex];\n const previousStep = steps[stepIndex - 1];\n\n const identity = getIdentity();\n const hasPermission = await hasReviewer({\n getReviewer,\n identity,\n step: currentStep\n });\n\n /**\n * Check whether the sign-off is requested by a reviewer.\n */\n if (!hasPermission) {\n throw new NotAuthorizedError({ entry, input: { id, step: stepId } });\n }\n /**\n * Don't allow sign off, if previous step is of \"mandatory_blocking\" type and undone.\n */\n if (\n previousStep &&\n previousStep.status !== ApwContentReviewStepStatus.DONE &&\n previousStep.type === ApwWorkflowStepTypes.MANDATORY_BLOCKING\n ) {\n throw new StepMissingError({ entry, input: { id, step: stepId } });\n }\n /**\n * Don't allow sign off, if there are pending change requests.\n */\n if (currentStep.pendingChangeRequests > 0) {\n throw new PendingChangeRequestsError({ entry, input: { id, step: stepId } });\n }\n /**\n * Don't allow sign off, if current step is not in \"active\" state.\n */\n if (currentStep.status !== ApwContentReviewStepStatus.ACTIVE) {\n throw new StepInActiveError({ entry, input: { id, step: stepId } });\n }\n let previousStepStatus: ApwContentReviewStepStatus;\n /*\n * Provide sign-off for give step.\n */\n const updatedSteps = steps.map((step, index) => {\n if (index === stepIndex) {\n previousStepStatus = ApwContentReviewStepStatus.DONE;\n return {\n ...step,\n status: ApwContentReviewStepStatus.DONE,\n signOffProvidedOn: new Date().toISOString(),\n signOffProvidedBy: identity\n };\n }\n /**\n * Update next steps status based on type.\n */\n if (index > stepIndex) {\n const previousStep = steps[index - 1];\n\n previousStepStatus = getNextStepStatus(previousStep.type, previousStepStatus);\n return {\n ...step,\n status: previousStepStatus\n };\n }\n\n return step;\n });\n /**\n * Check for pending steps\n */\n let newStatus = reviewStatus;\n const pendingRequiredSteps = getPendingRequiredSteps(\n updatedSteps,\n step => typeof step.signOffProvidedOn !== \"string\"\n );\n\n /**\n * If there are no required steps that are pending, set the status to \"READY_TO_BE_PUBLISHED\".\n */\n if (pendingRequiredSteps.length === 0) {\n newStatus = ApwContentReviewStatus.READY_TO_BE_PUBLISHED;\n }\n\n /**\n * Save updated steps.\n */\n await this.update(id, {\n steps: updatedSteps,\n reviewStatus: newStatus\n });\n return true;\n },\n async retractSignOff(this: ApwContentReviewCrud, id, stepId) {\n const entry: ApwContentReview = await this.get(id);\n const { steps, reviewStatus } = entry;\n const stepIndex = steps.findIndex(step => step.id === stepId);\n const currentStep = steps[stepIndex];\n\n const identity = getIdentity();\n\n const hasPermission = await hasReviewer({\n getReviewer,\n identity,\n step: currentStep\n });\n\n /**\n * Check whether the retract sign-off is requested by a reviewer.\n */\n if (!hasPermission) {\n throw new NotAuthorizedError({ entry, input: { id, step: stepId } });\n }\n /**\n * Don't allow, if step in not \"done\" i.e. no sign-off was provided for it.\n */\n if (currentStep.status !== ApwContentReviewStepStatus.DONE) {\n throw new NoSignOffProvidedError({ entry, input: { id, step: stepId } });\n }\n let previousStepStatus: ApwContentReviewStepStatus;\n\n /*\n * Retract sign-off for give step.\n */\n const updatedSteps = steps.map((step, index) => {\n if (index === stepIndex) {\n previousStepStatus = ApwContentReviewStepStatus.ACTIVE;\n return {\n ...step,\n status: previousStepStatus,\n signOffProvidedOn: null,\n signOffProvidedBy: null\n };\n }\n /**\n * Set next step status as \"inactive\".\n */\n if (index > stepIndex) {\n const previousStep = steps[index - 1];\n\n previousStepStatus = getNextStepStatus(previousStep.type, previousStepStatus);\n\n return {\n ...step,\n status: previousStepStatus\n };\n }\n\n return step;\n });\n\n /**\n * Check for pending steps\n */\n let newStatus = reviewStatus;\n const pendingRequiredSteps = getPendingRequiredSteps(\n updatedSteps,\n step => step.signOffProvidedOn === null\n );\n /**\n * If there are required steps that are pending, set the status to \"UNDER_REVIEW\".\n */\n if (pendingRequiredSteps.length !== 0) {\n newStatus = ApwContentReviewStatus.UNDER_REVIEW;\n }\n\n await this.update(id, {\n steps: updatedSteps,\n reviewStatus: newStatus\n });\n return true;\n },\n async isReviewRequired(data) {\n const contentGetter = getContentGetter(data.type);\n const content = await contentGetter(data.id, data.settings);\n\n let isReviewRequired = false;\n let contentReviewId: string | null = null;\n\n const contentApwSettingsPlugin = getContentApwSettingsPlugin({\n plugins,\n type: data.type\n });\n\n if (contentApwSettingsPlugin) {\n contentReviewId = contentApwSettingsPlugin.getContentReviewId(content);\n const workflowId = contentApwSettingsPlugin.getWorkflowId(content);\n if (workflowId) {\n isReviewRequired = true;\n }\n }\n\n return {\n isReviewRequired,\n contentReviewId\n };\n },\n async publishContent(this: ApwContentReviewCrud, id: string, datetime) {\n const { content, reviewStatus } = await this.get(id);\n const identity = getIdentity();\n\n if (reviewStatus !== ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {\n throw new Error({\n message: `Cannot publish content because it is not yet ready to be published.`,\n code: \"NOT_READY_TO_BE_PUBLISHED\",\n data: {\n id,\n status: reviewStatus,\n content\n }\n });\n }\n\n checkValidDateTime(datetime);\n\n /**\n * If datetime is present it means we're scheduling this action.\n * And if not, we are publishing immediately.\n */\n if (!datetime) {\n const contentPublisher = getContentPublisher(content.type);\n\n await contentPublisher(content.id, content.settings);\n\n return true;\n }\n\n const data: ApwScheduleActionData = {\n action: ApwScheduleActionTypes.PUBLISH,\n type: content.type,\n entryId: content.id,\n modelId: content.settings?.modelId,\n datetime\n };\n const scheduledActionId = await this.scheduleAction(data);\n /**\n * Update scheduled related meta data.\n */\n await this.update(id, {\n content: {\n ...content,\n scheduledOn: datetime,\n scheduledBy: identity.id,\n scheduledActionId\n }\n });\n\n return true;\n },\n async unpublishContent(this: ApwContentReviewCrud, id: string, datetime) {\n const { content, reviewStatus } = await this.get(id);\n const identity = getIdentity();\n\n if (reviewStatus !== ApwContentReviewStatus.PUBLISHED) {\n throw new Error({\n message: `Cannot unpublish content because it is not yet published.`,\n code: \"NOT_YET_PUBLISHED\",\n data: {\n id,\n status: reviewStatus,\n content\n }\n });\n }\n checkValidDateTime(datetime);\n\n /**\n * If datetime is present it means we're scheduling this action.\n * If not, we are unpublishing immediately.\n */\n if (!datetime) {\n const contentUnPublisher = getContentUnPublisher(content.type);\n\n await contentUnPublisher(content.id, content.settings);\n\n return true;\n }\n\n const scheduledActionId = await this.scheduleAction({\n action: ApwScheduleActionTypes.UNPUBLISH,\n type: content.type,\n entryId: content.id,\n modelId: content.settings?.modelId,\n datetime\n });\n /**\n * Update scheduled related meta data.\n */\n await this.update(id, {\n content: {\n ...content,\n scheduledOn: datetime,\n scheduledBy: identity.id,\n scheduledActionId\n }\n });\n\n return true;\n },\n async scheduleAction(data) {\n // Save input in DB\n const scheduledAction = await scheduler.create(data);\n /**\n * This function contains logic of lambda invocation.\n * Current we're not mocking it, therefore, we're just returning true.\n */\n if (process.env.NODE_ENV === \"test\") {\n return scheduledAction.id;\n }\n // Invoke handler\n await handlerClient.invoke({\n name: String(process.env.APW_SCHEDULER_SCHEDULE_ACTION_HANDLER),\n payload: {\n tenant: getTenant().id,\n locale: getLocale().code\n },\n await: false,\n description: \"APW scheduler handler\"\n });\n return scheduledAction.id;\n },\n async deleteScheduledAction(id) {\n const contentReview = await this.get(id);\n const scheduledActionId = get(contentReview, \"content.scheduledActionId\");\n\n /**\n * Check if there is any action scheduled for this \"content review\".\n */\n if (!scheduledActionId) {\n throw new Error({\n message: `There is no action scheduled for content review.`,\n code: \"NO_ACTION_SCHEDULED\",\n data: {\n id\n }\n });\n }\n /**\n * Delete scheduled action.\n */\n await scheduler.delete(scheduledActionId);\n\n /**\n * Reset scheduled related meta data.\n */\n await this.update(id, {\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META\n }\n });\n\n return true;\n }\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ApwReviewerCrud, CreateApwParams } from "../types";
2
+ export declare function createReviewerMethods({ storageOperations }: CreateApwParams): ApwReviewerCrud;