@webiny/api-apw 5.25.0 → 5.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/ContentApwSettingsPlugin.d.ts +10 -0
  2. package/ContentApwSettingsPlugin.js +17 -0
  3. package/ContentApwSettingsPlugin.js.map +1 -0
  4. package/README.md +7 -6
  5. package/{createApw → crud}/createChangeRequestMethods.d.ts +0 -0
  6. package/{createApw → crud}/createChangeRequestMethods.js +0 -0
  7. package/crud/createChangeRequestMethods.js.map +1 -0
  8. package/{createApw → crud}/createCommentMethods.d.ts +0 -0
  9. package/{createApw → crud}/createCommentMethods.js +0 -0
  10. package/crud/createCommentMethods.js.map +1 -0
  11. package/crud/createContentReviewMethods.d.ts +10 -0
  12. package/{createApw → crud}/createContentReviewMethods.js +269 -19
  13. package/crud/createContentReviewMethods.js.map +1 -0
  14. package/{createApw → crud}/createReviewerMethods.d.ts +0 -0
  15. package/{createApw → crud}/createReviewerMethods.js +0 -0
  16. package/crud/createReviewerMethods.js.map +1 -0
  17. package/{createApw → crud}/createWorkflowMethods.d.ts +0 -0
  18. package/{createApw → crud}/createWorkflowMethods.js +0 -0
  19. package/crud/createWorkflowMethods.js.map +1 -0
  20. package/{createApw → crud}/index.d.ts +0 -0
  21. package/{createApw → crud}/index.js +55 -11
  22. package/crud/index.js.map +1 -0
  23. package/crud/utils.d.ts +21 -0
  24. package/crud/utils.js +142 -0
  25. package/crud/utils.js.map +1 -0
  26. package/index.d.ts +4 -2
  27. package/index.js +11 -5
  28. package/index.js.map +1 -1
  29. package/package.json +37 -30
  30. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.d.ts +10 -0
  31. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +51 -0
  32. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -0
  33. package/plugins/cms/README.md +49 -0
  34. package/plugins/cms/apwEntryPlugins.d.ts +8 -0
  35. package/plugins/cms/apwEntryPlugins.js +50 -0
  36. package/plugins/cms/apwEntryPlugins.js.map +1 -0
  37. package/plugins/cms/index.d.ts +12 -0
  38. package/plugins/cms/index.js +37 -0
  39. package/plugins/cms/index.js.map +1 -0
  40. package/plugins/cms/linkContentReviewToEntry.d.ts +8 -0
  41. package/plugins/cms/linkContentReviewToEntry.js +108 -0
  42. package/plugins/cms/linkContentReviewToEntry.js.map +1 -0
  43. package/plugins/cms/linkWorkflowToEntry.d.ts +8 -0
  44. package/plugins/cms/linkWorkflowToEntry.js +166 -0
  45. package/plugins/cms/linkWorkflowToEntry.js.map +1 -0
  46. package/plugins/cms/triggerContentReview.d.ts +8 -0
  47. package/plugins/cms/triggerContentReview.js +59 -0
  48. package/plugins/cms/triggerContentReview.js.map +1 -0
  49. package/plugins/cms/updateContentReviewStatus.d.ts +10 -0
  50. package/plugins/cms/updateContentReviewStatus.js +101 -0
  51. package/plugins/cms/updateContentReviewStatus.js.map +1 -0
  52. package/plugins/cms/utils.d.ts +27 -0
  53. package/plugins/cms/utils.js +211 -0
  54. package/plugins/cms/utils.js.map +1 -0
  55. package/plugins/context.d.ts +3 -2
  56. package/plugins/context.js +82 -49
  57. package/plugins/context.js.map +1 -1
  58. package/plugins/graphql/changeRequest.gql.js +1 -1
  59. package/plugins/graphql/changeRequest.gql.js.map +1 -1
  60. package/plugins/graphql/comment.gql.js +8 -17
  61. package/plugins/graphql/comment.gql.js.map +1 -1
  62. package/plugins/graphql/contentReview.gql.js +168 -13
  63. package/plugins/graphql/contentReview.gql.js.map +1 -1
  64. package/plugins/graphql/reviewer.gql.js +1 -1
  65. package/plugins/graphql/reviewer.gql.js.map +1 -1
  66. package/plugins/graphql/workflow.gql.js +18 -15
  67. package/plugins/graphql/workflow.gql.js.map +1 -1
  68. package/plugins/graphql.d.ts +3 -2
  69. package/plugins/graphql.js +11 -1
  70. package/plugins/graphql.js.map +1 -1
  71. package/plugins/hooks/createReviewerFromIdentity.js +18 -0
  72. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -1
  73. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +8 -8
  74. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -1
  75. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +6 -6
  76. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -1
  77. package/plugins/hooks/index.d.ts +1 -2
  78. package/plugins/hooks/index.js +25 -25
  79. package/plugins/hooks/index.js.map +1 -1
  80. package/plugins/hooks/initializeContentReviewSteps.d.ts +2 -7
  81. package/plugins/hooks/initializeContentReviewSteps.js +42 -24
  82. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -1
  83. package/plugins/hooks/updatePendingChangeRequests.js +27 -39
  84. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -1
  85. package/plugins/hooks/updateTotalComments.d.ts +3 -0
  86. package/plugins/hooks/updateTotalComments.js +157 -0
  87. package/plugins/hooks/updateTotalComments.js.map +1 -0
  88. package/plugins/hooks/validateChangeRequest.d.ts +2 -0
  89. package/plugins/hooks/validateChangeRequest.js +64 -0
  90. package/plugins/hooks/validateChangeRequest.js.map +1 -0
  91. package/plugins/hooks/validateComment.d.ts +2 -0
  92. package/plugins/hooks/validateComment.js +45 -0
  93. package/plugins/hooks/validateComment.js.map +1 -0
  94. package/plugins/hooks/validateContentReview.d.ts +2 -0
  95. package/plugins/hooks/validateContentReview.js +38 -0
  96. package/plugins/hooks/validateContentReview.js.map +1 -0
  97. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.d.ts +9 -0
  98. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +51 -0
  99. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +1 -0
  100. package/plugins/pageBuilder/apwContentPagePlugins.d.ts +3 -0
  101. package/plugins/pageBuilder/apwContentPagePlugins.js +30 -0
  102. package/plugins/pageBuilder/apwContentPagePlugins.js.map +1 -0
  103. package/plugins/{hooks/extendPbPageSchema.d.ts → pageBuilder/extendPbPageSettingsSchema.d.ts} +1 -2
  104. package/plugins/{hooks/extendPbPageSchema.js → pageBuilder/extendPbPageSettingsSchema.js} +4 -3
  105. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +1 -0
  106. package/plugins/pageBuilder/index.d.ts +11 -0
  107. package/plugins/pageBuilder/index.js +45 -0
  108. package/plugins/pageBuilder/index.js.map +1 -0
  109. package/plugins/pageBuilder/linkContentReviewToPage.d.ts +8 -0
  110. package/plugins/pageBuilder/linkContentReviewToPage.js +93 -0
  111. package/plugins/pageBuilder/linkContentReviewToPage.js.map +1 -0
  112. package/plugins/pageBuilder/linkWorkflowToPage.d.ts +8 -0
  113. package/plugins/pageBuilder/linkWorkflowToPage.js +182 -0
  114. package/plugins/pageBuilder/linkWorkflowToPage.js.map +1 -0
  115. package/plugins/pageBuilder/triggerContentReview.d.ts +8 -0
  116. package/plugins/pageBuilder/triggerContentReview.js +50 -0
  117. package/plugins/pageBuilder/triggerContentReview.js.map +1 -0
  118. package/plugins/pageBuilder/updateContentReviewStatus.d.ts +10 -0
  119. package/plugins/pageBuilder/updateContentReviewStatus.js +83 -0
  120. package/plugins/pageBuilder/updateContentReviewStatus.js.map +1 -0
  121. package/plugins/pageBuilder/utils.d.ts +22 -0
  122. package/plugins/pageBuilder/utils.js +184 -0
  123. package/plugins/pageBuilder/utils.js.map +1 -0
  124. package/plugins/utils.d.ts +22 -2
  125. package/plugins/utils.js +128 -2
  126. package/plugins/utils.js.map +1 -1
  127. package/scheduler/createScheduleActionMethods.d.ts +2 -0
  128. package/scheduler/createScheduleActionMethods.js +146 -0
  129. package/scheduler/createScheduleActionMethods.js.map +1 -0
  130. package/scheduler/handlers/executeAction/index.d.ts +16 -0
  131. package/scheduler/handlers/executeAction/index.js +148 -0
  132. package/scheduler/handlers/executeAction/index.js.map +1 -0
  133. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.d.ts +13 -0
  134. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +17 -0
  135. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -0
  136. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.d.ts +11 -0
  137. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +126 -0
  138. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -0
  139. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.d.ts +11 -0
  140. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +163 -0
  141. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -0
  142. package/scheduler/handlers/executeAction/security.d.ts +4 -0
  143. package/scheduler/handlers/executeAction/security.js +68 -0
  144. package/scheduler/handlers/executeAction/security.js.map +1 -0
  145. package/scheduler/handlers/scheduleAction/index.d.ts +22 -0
  146. package/scheduler/handlers/scheduleAction/index.js +162 -0
  147. package/scheduler/handlers/scheduleAction/index.js.map +1 -0
  148. package/scheduler/handlers/scheduleAction/scheduleAction.utils.d.ts +24 -0
  149. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +176 -0
  150. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -0
  151. package/scheduler/handlers/utils.d.ts +33 -0
  152. package/scheduler/handlers/utils.js +168 -0
  153. package/scheduler/handlers/utils.js.map +1 -0
  154. package/scheduler/index.d.ts +2 -0
  155. package/scheduler/index.js +27 -0
  156. package/scheduler/index.js.map +1 -0
  157. package/scheduler/types.d.ts +171 -0
  158. package/scheduler/types.js +34 -0
  159. package/scheduler/types.js.map +1 -0
  160. package/storageOperations/changeRequestStorageOperations.js +1 -3
  161. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  162. package/storageOperations/commentStorageOperations.js +25 -11
  163. package/storageOperations/commentStorageOperations.js.map +1 -1
  164. package/storageOperations/contentReviewStorageOperations.js +1 -3
  165. package/storageOperations/contentReviewStorageOperations.js.map +1 -1
  166. package/storageOperations/index.js.map +1 -1
  167. package/storageOperations/models/changeRequest.model.d.ts +1 -0
  168. package/storageOperations/models/changeRequest.model.js +10 -5
  169. package/storageOperations/models/changeRequest.model.js.map +1 -1
  170. package/storageOperations/models/comment.model.d.ts +1 -0
  171. package/storageOperations/models/comment.model.js +24 -3
  172. package/storageOperations/models/comment.model.js.map +1 -1
  173. package/storageOperations/models/contentModelPluginFactory.d.ts +2 -2
  174. package/storageOperations/models/contentModelPluginFactory.js +2 -2
  175. package/storageOperations/models/contentModelPluginFactory.js.map +1 -1
  176. package/storageOperations/models/contentReview.model.d.ts +1 -0
  177. package/storageOperations/models/contentReview.model.js +98 -26
  178. package/storageOperations/models/contentReview.model.js.map +1 -1
  179. package/storageOperations/models/index.js +25 -5
  180. package/storageOperations/models/index.js.map +1 -1
  181. package/storageOperations/models/reviewer.model.d.ts +1 -0
  182. package/storageOperations/models/reviewer.model.js +11 -6
  183. package/storageOperations/models/reviewer.model.js.map +1 -1
  184. package/storageOperations/models/utils.js.map +1 -1
  185. package/storageOperations/models/workflow.model.d.ts +2 -1
  186. package/storageOperations/models/workflow.model.js +32 -30
  187. package/storageOperations/models/workflow.model.js.map +1 -1
  188. package/storageOperations/reviewerStorageOperations.js +1 -3
  189. package/storageOperations/reviewerStorageOperations.js.map +1 -1
  190. package/storageOperations/types.js.map +1 -1
  191. package/storageOperations/workflowStorageOperations.js +21 -7
  192. package/storageOperations/workflowStorageOperations.js.map +1 -1
  193. package/types.d.ts +138 -49
  194. package/types.js +9 -3
  195. package/types.js.map +1 -1
  196. package/utils/contentApwSettingsPlugin.d.ts +9 -0
  197. package/utils/contentApwSettingsPlugin.js +26 -0
  198. package/utils/contentApwSettingsPlugin.js.map +1 -0
  199. package/utils/errors.js.map +1 -1
  200. package/utils/fieldResolver.js +2 -2
  201. package/utils/fieldResolver.js.map +1 -1
  202. package/utils/resolve.js.map +1 -1
  203. package/createApw/createChangeRequestMethods.js.map +0 -1
  204. package/createApw/createCommentMethods.js.map +0 -1
  205. package/createApw/createContentReviewMethods.d.ts +0 -6
  206. package/createApw/createContentReviewMethods.js.map +0 -1
  207. package/createApw/createReviewerMethods.js.map +0 -1
  208. package/createApw/createWorkflowMethods.js.map +0 -1
  209. package/createApw/index.js.map +0 -1
  210. package/plugins/createManageCMSPlugin.d.ts +0 -2
  211. package/plugins/createManageCMSPlugin.js +0 -31
  212. package/plugins/createManageCMSPlugin.js.map +0 -1
  213. package/plugins/hooks/extendPbPageSchema.js.map +0 -1
  214. package/plugins/hooks/linkWorkflowToPage.d.ts +0 -9
  215. package/plugins/hooks/linkWorkflowToPage.js +0 -155
  216. package/plugins/hooks/linkWorkflowToPage.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.updateEntryMeta = exports.isAwpModel = exports.hasEntries = exports.getLatestEntryRevision = exports.getEntryTitle = exports.fetchModel = exports.assignWorkflowToEntry = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ var _types = require("../../types");
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _changeRequest = require("../../storageOperations/models/changeRequest.model");
19
+
20
+ var _comment = require("../../storageOperations/models/comment.model");
21
+
22
+ var _contentReview = require("../../storageOperations/models/contentReview.model");
23
+
24
+ var _reviewer = require("../../storageOperations/models/reviewer.model");
25
+
26
+ var _workflow = require("../../storageOperations/models/workflow.model");
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+
32
+ const fetchModel = async (cms, id, settings) => {
33
+ if (!settings) {
34
+ throw new _error.default("Missing settings.", "SETTINGS_ERROR", {
35
+ id
36
+ });
37
+ }
38
+
39
+ const modelId = settings.modelId;
40
+
41
+ if (!modelId) {
42
+ throw new _error.default("Missing modelId in settings.", "MODEL_ID_ERROR", {
43
+ id,
44
+ settings
45
+ });
46
+ }
47
+
48
+ const model = await cms.getModel(modelId);
49
+
50
+ if (model) {
51
+ return model;
52
+ }
53
+
54
+ throw new _error.default("There is no requested model in the system.", "MODEL_NOT_EXISTS", {
55
+ id,
56
+ settings
57
+ });
58
+ };
59
+
60
+ exports.fetchModel = fetchModel;
61
+
62
+ const getEntryTitle = (model, entry) => {
63
+ const titleFieldId = model.titleFieldId;
64
+
65
+ if (!titleFieldId || !entry.values[titleFieldId]) {
66
+ return entry.id;
67
+ }
68
+
69
+ return entry.values[titleFieldId];
70
+ };
71
+
72
+ exports.getEntryTitle = getEntryTitle;
73
+
74
+ const getLatestEntryRevision = async params => {
75
+ const {
76
+ cms,
77
+ model,
78
+ entryId
79
+ } = params;
80
+ const items = await cms.getLatestEntriesByIds(model, [entryId]);
81
+ const item = items.shift();
82
+
83
+ if (!item) {
84
+ throw new _error.default("There is no entry with given ID.", "ENTRY_NOT_FOUND", {
85
+ entryId
86
+ });
87
+ }
88
+
89
+ return item;
90
+ };
91
+
92
+ exports.getLatestEntryRevision = getLatestEntryRevision;
93
+
94
+ const updateEntryMeta = async params => {
95
+ const {
96
+ entryId,
97
+ cms,
98
+ model,
99
+ meta
100
+ } = params;
101
+ const entry = await getLatestEntryRevision({
102
+ cms,
103
+ model,
104
+ entryId
105
+ });
106
+ await cms.updateEntry(model, entry.id, {}, meta);
107
+ };
108
+
109
+ exports.updateEntryMeta = updateEntryMeta;
110
+
111
+ const isWorkflowApplicable = (entry, workflow) => {
112
+ const application = workflow.app;
113
+
114
+ if (application !== _types.ApwWorkflowApplications.CMS) {
115
+ return false;
116
+ }
117
+
118
+ const scopeType = workflow.scope.type;
119
+
120
+ if (scopeType === _types.WorkflowScopeTypes.DEFAULT) {
121
+ return true;
122
+ } else if (scopeType === _types.WorkflowScopeTypes.CUSTOM) {
123
+ var _workflow$scope$data, _workflow$scope$data2;
124
+
125
+ const models = (_workflow$scope$data = workflow.scope.data) === null || _workflow$scope$data === void 0 ? void 0 : _workflow$scope$data.models;
126
+
127
+ if (Array.isArray(models) && models.includes(entry.modelId)) {
128
+ return true;
129
+ }
130
+
131
+ const entries = ((_workflow$scope$data2 = workflow.scope.data) === null || _workflow$scope$data2 === void 0 ? void 0 : _workflow$scope$data2.entries) || [];
132
+
133
+ if (Array.isArray(entries) && entries.some(value => value.id === entry.entryId)) {
134
+ return true;
135
+ }
136
+
137
+ return false;
138
+ }
139
+
140
+ throw new _error.default(`Unknown scope type "${scopeType}".`, "UNKNOWN_SCOPE_TYPE", {
141
+ workflow
142
+ });
143
+ };
144
+
145
+ const assignWorkflowToEntry = async params => {
146
+ const {
147
+ apw,
148
+ entry
149
+ } = params;
150
+ /**
151
+ * Lookup and assign "workflowId".
152
+ */
153
+
154
+ try {
155
+ /*
156
+ * List all workflows for app pageBuilder
157
+ */
158
+ const [entries] = await apw.workflow.list({
159
+ where: {
160
+ app: _types.ApwWorkflowApplications.CMS
161
+ }
162
+ });
163
+ console.log(`Found ${entries.length} workflows.`);
164
+ /*
165
+ * Re-order them based on workflow scope and pre-defined rule i.e.
166
+ * "specific" entry -> entry for a "category" -> "default".
167
+ * There can be more than one workflow with same "scope" and "app".
168
+ * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.
169
+ */
170
+
171
+ const sortedWorkflows = entries.sort(_utils.workflowByPrecedenceDesc).sort(_utils.workflowByCreatedOnDesc);
172
+ /**
173
+ * Assign the first applicable workflow to the page and exit.
174
+ */
175
+
176
+ for (const workflow of sortedWorkflows) {
177
+ if (isWorkflowApplicable(entry, workflow) === false) {
178
+ console.log(`Not applying workflow ${workflow.id} to entry ${entry.id}.`);
179
+ continue;
180
+ }
181
+
182
+ entry.meta = _objectSpread(_objectSpread({}, entry.meta || {}), {}, {
183
+ apw: {
184
+ workflowId: workflow.id,
185
+ contentReviewId: null
186
+ }
187
+ });
188
+ return;
189
+ }
190
+ } catch (ex) {
191
+ throw new _error.default(`Failed to assign workflow to CMS entry "${entry.id}".`, ex.code, ex.data);
192
+ }
193
+ };
194
+
195
+ exports.assignWorkflowToEntry = assignWorkflowToEntry;
196
+
197
+ const hasEntries = workflow => {
198
+ const {
199
+ app,
200
+ scope
201
+ } = workflow;
202
+ return app === _types.ApwWorkflowApplications.CMS && scope.type === _types.WorkflowScopeTypes.CUSTOM && scope.data && Array.isArray(scope.data.entries);
203
+ };
204
+
205
+ exports.hasEntries = hasEntries;
206
+
207
+ const isAwpModel = model => {
208
+ return [_changeRequest.CHANGE_REQUEST_MODEL_ID, _comment.COMMENT_MODEL_ID, _contentReview.CONTENT_REVIEW_MODEL_ID, _reviewer.REVIEWER_MODEL_ID, _workflow.WORKFLOW_MODEL_ID].includes(model.modelId);
209
+ };
210
+
211
+ exports.isAwpModel = isAwpModel;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fetchModel","cms","id","settings","WebinyError","modelId","model","getModel","getEntryTitle","entry","titleFieldId","values","getLatestEntryRevision","params","entryId","items","getLatestEntriesByIds","item","shift","updateEntryMeta","meta","updateEntry","isWorkflowApplicable","workflow","application","app","ApwWorkflowApplications","CMS","scopeType","scope","type","WorkflowScopeTypes","DEFAULT","CUSTOM","models","data","Array","isArray","includes","entries","some","value","assignWorkflowToEntry","apw","list","where","console","log","length","sortedWorkflows","sort","workflowByPrecedenceDesc","workflowByCreatedOnDesc","workflowId","contentReviewId","ex","code","hasEntries","isAwpModel","CHANGE_REQUEST_MODEL_ID","COMMENT_MODEL_ID","CONTENT_REVIEW_MODEL_ID","REVIEWER_MODEL_ID","WORKFLOW_MODEL_ID"],"sources":["utils.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport {\n AdvancedPublishingWorkflow,\n ApwWorkflow,\n ApwWorkflowApplications,\n WorkflowScopeTypes\n} from \"~/types\";\nimport { workflowByCreatedOnDesc, workflowByPrecedenceDesc } from \"~/plugins/utils\";\nimport { CHANGE_REQUEST_MODEL_ID } from \"~/storageOperations/models/changeRequest.model\";\nimport { COMMENT_MODEL_ID } from \"~/storageOperations/models/comment.model\";\nimport { CONTENT_REVIEW_MODEL_ID } from \"~/storageOperations/models/contentReview.model\";\nimport { REVIEWER_MODEL_ID } from \"~/storageOperations/models/reviewer.model\";\nimport { WORKFLOW_MODEL_ID } from \"~/storageOperations/models/workflow.model\";\n\nexport const fetchModel = async (\n cms: HeadlessCms,\n id: string,\n settings?: { modelId?: string } | null\n): Promise<CmsModel> => {\n if (!settings) {\n throw new WebinyError(\"Missing settings.\", \"SETTINGS_ERROR\", {\n id\n });\n }\n const modelId = settings.modelId;\n if (!modelId) {\n throw new WebinyError(\"Missing modelId in settings.\", \"MODEL_ID_ERROR\", {\n id,\n settings\n });\n }\n const model = await cms.getModel(modelId);\n if (model) {\n return model;\n }\n throw new WebinyError(\"There is no requested model in the system.\", \"MODEL_NOT_EXISTS\", {\n id,\n settings\n });\n};\n\nexport const getEntryTitle = (model: CmsModel, entry: CmsEntry): string => {\n const titleFieldId = model.titleFieldId;\n if (!titleFieldId || !entry.values[titleFieldId]) {\n return entry.id;\n }\n return entry.values[titleFieldId];\n};\n\ninterface GetLatestEntryRevisionParams {\n cms: HeadlessCms;\n model: CmsModel;\n entryId: string;\n}\nexport const getLatestEntryRevision = async (\n params: GetLatestEntryRevisionParams\n): Promise<CmsEntry> => {\n const { cms, model, entryId } = params;\n const items = await cms.getLatestEntriesByIds(model, [entryId]);\n\n const item = items.shift();\n if (!item) {\n throw new WebinyError(\"There is no entry with given ID.\", \"ENTRY_NOT_FOUND\", {\n entryId\n });\n }\n return item;\n};\n\ninterface UpdateEntryMetaParams {\n meta: Record<string, any>;\n entryId: string;\n cms: HeadlessCms;\n model: CmsModel;\n}\nexport const updateEntryMeta = async (params: UpdateEntryMetaParams): Promise<void> => {\n const { entryId, cms, model, meta } = params;\n\n const entry = await getLatestEntryRevision({\n cms,\n model,\n entryId\n });\n\n await cms.updateEntry(model, entry.id, {}, meta);\n};\n\nconst isWorkflowApplicable = (entry: CmsEntry, workflow: ApwWorkflow): boolean => {\n const application = workflow.app;\n if (application !== ApwWorkflowApplications.CMS) {\n return false;\n }\n\n const scopeType = workflow.scope.type;\n\n if (scopeType === WorkflowScopeTypes.DEFAULT) {\n return true;\n } else if (scopeType === WorkflowScopeTypes.CUSTOM) {\n const models = workflow.scope.data?.models;\n\n if (Array.isArray(models) && models.includes(entry.modelId)) {\n return true;\n }\n\n const entries = workflow.scope.data?.entries || [];\n if (Array.isArray(entries) && entries.some(value => value.id === entry.entryId)) {\n return true;\n }\n return false;\n }\n throw new WebinyError(`Unknown scope type \"${scopeType}\".`, \"UNKNOWN_SCOPE_TYPE\", {\n workflow\n });\n};\n\ninterface AssignWorkflowToEntryParams {\n apw: AdvancedPublishingWorkflow;\n entry: CmsEntry;\n}\nexport const assignWorkflowToEntry = async (params: AssignWorkflowToEntryParams): Promise<void> => {\n const { apw, entry } = params;\n /**\n * Lookup and assign \"workflowId\".\n */\n try {\n /*\n * List all workflows for app pageBuilder\n */\n const [entries] = await apw.workflow.list({\n where: {\n app: ApwWorkflowApplications.CMS\n }\n });\n\n console.log(`Found ${entries.length} workflows.`);\n\n /*\n * Re-order them based on workflow scope and pre-defined rule i.e.\n * \"specific\" entry -> entry for a \"category\" -> \"default\".\n * There can be more than one workflow with same \"scope\" and \"app\".\n * Therefore, we are also sorting the workflows by `createdOn` to get the latest workflow.\n */\n const sortedWorkflows = entries\n .sort(workflowByPrecedenceDesc)\n .sort(workflowByCreatedOnDesc);\n\n /**\n * Assign the first applicable workflow to the page and exit.\n */\n for (const workflow of sortedWorkflows) {\n if (isWorkflowApplicable(entry, workflow) === false) {\n console.log(`Not applying workflow ${workflow.id} to entry ${entry.id}.`);\n continue;\n }\n entry.meta = {\n ...(entry.meta || {}),\n apw: {\n workflowId: workflow.id,\n contentReviewId: null\n }\n };\n return;\n }\n } catch (ex) {\n throw new WebinyError(\n `Failed to assign workflow to CMS entry \"${entry.id}\".`,\n ex.code,\n ex.data\n );\n }\n};\n\nexport const hasEntries = (workflow: ApwWorkflow): Boolean => {\n const { app, scope } = workflow;\n return (\n app === ApwWorkflowApplications.CMS &&\n scope.type === WorkflowScopeTypes.CUSTOM &&\n scope.data &&\n Array.isArray(scope.data.entries)\n );\n};\n\nexport const isAwpModel = (model: CmsModel): boolean => {\n return [\n CHANGE_REQUEST_MODEL_ID,\n COMMENT_MODEL_ID,\n CONTENT_REVIEW_MODEL_ID,\n REVIEWER_MODEL_ID,\n WORKFLOW_MODEL_ID\n ].includes(model.modelId);\n};\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
2
2
  import { ApwContext } from "../types";
3
- declare const _default: () => (ContextPlugin<ApwContext> | (import("@webiny/handler-graphql/plugins").GraphQLSchemaPlugin<ApwContext> | ContextPlugin<ApwContext>)[])[];
4
- export default _default;
3
+ import { CreateApwContextParams } from "../scheduler/types";
4
+ export declare const createApwPageBuilderContext: (params: CreateApwContextParams) => ContextPlugin<ApwContext>;
5
+ export declare const createApwHeadlessCmsContext: (params: CreateApwContextParams) => ContextPlugin<ApwContext>;
@@ -5,46 +5,55 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.createApwPageBuilderContext = exports.createApwHeadlessCmsContext = void 0;
9
9
 
10
- var _hooks = _interopRequireDefault(require("./hooks"));
10
+ var _hooks = require("./hooks");
11
11
 
12
12
  var _error = _interopRequireDefault(require("@webiny/error"));
13
13
 
14
14
  var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
15
15
 
16
- var _types = require("../types");
16
+ var _crud = require("../crud");
17
17
 
18
- var _createApw = require("../createApw");
18
+ var _pageBuilder = require("./pageBuilder");
19
19
 
20
20
  var _storageOperations = require("../storageOperations");
21
21
 
22
- var _createManageCMSPlugin = require("./createManageCMSPlugin");
22
+ var _scheduler = require("../scheduler");
23
23
 
24
- var _apiHeadlessCms = require("@webiny/api-headless-cms");
24
+ var _security = require("../scheduler/handlers/executeAction/security");
25
25
 
26
- var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
26
+ var _utils = require("./utils");
27
+
28
+ var _extendPbPageSettingsSchema = require("./pageBuilder/extendPbPageSettingsSchema");
29
+
30
+ var _apwContentPagePlugins = require("./pageBuilder/apwContentPagePlugins");
31
+
32
+ var _cms = require("./cms");
33
+
34
+ const setupApwContext = params => new _ContextPlugin.ContextPlugin(async context => {
27
35
  const {
28
36
  tenancy,
29
37
  security,
30
- i18nContent
38
+ i18n,
39
+ handlerClient
31
40
  } = context;
32
- const contentHeadlessCmsContextPlugins = (0, _apiHeadlessCms.createContentHeadlessCmsContext)({
33
- storageOperations: context.cms.storageOperations
34
- });
35
- /**
36
- * Register cms plugins required by `api-apw` package.
37
- */
38
41
 
39
- context.plugins.register([(0, _createManageCMSPlugin.createManageCMSPlugin)(), ...contentHeadlessCmsContextPlugins]);
42
+ if ((0, _utils.isInstallationPending)({
43
+ tenancy,
44
+ i18n
45
+ })) {
46
+ return;
47
+ }
40
48
 
41
49
  const getLocale = () => {
42
- if (!i18nContent.locale) {
43
- throw new _error.default("Missing context.i18nContent.locale in api-apw/plugins/context.ts", "LOCALE_ERROR");
44
- } // TODO: Check which locale do we need here?
50
+ const locale = i18n.getContentLocale();
45
51
 
52
+ if (!locale) {
53
+ throw new _error.default("Missing content locale in api-apw/plugins/context.ts", "LOCALE_ERROR");
54
+ }
46
55
 
47
- return i18nContent.locale;
56
+ return locale;
48
57
  };
49
58
 
50
59
  const getTenant = () => {
@@ -57,14 +66,21 @@ var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
57
66
 
58
67
  const getIdentity = () => security.getIdentity();
59
68
 
60
- context.apw = (0, _createApw.createApw)({
69
+ const scheduler = (0, _scheduler.createScheduler)({
70
+ getLocale,
71
+ getIdentity,
72
+ getTenant,
73
+ getPermission,
74
+ storageOperations: params.storageOperations
75
+ });
76
+ context.apw = (0, _crud.createApw)({
61
77
  getLocale,
62
78
  getIdentity,
63
79
  getTenant,
64
80
  getPermission,
65
81
  storageOperations: (0, _storageOperations.createStorageOperations)({
66
82
  /**
67
- * TODO: We need to figure out a way to pass "cms" from outside (e.g. api/code/graphql)
83
+ * TODO: We need to figure out a way to pass "cms" from outside (e.g. apps/api/graphql)
68
84
  */
69
85
  cms: context.cms,
70
86
 
@@ -72,41 +88,58 @@ var _default = () => [new _ContextPlugin.ContextPlugin(async context => {
72
88
  * TODO: This is required for "entryFieldFromStorageTransform" which access plugins from context.
73
89
  */
74
90
  getCmsContext: () => context
75
- })
76
- });
77
- /**
78
- * TODO: @ashutosh
79
- * Move these call into a separate package let say "ap-apw-page-builder"
80
- */
81
-
82
- context.apw.addWorkflowGetter(_types.ApwContentTypes.PAGE, async id => {
83
- const page = await context.pageBuilder.getPage(id);
84
- return page.settings.apw.workflowId;
91
+ }),
92
+ scheduler,
93
+ handlerClient,
94
+ plugins: context.plugins
85
95
  });
86
- context.apw.addWorkflowGetter(_types.ApwContentTypes.CMS_ENTRY, async (id, settings) => {
87
- if (!settings.modelId) {
88
- return null;
89
- }
96
+ });
90
97
 
91
- const model = await context.cms.getModel(settings.modelId);
98
+ const setupApwPageBuilder = () => {
99
+ return new _ContextPlugin.ContextPlugin(async context => {
100
+ (0, _pageBuilder.apwPageBuilderHooks)(context);
101
+ });
102
+ };
92
103
 
93
- if (!model) {
94
- return null;
104
+ const setupApwHeadlessCms = () => {
105
+ return new _ContextPlugin.ContextPlugin(async context => {
106
+ (0, _cms.apwCmsHooks)(context);
107
+ });
108
+ };
109
+
110
+ const createApwPageBuilderContext = params => {
111
+ return new _ContextPlugin.ContextPlugin(async context => {
112
+ if (!context.wcp.canUseFeature("advancedPublishingWorkflow")) {
113
+ return;
114
+ } else if ((0, _utils.isInstallationPending)(context)) {
115
+ return;
95
116
  }
96
117
 
97
- const entry = await context.cms.getEntry(model, {
98
- where: {
99
- id: id,
100
- tenant: model.tenant
101
- }
102
- });
118
+ await setupApwContext(params).apply(context);
119
+ await setupApwPageBuilder().apply(context);
120
+ await setupApwHeadlessCms().apply(context);
121
+ await (0, _apwContentPagePlugins.apwContentPagePlugins)().apply(context);
122
+ await (0, _hooks.attachApwHooks)().apply(context);
123
+ await (0, _security.createCustomAuth)(params).apply(context);
124
+ context.plugins.register((0, _extendPbPageSettingsSchema.extendPbPageSettingsSchema)());
125
+ });
126
+ };
127
+
128
+ exports.createApwPageBuilderContext = createApwPageBuilderContext;
103
129
 
104
- if (!entry) {
105
- return null;
130
+ const createApwHeadlessCmsContext = params => {
131
+ return new _ContextPlugin.ContextPlugin(async context => {
132
+ if (!context.wcp.canUseFeature("advancedPublishingWorkflow")) {
133
+ return;
134
+ } else if ((0, _utils.isInstallationPending)(context)) {
135
+ return;
106
136
  }
107
137
 
108
- return entry.values["workflow"] || null;
138
+ await setupApwContext(params).apply(context);
139
+ await setupApwHeadlessCms().apply(context);
140
+ await (0, _hooks.attachApwHooks)().apply(context);
141
+ await (0, _security.createCustomAuth)(params).apply(context);
109
142
  });
110
- }), (0, _hooks.default)()];
143
+ };
111
144
 
112
- exports.default = _default;
145
+ exports.createApwHeadlessCmsContext = createApwHeadlessCmsContext;
@@ -1 +1 @@
1
- {"version":3,"sources":["context.ts"],"names":["ContextPlugin","context","tenancy","security","i18nContent","contentHeadlessCmsContextPlugins","storageOperations","cms","plugins","register","getLocale","locale","WebinyError","getTenant","getCurrentTenant","getPermission","name","getIdentity","apw","getCmsContext","addWorkflowGetter","ApwContentTypes","PAGE","id","page","pageBuilder","getPage","settings","workflowId","CMS_ENTRY","modelId","model","getModel","entry","getEntry","where","tenant","values"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAIe,MAAM,CACjB,IAAIA,4BAAJ,CAA8B,MAAMC,OAAN,IAAiB;AAC3C,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,MAAqCH,OAA3C;AAEA,QAAMI,gCAAgC,GAAG,qDAAgC;AACrEC,IAAAA,iBAAiB,EAAEL,OAAO,CAACM,GAAR,CAAYD;AADsC,GAAhC,CAAzC;AAGA;AACR;AACA;;AACQL,EAAAA,OAAO,CAACO,OAAR,CAAgBC,QAAhB,CAAyB,CAAC,mDAAD,EAA0B,GAAGJ,gCAA7B,CAAzB;;AAEA,QAAMK,SAAS,GAAG,MAAM;AACpB,QAAI,CAACN,WAAW,CAACO,MAAjB,EAAyB;AACrB,YAAM,IAAIC,cAAJ,CACF,kEADE,EAEF,cAFE,CAAN;AAIH,KANmB,CAOpB;;;AACA,WAAOR,WAAW,CAACO,MAAnB;AACH,GATD;;AAWA,QAAME,SAAS,GAAG,MAAc;AAC5B,WAAOX,OAAO,CAACY,gBAAR,EAAP;AACH,GAFD;;AAIA,QAAMC,aAAa,GAAG,MAAOC,IAAP,IAA4D;AAC9E,WAAOb,QAAQ,CAACY,aAAT,CAAuBC,IAAvB,CAAP;AACH,GAFD;;AAGA,QAAMC,WAAW,GAAG,MAAMd,QAAQ,CAACc,WAAT,EAA1B;;AAEAhB,EAAAA,OAAO,CAACiB,GAAR,GAAc,0BAAU;AACpBR,IAAAA,SADoB;AAEpBO,IAAAA,WAFoB;AAGpBJ,IAAAA,SAHoB;AAIpBE,IAAAA,aAJoB;AAKpBT,IAAAA,iBAAiB,EAAE,gDAAwB;AACvC;AAChB;AACA;AACgBC,MAAAA,GAAG,EAAEN,OAAO,CAACM,GAJ0B;;AAKvC;AAChB;AACA;AACgBY,MAAAA,aAAa,EAAE,MAAMlB;AARkB,KAAxB;AALC,GAAV,CAAd;AAgBA;AACR;AACA;AACA;;AACQA,EAAAA,OAAO,CAACiB,GAAR,CAAYE,iBAAZ,CAA8BC,uBAAgBC,IAA9C,EAAoD,MAAMC,EAAN,IAAY;AAC5D,UAAMC,IAAI,GAAG,MAAMvB,OAAO,CAACwB,WAAR,CAAoBC,OAApB,CAA8CH,EAA9C,CAAnB;AACA,WAAOC,IAAI,CAACG,QAAL,CAAcT,GAAd,CAAkBU,UAAzB;AACH,GAHD;AAKA3B,EAAAA,OAAO,CAACiB,GAAR,CAAYE,iBAAZ,CAA8BC,uBAAgBQ,SAA9C,EAAyD,OAAON,EAAP,EAAWI,QAAX,KAAwB;AAC7E,QAAI,CAACA,QAAQ,CAACG,OAAd,EAAuB;AACnB,aAAO,IAAP;AACH;;AACD,UAAMC,KAAK,GAAG,MAAM9B,OAAO,CAACM,GAAR,CAAYyB,QAAZ,CAAqBL,QAAQ,CAACG,OAA9B,CAApB;;AACA,QAAI,CAACC,KAAL,EAAY;AACR,aAAO,IAAP;AACH;;AACD,UAAME,KAAK,GAAG,MAAMhC,OAAO,CAACM,GAAR,CAAY2B,QAAZ,CAAqBH,KAArB,EAA4B;AAC5CI,MAAAA,KAAK,EAAE;AACHZ,QAAAA,EAAE,EAAEA,EADD;AAEHa,QAAAA,MAAM,EAAEL,KAAK,CAACK;AAFX;AADqC,KAA5B,CAApB;;AAMA,QAAI,CAACH,KAAL,EAAY;AACR,aAAO,IAAP;AACH;;AACD,WAAOA,KAAK,CAACI,MAAN,CAAa,UAAb,KAA4B,IAAnC;AACH,GAlBD;AAmBH,CA3ED,CADiB,EA6EjB,qBA7EiB,C","sourcesContent":["import apwHooks from \"./hooks\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport { ApwContentTypes, ApwContext, PageWithWorkflow } from \"~/types\";\nimport { createApw } from \"~/createApw\";\nimport { createStorageOperations } from \"~/storageOperations\";\nimport { createManageCMSPlugin } from \"~/plugins/createManageCMSPlugin\";\nimport { createContentHeadlessCmsContext } from \"@webiny/api-headless-cms\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\n\nexport default () => [\n new ContextPlugin<ApwContext>(async context => {\n const { tenancy, security, i18nContent } = context;\n\n const contentHeadlessCmsContextPlugins = createContentHeadlessCmsContext({\n storageOperations: context.cms.storageOperations\n });\n /**\n * Register cms plugins required by `api-apw` package.\n */\n context.plugins.register([createManageCMSPlugin(), ...contentHeadlessCmsContextPlugins]);\n\n const getLocale = () => {\n if (!i18nContent.locale) {\n throw new WebinyError(\n \"Missing context.i18nContent.locale in api-apw/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n // TODO: Check which locale do we need here?\n return i18nContent.locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const getPermission = async (name: string): Promise<SecurityPermission | null> => {\n return security.getPermission(name);\n };\n const getIdentity = () => security.getIdentity();\n\n context.apw = createApw({\n getLocale,\n getIdentity,\n getTenant,\n getPermission,\n storageOperations: createStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. api/code/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context\n })\n });\n /**\n * TODO: @ashutosh\n * Move these call into a separate package let say \"ap-apw-page-builder\"\n */\n context.apw.addWorkflowGetter(ApwContentTypes.PAGE, async id => {\n const page = await context.pageBuilder.getPage<PageWithWorkflow>(id);\n return page.settings.apw.workflowId;\n });\n\n context.apw.addWorkflowGetter(ApwContentTypes.CMS_ENTRY, async (id, settings) => {\n if (!settings.modelId) {\n return null;\n }\n const model = await context.cms.getModel(settings.modelId);\n if (!model) {\n return null;\n }\n const entry = await context.cms.getEntry(model, {\n where: {\n id: id,\n tenant: model.tenant\n }\n });\n if (!entry) {\n return null;\n }\n return entry.values[\"workflow\"] || null;\n });\n }),\n apwHooks()\n];\n"]}
1
+ {"version":3,"names":["setupApwContext","params","ContextPlugin","context","tenancy","security","i18n","handlerClient","isInstallationPending","getLocale","locale","getContentLocale","WebinyError","getTenant","getCurrentTenant","getPermission","name","getIdentity","scheduler","createScheduler","storageOperations","apw","createApw","createStorageOperations","cms","getCmsContext","plugins","setupApwPageBuilder","apwPageBuilderHooks","setupApwHeadlessCms","apwCmsHooks","createApwPageBuilderContext","wcp","canUseFeature","apply","apwContentPagePlugins","attachApwHooks","createCustomAuth","register","extendPbPageSettingsSchema","createApwHeadlessCmsContext"],"sources":["context.ts"],"sourcesContent":["import { attachApwHooks } from \"./hooks\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport { ApwContext } from \"~/types\";\nimport { createApw } from \"~/crud\";\nimport { apwPageBuilderHooks } from \"./pageBuilder\";\nimport { createStorageOperations } from \"~/storageOperations\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { CreateApwContextParams } from \"~/scheduler/types\";\nimport { createScheduler } from \"~/scheduler\";\nimport { createCustomAuth } from \"~/scheduler/handlers/executeAction/security\";\nimport { isInstallationPending } from \"./utils\";\nimport { extendPbPageSettingsSchema } from \"~/plugins/pageBuilder/extendPbPageSettingsSchema\";\nimport { apwContentPagePlugins } from \"~/plugins/pageBuilder/apwContentPagePlugins\";\nimport { apwCmsHooks } from \"~/plugins/cms\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\n\nconst setupApwContext = (params: CreateApwContextParams) =>\n new ContextPlugin<ApwContext>(async context => {\n const { tenancy, security, i18n, handlerClient } = context;\n\n if (isInstallationPending({ tenancy, i18n })) {\n return;\n }\n\n const getLocale = (): I18NLocale => {\n const locale = i18n.getContentLocale();\n if (!locale) {\n throw new WebinyError(\n \"Missing content locale in api-apw/plugins/context.ts\",\n \"LOCALE_ERROR\"\n );\n }\n\n return locale;\n };\n\n const getTenant = (): Tenant => {\n return tenancy.getCurrentTenant();\n };\n\n const getPermission = async (name: string): Promise<SecurityPermission | null> => {\n return security.getPermission(name);\n };\n const getIdentity = () => security.getIdentity();\n\n const scheduler = createScheduler({\n getLocale,\n getIdentity,\n getTenant,\n getPermission,\n storageOperations: params.storageOperations\n });\n\n context.apw = createApw({\n getLocale,\n getIdentity,\n getTenant,\n getPermission,\n storageOperations: createStorageOperations({\n /**\n * TODO: We need to figure out a way to pass \"cms\" from outside (e.g. apps/api/graphql)\n */\n cms: context.cms,\n /**\n * TODO: This is required for \"entryFieldFromStorageTransform\" which access plugins from context.\n */\n getCmsContext: () => context\n }),\n scheduler,\n handlerClient,\n plugins: context.plugins\n });\n });\n\nconst setupApwPageBuilder = () => {\n return new ContextPlugin<ApwContext>(async context => {\n apwPageBuilderHooks(context);\n });\n};\n\nconst setupApwHeadlessCms = () => {\n return new ContextPlugin<ApwContext>(async context => {\n apwCmsHooks(context);\n });\n};\n\nexport const createApwPageBuilderContext = (params: CreateApwContextParams) => {\n return new ContextPlugin<ApwContext>(async context => {\n if (!context.wcp.canUseFeature(\"advancedPublishingWorkflow\")) {\n return;\n } else if (isInstallationPending(context)) {\n return;\n }\n\n await setupApwContext(params).apply(context);\n await setupApwPageBuilder().apply(context);\n await setupApwHeadlessCms().apply(context);\n await apwContentPagePlugins().apply(context);\n await attachApwHooks().apply(context);\n await createCustomAuth(params).apply(context);\n\n context.plugins.register(extendPbPageSettingsSchema());\n });\n};\n\nexport const createApwHeadlessCmsContext = (params: CreateApwContextParams) => {\n return new ContextPlugin<ApwContext>(async context => {\n if (!context.wcp.canUseFeature(\"advancedPublishingWorkflow\")) {\n return;\n } else if (isInstallationPending(context)) {\n return;\n }\n\n await setupApwContext(params).apply(context);\n await setupApwHeadlessCms().apply(context);\n await attachApwHooks().apply(context);\n await createCustomAuth(params).apply(context);\n });\n};\n"],"mappings":"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"}
@@ -129,7 +129,7 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
129
129
  listChangeRequests: async (_, args, context) => {
130
130
  try {
131
131
  /**
132
- * We know that args is CmsEntryListParams.
132
+ * We know that args is ApwChangeRequestListParams.
133
133
  */
134
134
  const [entries, meta] = await context.apw.changeRequest.list(args);
135
135
  return new _handlerGraphql.ListResponse(entries, meta);
@@ -1 +1 @@
1
- {"version":3,"sources":["changeRequest.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getChangeRequest","_","args","context","apw","changeRequest","get","id","listChangeRequests","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createChangeRequest","create","data","updateChangeRequest","update","deleteChangeRequest","delete"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAzG2D;AA0GvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,gBAAgB,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC/C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BC,GAA1B,CAA8BJ,IAAI,CAACK,EAAnC,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,kBAAkB,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AACjD,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BM,IAA1B,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,mBAAmB,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BY,MAA1B,CAAiCf,IAAI,CAACgB,IAAtC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,mBAAmB,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0Be,MAA1B,CAAiClB,IAAI,CAACK,EAAtC,EAA0CL,IAAI,CAACgB,IAA/C,CAAd,CAAP;AACH,OANQ;AAOTG,MAAAA,mBAAmB,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAClD,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,aAAZ,CAA0BiB,MAA1B,CAAiCpB,IAAI,CAACK,EAAtC,CAAd,CAAP;AACH;AATQ;AAnBN;AA1G4C,CAApC,CAAvB;eA2IeZ,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwChangeRequestListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwListChangeRequestsResponse {\n data: [ApwChangeRequestListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwChangeRequest {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwChangeRequestResponse {\n data: ApwChangeRequest\n error: ApwError\n }\n\n type ApwDeleteChangeRequestResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListChangeRequestSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwCreateChangeRequestInput {\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n input ApwUpdateChangeRequestInput {\n title: String\n body: JSON\n resolved: Boolean\n media: JSON\n }\n\n input ApwListChangeRequestWhereInput {\n id: ID\n step: String\n }\n\n input ApwListChangeRequestSearchInput {\n query: String\n }\n\n extend type ApwQuery {\n getChangeRequest(id: ID!): ApwChangeRequestResponse\n\n listChangeRequests(\n where: ApwListChangeRequestWhereInput\n limit: Int\n after: String\n sort: [ApwListChangeRequestSort!]\n search: ApwListChangeRequestSearchInput\n ): ApwListChangeRequestsResponse\n }\n\n extend type ApwMutation {\n createChangeRequest(data: ApwCreateChangeRequestInput!): ApwChangeRequestResponse\n\n updateChangeRequest(\n id: ID!\n data: ApwUpdateChangeRequestInput!\n ): ApwChangeRequestResponse\n\n deleteChangeRequest(id: ID!): ApwDeleteChangeRequestResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.get(args.id));\n },\n listChangeRequests: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.changeRequest.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.create(args.data));\n },\n updateChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.update(args.id, args.data));\n },\n deleteChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
1
+ {"version":3,"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getChangeRequest","_","args","context","resolve","apw","changeRequest","get","id","listChangeRequests","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createChangeRequest","create","data","updateChangeRequest","update","deleteChangeRequest","delete"],"sources":["changeRequest.gql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { ApwChangeRequestListParams, ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwChangeRequestListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwListChangeRequestsResponse {\n data: [ApwChangeRequestListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwChangeRequest {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # ChangeRequest specific fields\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n type ApwChangeRequestResponse {\n data: ApwChangeRequest\n error: ApwError\n }\n\n type ApwDeleteChangeRequestResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListChangeRequestSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwCreateChangeRequestInput {\n step: String!\n title: String!\n body: JSON!\n resolved: Boolean\n media: JSON\n }\n\n input ApwUpdateChangeRequestInput {\n title: String\n body: JSON\n resolved: Boolean\n media: JSON\n }\n\n input ApwListChangeRequestWhereInput {\n id: ID\n step: String\n }\n\n input ApwListChangeRequestSearchInput {\n query: String\n }\n\n extend type ApwQuery {\n getChangeRequest(id: ID!): ApwChangeRequestResponse\n\n listChangeRequests(\n where: ApwListChangeRequestWhereInput\n limit: Int\n after: String\n sort: [ApwListChangeRequestSort!]\n search: ApwListChangeRequestSearchInput\n ): ApwListChangeRequestsResponse\n }\n\n extend type ApwMutation {\n createChangeRequest(data: ApwCreateChangeRequestInput!): ApwChangeRequestResponse\n\n updateChangeRequest(\n id: ID!\n data: ApwUpdateChangeRequestInput!\n ): ApwChangeRequestResponse\n\n deleteChangeRequest(id: ID!): ApwDeleteChangeRequestResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.get(args.id));\n },\n listChangeRequests: async (_, args: any, context) => {\n try {\n /**\n * We know that args is ApwChangeRequestListParams.\n */\n const [entries, meta] = await context.apw.changeRequest.list(\n args as unknown as ApwChangeRequestListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.create(args.data));\n },\n updateChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.update(args.id, args.data));\n },\n deleteChangeRequest: async (_, args: any, context) => {\n return resolve(() => context.apw.changeRequest.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;EACvDC,QAAQ;EAAE;EAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAzG2D;EA0GvDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,gBAAgB,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAC/C,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,aAAZ,CAA0BC,GAA1B,CAA8BL,IAAI,CAACM,EAAnC,CAAd,CAAP;MACH,CAHK;MAINC,kBAAkB,EAAE,OAAOR,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QACjD,IAAI;UACA;AACpB;AACA;UACoB,MAAM,CAACO,OAAD,EAAUC,IAAV,IAAkB,MAAMR,OAAO,CAACE,GAAR,CAAYC,aAAZ,CAA0BM,IAA1B,CAC1BV,IAD0B,CAA9B;UAGA,OAAO,IAAIW,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;QACH,CARD,CAQE,OAAOG,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IAhBK,CADH;IAmBPE,WAAW,EAAE;MACTC,mBAAmB,EAAE,OAAOhB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAClD,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,aAAZ,CAA0BY,MAA1B,CAAiChB,IAAI,CAACiB,IAAtC,CAAd,CAAP;MACH,CAHQ;MAITC,mBAAmB,EAAE,OAAOnB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAClD,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,aAAZ,CAA0Be,MAA1B,CAAiCnB,IAAI,CAACM,EAAtC,EAA0CN,IAAI,CAACiB,IAA/C,CAAd,CAAP;MACH,CANQ;MAOTG,mBAAmB,EAAE,OAAOrB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAClD,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,aAAZ,CAA0BiB,MAA1B,CAAiCrB,IAAI,CAACM,EAAtC,CAAd,CAAP;MACH;IATQ;EAnBN;AA1G4C,CAApC,CAAvB;eA2Ieb,c"}
@@ -25,7 +25,9 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
25
25
  createdBy: ApwCreatedBy
26
26
  # Comment specific fields
27
27
  body: JSON
28
- changeRequest: ApwRefField
28
+ changeRequest: ID
29
+ # TODO: Remove ApwRefField
30
+ media: JSON
29
31
  }
30
32
 
31
33
  type ApwListCommentsResponse {
@@ -42,7 +44,8 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
42
44
  createdBy: ApwCreatedBy
43
45
  # Comment specific fields
44
46
  body: JSON
45
- changeRequest: ApwRefField
47
+ changeRequest: ID
48
+ media: JSON
46
49
  }
47
50
 
48
51
  type ApwCommentResponse {
@@ -62,15 +65,12 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
62
65
  savedOn_DESC
63
66
  createdOn_ASC
64
67
  createdOn_DESC
65
- publishedOn_ASC
66
- publishedOn_DESC
67
- title_ASC
68
- title_DESC
69
68
  }
70
69
 
71
70
  input ApwCreateCommentInput {
72
71
  body: JSON!
73
- changeRequest: ApwRefFieldInput!
72
+ changeRequest: ID!
73
+ media: JSON
74
74
  }
75
75
 
76
76
  input ApwUpdateCommentInput {
@@ -82,10 +82,6 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
82
82
  id_not: ID
83
83
  id_in: [ID!]
84
84
  id_not_in: [ID!]
85
- entryId: String
86
- entryId_not: String
87
- entryId_in: [String!]
88
- entryId_not_in: [String!]
89
85
  createdOn: DateTime
90
86
  createdOn_gt: DateTime
91
87
  createdOn_gte: DateTime
@@ -111,10 +107,6 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
111
107
  changeRequest: ApwRefFieldWhereInput
112
108
  }
113
109
 
114
- input ApwListCommentsSearchInput {
115
- query: String
116
- }
117
-
118
110
  extend type ApwQuery {
119
111
  getComment(id: ID!): ApwCommentResponse
120
112
 
@@ -123,7 +115,6 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
123
115
  limit: Int
124
116
  after: String
125
117
  sort: [ApwListCommentsSort!]
126
- search: ApwListCommentsSearchInput
127
118
  ): ApwListCommentsResponse
128
119
  }
129
120
 
@@ -143,7 +134,7 @@ const workflowSchema = new _plugins.GraphQLSchemaPlugin({
143
134
  listComments: async (_, args, context) => {
144
135
  try {
145
136
  /**
146
- * We know that args is CmsEntryListParams.
137
+ * We know that args is ApwCommentListParams.
147
138
  */
148
139
  const [entries, meta] = await context.apw.comment.list(args);
149
140
  return new _handlerGraphql.ListResponse(entries, meta);
@@ -1 +1 @@
1
- {"version":3,"sources":["comment.gql.ts"],"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getComment","_","args","context","apw","comment","get","id","listComments","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createComment","create","data","updateComment","update","deleteComment","delete"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;AACvDC,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAvH2D;AAwHvDC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,UAAU,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AACzC,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBC,GAApB,CAAwBJ,IAAI,CAACK,EAA7B,CAAd,CAAP;AACH,OAHK;AAINC,MAAAA,YAAY,EAAE,OAAOP,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC3C,YAAI;AACA;AACpB;AACA;AACoB,gBAAM,CAACM,OAAD,EAAUC,IAAV,IAAkB,MAAMP,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBM,IAApB,CAC1BT,IAD0B,CAA9B;AAGA,iBAAO,IAAIU,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;AACH,SARD,CAQE,OAAOG,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAhBK,KADH;AAmBPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,aAAa,EAAE,OAAOf,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBY,MAApB,CAA2Bf,IAAI,CAACgB,IAAhC,CAAd,CAAP;AACH,OAHQ;AAITC,MAAAA,aAAa,EAAE,OAAOlB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBe,MAApB,CAA2BlB,IAAI,CAACK,EAAhC,EAAoCL,IAAI,CAACgB,IAAzC,CAAd,CAAP;AACH,OANQ;AAOTG,MAAAA,aAAa,EAAE,OAAOpB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;AAC5C,eAAO,sBAAQ,MAAMA,OAAO,CAACC,GAAR,CAAYC,OAAZ,CAAoBiB,MAApB,CAA2BpB,IAAI,CAACK,EAAhC,CAAd,CAAP;AACH;AATQ;AAnBN;AAxH4C,CAApC,CAAvB;eAyJeZ,c","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { ApwContext } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwCommentListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ApwRefField\n }\n\n type ApwListCommentsResponse {\n data: [ApwCommentListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwComment {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ApwRefField\n }\n\n type ApwCommentResponse {\n data: ApwComment\n error: ApwError\n }\n\n type ApwDeleteCommentResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListCommentsSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n publishedOn_ASC\n publishedOn_DESC\n title_ASC\n title_DESC\n }\n\n input ApwCreateCommentInput {\n body: JSON!\n changeRequest: ApwRefFieldInput!\n }\n\n input ApwUpdateCommentInput {\n body: JSON!\n }\n\n input ApwListCommentsWhereInput {\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n createdBy: String\n createdBy_not: String\n createdBy_in: [String!]\n createdBy_not_in: [String!]\n ownedBy: String\n ownedBy_not: String\n ownedBy_in: [String!]\n ownedBy_not_in: [String!]\n changeRequest: ApwRefFieldWhereInput\n }\n\n input ApwListCommentsSearchInput {\n query: String\n }\n\n extend type ApwQuery {\n getComment(id: ID!): ApwCommentResponse\n\n listComments(\n where: ApwListCommentsWhereInput\n limit: Int\n after: String\n sort: [ApwListCommentsSort!]\n search: ApwListCommentsSearchInput\n ): ApwListCommentsResponse\n }\n\n extend type ApwMutation {\n createComment(data: ApwCreateCommentInput!): ApwCommentResponse\n\n updateComment(id: ID!, data: ApwUpdateCommentInput!): ApwCommentResponse\n\n deleteComment(id: ID!): ApwDeleteCommentResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.get(args.id));\n },\n listComments: async (_, args: any, context) => {\n try {\n /**\n * We know that args is CmsEntryListParams.\n */\n const [entries, meta] = await context.apw.comment.list(\n args as unknown as CmsEntryListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.create(args.data));\n },\n updateComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.update(args.id, args.data));\n },\n deleteComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"]}
1
+ {"version":3,"names":["workflowSchema","GraphQLSchemaPlugin","typeDefs","resolvers","ApwQuery","getComment","_","args","context","resolve","apw","comment","get","id","listComments","entries","meta","list","ListResponse","e","ErrorResponse","ApwMutation","createComment","create","data","updateComment","update","deleteComment","delete"],"sources":["comment.gql.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { ApwContext, ApwCommentListParams } from \"~/types\";\nimport resolve from \"~/utils/resolve\";\n\nconst workflowSchema = new GraphQLSchemaPlugin<ApwContext>({\n typeDefs: /* GraphQL */ `\n type ApwCommentListItem {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ID\n # TODO: Remove ApwRefField\n media: JSON\n }\n\n type ApwListCommentsResponse {\n data: [ApwCommentListItem]\n error: ApwError\n meta: ApwMeta\n }\n\n type ApwComment {\n # System generated fields\n id: ID\n savedOn: DateTime\n createdOn: DateTime\n createdBy: ApwCreatedBy\n # Comment specific fields\n body: JSON\n changeRequest: ID\n media: JSON\n }\n\n type ApwCommentResponse {\n data: ApwComment\n error: ApwError\n }\n\n type ApwDeleteCommentResponse {\n data: Boolean\n error: ApwError\n }\n\n enum ApwListCommentsSort {\n id_ASC\n id_DESC\n savedOn_ASC\n savedOn_DESC\n createdOn_ASC\n createdOn_DESC\n }\n\n input ApwCreateCommentInput {\n body: JSON!\n changeRequest: ID!\n media: JSON\n }\n\n input ApwUpdateCommentInput {\n body: JSON!\n }\n\n input ApwListCommentsWhereInput {\n id: ID\n id_not: ID\n id_in: [ID!]\n id_not_in: [ID!]\n createdOn: DateTime\n createdOn_gt: DateTime\n createdOn_gte: DateTime\n createdOn_lt: DateTime\n createdOn_lte: DateTime\n createdOn_between: [DateTime!]\n createdOn_not_between: [DateTime!]\n savedOn: DateTime\n savedOn_gt: DateTime\n savedOn_gte: DateTime\n savedOn_lt: DateTime\n savedOn_lte: DateTime\n savedOn_between: [DateTime!]\n savedOn_not_between: [DateTime!]\n createdBy: String\n createdBy_not: String\n createdBy_in: [String!]\n createdBy_not_in: [String!]\n ownedBy: String\n ownedBy_not: String\n ownedBy_in: [String!]\n ownedBy_not_in: [String!]\n changeRequest: ApwRefFieldWhereInput\n }\n\n extend type ApwQuery {\n getComment(id: ID!): ApwCommentResponse\n\n listComments(\n where: ApwListCommentsWhereInput\n limit: Int\n after: String\n sort: [ApwListCommentsSort!]\n ): ApwListCommentsResponse\n }\n\n extend type ApwMutation {\n createComment(data: ApwCreateCommentInput!): ApwCommentResponse\n\n updateComment(id: ID!, data: ApwUpdateCommentInput!): ApwCommentResponse\n\n deleteComment(id: ID!): ApwDeleteCommentResponse\n }\n `,\n resolvers: {\n ApwQuery: {\n getComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.get(args.id));\n },\n listComments: async (_, args: any, context) => {\n try {\n /**\n * We know that args is ApwCommentListParams.\n */\n const [entries, meta] = await context.apw.comment.list(\n args as unknown as ApwCommentListParams\n );\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n ApwMutation: {\n createComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.create(args.data));\n },\n updateComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.update(args.id, args.data));\n },\n deleteComment: async (_, args: any, context) => {\n return resolve(() => context.apw.comment.delete(args.id));\n }\n }\n }\n});\n\nexport default workflowSchema;\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAEA,MAAMA,cAAc,GAAG,IAAIC,4BAAJ,CAAoC;EACvDC,QAAQ;EAAE;EAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KA9G2D;EA+GvDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,UAAU,EAAE,OAAOC,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QACzC,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,OAAZ,CAAoBC,GAApB,CAAwBL,IAAI,CAACM,EAA7B,CAAd,CAAP;MACH,CAHK;MAINC,YAAY,EAAE,OAAOR,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAC3C,IAAI;UACA;AACpB;AACA;UACoB,MAAM,CAACO,OAAD,EAAUC,IAAV,IAAkB,MAAMR,OAAO,CAACE,GAAR,CAAYC,OAAZ,CAAoBM,IAApB,CAC1BV,IAD0B,CAA9B;UAGA,OAAO,IAAIW,4BAAJ,CAAiBH,OAAjB,EAA0BC,IAA1B,CAAP;QACH,CARD,CAQE,OAAOG,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IAhBK,CADH;IAmBPE,WAAW,EAAE;MACTC,aAAa,EAAE,OAAOhB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAC5C,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,OAAZ,CAAoBY,MAApB,CAA2BhB,IAAI,CAACiB,IAAhC,CAAd,CAAP;MACH,CAHQ;MAITC,aAAa,EAAE,OAAOnB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAC5C,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,OAAZ,CAAoBe,MAApB,CAA2BnB,IAAI,CAACM,EAAhC,EAAoCN,IAAI,CAACiB,IAAzC,CAAd,CAAP;MACH,CANQ;MAOTG,aAAa,EAAE,OAAOrB,CAAP,EAAUC,IAAV,EAAqBC,OAArB,KAAiC;QAC5C,OAAO,IAAAC,gBAAA,EAAQ,MAAMD,OAAO,CAACE,GAAR,CAAYC,OAAZ,CAAoBiB,MAApB,CAA2BrB,IAAI,CAACM,EAAhC,CAAd,CAAP;MACH;IATQ;EAnBN;AA/G4C,CAApC,CAAvB;eAgJeb,c"}