@webiny/api-apw 0.0.0-unstable.d7f521b032 → 0.0.0-unstable.de38392959

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 (234) hide show
  1. package/ApwChangeRequestNotification.js +4 -6
  2. package/ApwChangeRequestNotification.js.map +1 -1
  3. package/ApwCommentNotification.js +4 -6
  4. package/ApwCommentNotification.js.map +1 -1
  5. package/ApwContentReviewNotification.js +4 -6
  6. package/ApwContentReviewNotification.js.map +1 -1
  7. package/ApwContentUrlPlugin.js +4 -6
  8. package/ApwContentUrlPlugin.js.map +1 -1
  9. package/ContentApwSettingsPlugin.js +5 -4
  10. package/ContentApwSettingsPlugin.js.map +1 -1
  11. package/README.md +3 -3
  12. package/crud/createChangeRequestMethods.js +3 -1
  13. package/crud/createChangeRequestMethods.js.map +1 -1
  14. package/crud/createCommentMethods.js +3 -1
  15. package/crud/createCommentMethods.js.map +1 -1
  16. package/crud/createContentReviewMethods.js +56 -30
  17. package/crud/createContentReviewMethods.js.map +1 -1
  18. package/crud/createReviewerMethods.js +3 -1
  19. package/crud/createReviewerMethods.js.map +1 -1
  20. package/crud/createWorkflowMethods.js +3 -1
  21. package/crud/createWorkflowMethods.js.map +1 -1
  22. package/crud/index.js +6 -5
  23. package/crud/index.js.map +1 -1
  24. package/crud/utils.js +7 -6
  25. package/crud/utils.js.map +1 -1
  26. package/index.d.ts +1 -1
  27. package/index.js +3 -1
  28. package/index.js.map +1 -1
  29. package/package.json +39 -46
  30. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +5 -5
  31. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js.map +1 -1
  32. package/plugins/cms/apwEntryPlugins.js +9 -6
  33. package/plugins/cms/apwEntryPlugins.js.map +1 -1
  34. package/plugins/cms/index.js +3 -1
  35. package/plugins/cms/index.js.map +1 -1
  36. package/plugins/cms/linkContentReviewToEntry.js +5 -4
  37. package/plugins/cms/linkContentReviewToEntry.js.map +1 -1
  38. package/plugins/cms/linkWorkflowToEntry.js +16 -15
  39. package/plugins/cms/linkWorkflowToEntry.js.map +1 -1
  40. package/plugins/cms/notifications/changeRequestNotification.js +3 -1
  41. package/plugins/cms/notifications/changeRequestNotification.js.map +1 -1
  42. package/plugins/cms/notifications/commentNotification.js +3 -1
  43. package/plugins/cms/notifications/commentNotification.js.map +1 -1
  44. package/plugins/cms/notifications/contentReviewNotification.js +3 -1
  45. package/plugins/cms/notifications/contentReviewNotification.js.map +1 -1
  46. package/plugins/cms/notifications/contentUrl.js +3 -1
  47. package/plugins/cms/notifications/contentUrl.js.map +1 -1
  48. package/plugins/cms/triggerContentReview.js +6 -5
  49. package/plugins/cms/triggerContentReview.js.map +1 -1
  50. package/plugins/cms/updateContentReviewStatus.js +15 -13
  51. package/plugins/cms/updateContentReviewStatus.js.map +1 -1
  52. package/plugins/cms/utils.d.ts +3 -2
  53. package/plugins/cms/utils.js +22 -14
  54. package/plugins/cms/utils.js.map +1 -1
  55. package/plugins/context.js +3 -1
  56. package/plugins/context.js.map +1 -1
  57. package/plugins/graphql/changeRequest.gql.js +16 -12
  58. package/plugins/graphql/changeRequest.gql.js.map +1 -1
  59. package/plugins/graphql/comment.gql.js +41 -35
  60. package/plugins/graphql/comment.gql.js.map +1 -1
  61. package/plugins/graphql/contentReview.gql.js +26 -16
  62. package/plugins/graphql/contentReview.gql.js.map +1 -1
  63. package/plugins/graphql/reviewer.gql.js +15 -12
  64. package/plugins/graphql/reviewer.gql.js.map +1 -1
  65. package/plugins/graphql/utils.d.ts +2 -0
  66. package/plugins/graphql/utils.js +12 -0
  67. package/plugins/graphql/utils.js.map +1 -0
  68. package/plugins/graphql/workflow.gql.js +15 -12
  69. package/plugins/graphql/workflow.gql.js.map +1 -1
  70. package/plugins/graphql.js +4 -2
  71. package/plugins/graphql.js.map +1 -1
  72. package/plugins/hooks/createReviewerFromIdentity.js +4 -2
  73. package/plugins/hooks/createReviewerFromIdentity.js.map +1 -1
  74. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +3 -1
  75. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js.map +1 -1
  76. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -1
  77. package/plugins/hooks/deleteCommentsAfterChangeRequest.js.map +1 -1
  78. package/plugins/hooks/index.js +3 -1
  79. package/plugins/hooks/index.js.map +1 -1
  80. package/plugins/hooks/initializeContentReviewSteps.js +6 -4
  81. package/plugins/hooks/initializeContentReviewSteps.js.map +1 -1
  82. package/plugins/hooks/initializeNotifications.js +3 -1
  83. package/plugins/hooks/initializeNotifications.js.map +1 -1
  84. package/plugins/hooks/listContentReviews.js +4 -2
  85. package/plugins/hooks/listContentReviews.js.map +1 -1
  86. package/plugins/hooks/notifications/appUrl.js +3 -1
  87. package/plugins/hooks/notifications/appUrl.js.map +1 -1
  88. package/plugins/hooks/notifications/changeRequestAfterCreate.js +6 -9
  89. package/plugins/hooks/notifications/changeRequestAfterCreate.js.map +1 -1
  90. package/plugins/hooks/notifications/changeRequestUrl.js +3 -1
  91. package/plugins/hooks/notifications/changeRequestUrl.js.map +1 -1
  92. package/plugins/hooks/notifications/commentAfterCreate.js +6 -9
  93. package/plugins/hooks/notifications/commentAfterCreate.js.map +1 -1
  94. package/plugins/hooks/notifications/commentUrl.js +3 -1
  95. package/plugins/hooks/notifications/commentUrl.js.map +1 -1
  96. package/plugins/hooks/notifications/contentReviewAfterCreate.js +7 -10
  97. package/plugins/hooks/notifications/contentReviewAfterCreate.js.map +1 -1
  98. package/plugins/hooks/notifications/contentReviewUrl.js +3 -1
  99. package/plugins/hooks/notifications/contentReviewUrl.js.map +1 -1
  100. package/plugins/hooks/notifications/contentUrl.js +3 -1
  101. package/plugins/hooks/notifications/contentUrl.js.map +1 -1
  102. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +3 -1
  103. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js.map +1 -1
  104. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +3 -1
  105. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js.map +1 -1
  106. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +3 -1
  107. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js.map +1 -1
  108. package/plugins/hooks/notifications/reviewers.js +18 -15
  109. package/plugins/hooks/notifications/reviewers.js.map +1 -1
  110. package/plugins/hooks/notifications/sendChangeRequestNotification.js +3 -1
  111. package/plugins/hooks/notifications/sendChangeRequestNotification.js.map +1 -1
  112. package/plugins/hooks/notifications/sendCommentNotification.js +3 -1
  113. package/plugins/hooks/notifications/sendCommentNotification.js.map +1 -1
  114. package/plugins/hooks/notifications/sendContentReviewNotification.js +3 -1
  115. package/plugins/hooks/notifications/sendContentReviewNotification.js.map +1 -1
  116. package/plugins/hooks/updatePendingChangeRequests.js +8 -6
  117. package/plugins/hooks/updatePendingChangeRequests.js.map +1 -1
  118. package/plugins/hooks/updateTotalComments.js +22 -15
  119. package/plugins/hooks/updateTotalComments.js.map +1 -1
  120. package/plugins/hooks/validateChangeRequest.js +3 -1
  121. package/plugins/hooks/validateChangeRequest.js.map +1 -1
  122. package/plugins/hooks/validateComment.js +3 -1
  123. package/plugins/hooks/validateComment.js.map +1 -1
  124. package/plugins/hooks/validateContentReview.js +3 -1
  125. package/plugins/hooks/validateContentReview.js.map +1 -1
  126. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +5 -5
  127. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js.map +1 -1
  128. package/plugins/pageBuilder/apwContentPagePlugins.js +3 -1
  129. package/plugins/pageBuilder/apwContentPagePlugins.js.map +1 -1
  130. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +3 -1
  131. package/plugins/pageBuilder/extendPbPageSettingsSchema.js.map +1 -1
  132. package/plugins/pageBuilder/index.js +3 -1
  133. package/plugins/pageBuilder/index.js.map +1 -1
  134. package/plugins/pageBuilder/linkContentReviewToPage.js +16 -12
  135. package/plugins/pageBuilder/linkContentReviewToPage.js.map +1 -1
  136. package/plugins/pageBuilder/linkWorkflowToPage.js +3 -1
  137. package/plugins/pageBuilder/linkWorkflowToPage.js.map +1 -1
  138. package/plugins/pageBuilder/notifications/changeRequestNotification.js +3 -1
  139. package/plugins/pageBuilder/notifications/changeRequestNotification.js.map +1 -1
  140. package/plugins/pageBuilder/notifications/commentNotification.js +3 -1
  141. package/plugins/pageBuilder/notifications/commentNotification.js.map +1 -1
  142. package/plugins/pageBuilder/notifications/contentReviewNotification.js +3 -1
  143. package/plugins/pageBuilder/notifications/contentReviewNotification.js.map +1 -1
  144. package/plugins/pageBuilder/notifications/contentUrl.js +3 -1
  145. package/plugins/pageBuilder/notifications/contentUrl.js.map +1 -1
  146. package/plugins/pageBuilder/triggerContentReview.js +3 -1
  147. package/plugins/pageBuilder/triggerContentReview.js.map +1 -1
  148. package/plugins/pageBuilder/updateContentReviewStatus.js +11 -6
  149. package/plugins/pageBuilder/updateContentReviewStatus.js.map +1 -1
  150. package/plugins/pageBuilder/utils.d.ts +2 -2
  151. package/plugins/pageBuilder/utils.js +3 -1
  152. package/plugins/pageBuilder/utils.js.map +1 -1
  153. package/plugins/utils.d.ts +1 -1
  154. package/plugins/utils.js +6 -3
  155. package/plugins/utils.js.map +1 -1
  156. package/scheduler/createScheduleActionMethods.js +44 -30
  157. package/scheduler/createScheduleActionMethods.js.map +1 -1
  158. package/scheduler/handlers/executeAction/index.d.ts +1 -1
  159. package/scheduler/handlers/executeAction/index.js +30 -8
  160. package/scheduler/handlers/executeAction/index.js.map +1 -1
  161. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +5 -4
  162. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js.map +1 -1
  163. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +6 -7
  164. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js.map +1 -1
  165. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +4 -7
  166. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js.map +1 -1
  167. package/scheduler/handlers/executeAction/security.js +3 -1
  168. package/scheduler/handlers/executeAction/security.js.map +1 -1
  169. package/scheduler/handlers/scheduleAction/index.d.ts +1 -1
  170. package/scheduler/handlers/scheduleAction/index.js +21 -14
  171. package/scheduler/handlers/scheduleAction/index.js.map +1 -1
  172. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +19 -14
  173. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js.map +1 -1
  174. package/scheduler/handlers/utils.d.ts +2 -3
  175. package/scheduler/handlers/utils.js +6 -7
  176. package/scheduler/handlers/utils.js.map +1 -1
  177. package/scheduler/index.js +3 -1
  178. package/scheduler/index.js.map +1 -1
  179. package/scheduler/types.d.ts +12 -28
  180. package/scheduler/types.js +14 -17
  181. package/scheduler/types.js.map +1 -1
  182. package/storageOperations/changeRequestStorageOperations.js +60 -27
  183. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  184. package/storageOperations/commentStorageOperations.js +36 -30
  185. package/storageOperations/commentStorageOperations.js.map +1 -1
  186. package/storageOperations/contentReviewStorageOperations.d.ts +1 -1
  187. package/storageOperations/contentReviewStorageOperations.js +35 -27
  188. package/storageOperations/contentReviewStorageOperations.js.map +1 -1
  189. package/storageOperations/index.d.ts +1 -7
  190. package/storageOperations/index.js +11 -16
  191. package/storageOperations/index.js.map +1 -1
  192. package/storageOperations/models/changeRequest.model.d.ts +1 -2
  193. package/storageOperations/models/changeRequest.model.js +7 -7
  194. package/storageOperations/models/changeRequest.model.js.map +1 -1
  195. package/storageOperations/models/comment.model.d.ts +1 -2
  196. package/storageOperations/models/comment.model.js +7 -7
  197. package/storageOperations/models/comment.model.js.map +1 -1
  198. package/storageOperations/models/contentReview.model.d.ts +1 -2
  199. package/storageOperations/models/contentReview.model.js +13 -11
  200. package/storageOperations/models/contentReview.model.js.map +1 -1
  201. package/storageOperations/models/index.js +6 -26
  202. package/storageOperations/models/index.js.map +1 -1
  203. package/storageOperations/models/reviewer.model.d.ts +1 -2
  204. package/storageOperations/models/reviewer.model.js +8 -8
  205. package/storageOperations/models/reviewer.model.js.map +1 -1
  206. package/storageOperations/models/utils.js +3 -1
  207. package/storageOperations/models/utils.js.map +1 -1
  208. package/storageOperations/models/workflow.model.d.ts +1 -2
  209. package/storageOperations/models/workflow.model.js +19 -19
  210. package/storageOperations/models/workflow.model.js.map +1 -1
  211. package/storageOperations/reviewerStorageOperations.d.ts +1 -1
  212. package/storageOperations/reviewerStorageOperations.js +38 -35
  213. package/storageOperations/reviewerStorageOperations.js.map +1 -1
  214. package/storageOperations/types.js +3 -1
  215. package/storageOperations/workflowStorageOperations.js +41 -31
  216. package/storageOperations/workflowStorageOperations.js.map +1 -1
  217. package/types.d.ts +19 -17
  218. package/types.js +126 -28
  219. package/types.js.map +1 -1
  220. package/utils/contentApwSettingsPlugin.js +3 -1
  221. package/utils/contentApwSettingsPlugin.js.map +1 -1
  222. package/utils/errors.js +3 -1
  223. package/utils/errors.js.map +1 -1
  224. package/utils/fieldResolver.js +7 -7
  225. package/utils/fieldResolver.js.map +1 -1
  226. package/utils/pickEntryFieldValues.d.ts +3 -0
  227. package/utils/pickEntryFieldValues.js +31 -0
  228. package/utils/pickEntryFieldValues.js.map +1 -0
  229. package/utils/resolve.d.ts +1 -1
  230. package/utils/resolve.js +3 -1
  231. package/utils/resolve.js.map +1 -1
  232. package/storageOperations/models/contentModelPluginFactory.d.ts +0 -8
  233. package/storageOperations/models/contentModelPluginFactory.js +0 -19
  234. package/storageOperations/models/contentModelPluginFactory.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { Context } from "@webiny/api/types";
2
2
  import { SecurityIdentity, SecurityPermission } from "@webiny/api-security/types";
3
- import { I18NLocale, I18NContext } from "@webiny/api-i18n/types";
4
- import { Tenant } from "@webiny/api-tenancy/types";
5
- import { TenancyContext } from "@webiny/api-tenancy/types";
3
+ import { I18NContext, I18NLocale } from "@webiny/api-i18n/types";
4
+ import { TenancyContext, Tenant } from "@webiny/api-tenancy/types";
5
+ import { ApwIdentity } from "../types";
6
6
  export interface ListWhere {
7
7
  /**
8
8
  * Fields.
@@ -29,25 +29,6 @@ export interface ListParams {
29
29
  limit?: number;
30
30
  after?: string;
31
31
  }
32
- /**
33
- * A interface describing the reference to a user that created some data in the database.
34
- *
35
- * @category General
36
- */
37
- export interface CreatedBy {
38
- /**
39
- * ID if the user.
40
- */
41
- id: string;
42
- /**
43
- * Full name of the user.
44
- */
45
- displayName: string | null;
46
- /**
47
- * Type of the user (admin, user)
48
- */
49
- type: string;
50
- }
51
32
  export interface ListMeta {
52
33
  /**
53
34
  * A cursor for pagination.
@@ -69,8 +50,11 @@ export declare enum ApwContentTypes {
69
50
  export interface BaseFields {
70
51
  id: string;
71
52
  createdOn: string;
72
- savedOn?: string;
73
- createdBy: CreatedBy;
53
+ modifiedOn: string | null;
54
+ savedOn: string;
55
+ createdBy: ApwIdentity;
56
+ modifiedBy: ApwIdentity | null;
57
+ savedBy: ApwIdentity;
74
58
  tenant: string;
75
59
  locale: string;
76
60
  }
@@ -99,13 +83,13 @@ interface BaseApwCrud<TEntry, TCreateEntryParams, TUpdateEntryParams> {
99
83
  get(id: string): Promise<TEntry | null>;
100
84
  create(data: TCreateEntryParams): Promise<TEntry>;
101
85
  update(id: string, data: TUpdateEntryParams): Promise<TEntry>;
102
- delete(id: string): Promise<Boolean>;
86
+ delete(id: string): Promise<boolean>;
103
87
  }
104
88
  export interface ApwScheduleActionCrud extends BaseApwCrud<ApwScheduleAction, ApwScheduleActionData, ApwScheduleActionData> {
105
89
  list(params: ListParams): Promise<[ApwScheduleAction[], ListMeta]>;
106
90
  getCurrentTask(): Promise<ApwScheduleAction | null>;
107
91
  updateCurrentTask(item: ApwScheduleAction): Promise<ApwScheduleAction>;
108
- deleteCurrentTask(): Promise<Boolean>;
92
+ deleteCurrentTask(): Promise<boolean>;
109
93
  }
110
94
  export interface ScheduleActionContext extends Context, I18NContext, TenancyContext {
111
95
  scheduleAction: ApwScheduleActionCrud;
@@ -160,10 +144,10 @@ export interface ApwScheduleActionStorageOperations {
160
144
  list(params: StorageOperationsListScheduleActionsParams): Promise<StorageOperationsListScheduleActionsResponse>;
161
145
  create(params: StorageOperationsCreateScheduleActionParams): Promise<ApwScheduleAction>;
162
146
  update(params: StorageOperationsUpdateScheduleActionParams): Promise<ApwScheduleAction>;
163
- delete(params: StorageOperationsDeleteScheduleActionParams): Promise<Boolean>;
147
+ delete(params: StorageOperationsDeleteScheduleActionParams): Promise<boolean>;
164
148
  getCurrentTask(params: StorageOperationsGetCurrentTaskParams): Promise<ApwScheduleAction | null>;
165
149
  updateCurrentTask(params: StorageOperationsUpdateCurrentTaskParams): Promise<ApwScheduleAction>;
166
- deleteCurrentTask(params: StorageOperationsDeleteCurrentTaskParams): Promise<Boolean>;
150
+ deleteCurrentTask(params: StorageOperationsDeleteCurrentTaskParams): Promise<boolean>;
167
151
  }
168
152
  export interface CreateApwContextParams {
169
153
  storageOperations: ApwScheduleActionStorageOperations;
@@ -4,25 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.InvocationTypes = exports.ApwScheduleActionTypes = exports.ApwContentTypes = void 0;
7
- /**
8
- * A interface describing the reference to a user that created some data in the database.
9
- *
10
- * @category General
11
- */
12
- let ApwContentTypes;
13
- exports.ApwContentTypes = ApwContentTypes;
14
- (function (ApwContentTypes) {
7
+ let ApwContentTypes = /*#__PURE__*/function (ApwContentTypes) {
15
8
  ApwContentTypes["PAGE"] = "page";
16
9
  ApwContentTypes["CMS_ENTRY"] = "cms_entry";
17
- })(ApwContentTypes || (exports.ApwContentTypes = ApwContentTypes = {}));
18
- let ApwScheduleActionTypes;
19
- exports.ApwScheduleActionTypes = ApwScheduleActionTypes;
20
- (function (ApwScheduleActionTypes) {
10
+ return ApwContentTypes;
11
+ }({});
12
+ exports.ApwContentTypes = ApwContentTypes;
13
+ let ApwScheduleActionTypes = /*#__PURE__*/function (ApwScheduleActionTypes) {
21
14
  ApwScheduleActionTypes["PUBLISH"] = "publish";
22
15
  ApwScheduleActionTypes["UNPUBLISH"] = "unpublish";
23
- })(ApwScheduleActionTypes || (exports.ApwScheduleActionTypes = ApwScheduleActionTypes = {}));
24
- let InvocationTypes;
25
- exports.InvocationTypes = InvocationTypes;
26
- (function (InvocationTypes) {
16
+ return ApwScheduleActionTypes;
17
+ }({});
18
+ exports.ApwScheduleActionTypes = ApwScheduleActionTypes;
19
+ let InvocationTypes = /*#__PURE__*/function (InvocationTypes) {
27
20
  InvocationTypes["SCHEDULED"] = "scheduled";
28
- })(InvocationTypes || (exports.InvocationTypes = InvocationTypes = {}));
21
+ return InvocationTypes;
22
+ }({});
23
+ exports.InvocationTypes = InvocationTypes;
24
+
25
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ApwContentTypes","ApwScheduleActionTypes","InvocationTypes"],"sources":["types.ts"],"sourcesContent":["import { Context } from \"@webiny/api/types\";\nimport { SecurityIdentity, SecurityPermission } from \"@webiny/api-security/types\";\nimport { I18NLocale, I18NContext } from \"@webiny/api-i18n/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { TenancyContext } from \"@webiny/api-tenancy/types\";\n\nexport interface ListWhere {\n /**\n * Fields.\n */\n id?: string;\n id_in?: string[];\n id_not?: string;\n id_not_in?: string[];\n /**\n * Who created the entry?\n */\n createdBy?: string;\n createdBy_not?: string;\n createdBy_in?: string[];\n createdBy_not_in?: string[];\n /**\n * By datetime field.\n */\n datetime_startsWith?: string;\n}\n\nexport interface ListParams {\n where: ListWhere;\n sort?: (\"datetime_ASC\" | \"datetime_DESC\")[];\n limit?: number;\n after?: string;\n}\n\n/**\n * A interface describing the reference to a user that created some data in the database.\n *\n * @category General\n */\nexport interface CreatedBy {\n /**\n * ID if the user.\n */\n id: string;\n /**\n * Full name of the user.\n */\n displayName: string | null;\n /**\n * Type of the user (admin, user)\n */\n type: string;\n}\n\nexport interface ListMeta {\n /**\n * A cursor for pagination.\n */\n cursor: string | null;\n /**\n * Is there more items to load?\n */\n hasMoreItems: boolean;\n /**\n * Total count of the items in the storage.\n */\n totalCount: number;\n}\n\nexport enum ApwContentTypes {\n PAGE = \"page\",\n CMS_ENTRY = \"cms_entry\"\n}\n\nexport interface BaseFields {\n id: string;\n createdOn: string;\n savedOn?: string;\n createdBy: CreatedBy;\n tenant: string;\n locale: string;\n}\n\nexport interface ApwScheduleAction extends BaseFields {\n data: ApwScheduleActionData;\n}\n\nexport enum ApwScheduleActionTypes {\n PUBLISH = \"publish\",\n UNPUBLISH = \"unpublish\"\n}\n\nexport interface ApwScheduleActionData {\n action: ApwScheduleActionTypes;\n type: ApwContentTypes;\n datetime: string;\n entryId: string;\n /**\n * We will add modelId to the data for now.\n * TODO extract in separate package?\n */\n modelId?: string;\n}\n\nexport enum InvocationTypes {\n SCHEDULED = \"scheduled\"\n}\n\ninterface BaseApwCrud<TEntry, TCreateEntryParams, TUpdateEntryParams> {\n get(id: string): Promise<TEntry | null>;\n\n create(data: TCreateEntryParams): Promise<TEntry>;\n\n update(id: string, data: TUpdateEntryParams): Promise<TEntry>;\n\n delete(id: string): Promise<Boolean>;\n}\n\nexport interface ApwScheduleActionCrud\n extends BaseApwCrud<ApwScheduleAction, ApwScheduleActionData, ApwScheduleActionData> {\n list(params: ListParams): Promise<[ApwScheduleAction[], ListMeta]>;\n\n getCurrentTask(): Promise<ApwScheduleAction | null>;\n\n updateCurrentTask(item: ApwScheduleAction): Promise<ApwScheduleAction>;\n\n deleteCurrentTask(): Promise<Boolean>;\n}\n\nexport interface ScheduleActionContext extends Context, I18NContext, TenancyContext {\n scheduleAction: ApwScheduleActionCrud;\n}\n\nexport interface CreateScheduleActionParams {\n getLocale: () => I18NLocale;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getPermission: (name: string) => Promise<SecurityPermission | null>;\n storageOperations: ApwScheduleActionStorageOperations;\n}\n\ninterface CreateApwScheduleActionParams {\n item: ApwScheduleAction;\n input: ApwScheduleActionData;\n}\n\ninterface StorageOperationsGetParams {\n where: {\n id: string;\n tenant: string;\n locale: string;\n };\n}\n\ninterface StorageOperationsDeleteParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport interface ApwScheduleActionListParams extends ListParams {\n where: ListWhere & {\n tenant: string;\n locale: string;\n };\n}\n\nexport type StorageOperationsGetScheduleActionParams = StorageOperationsGetParams;\n\nexport type StorageOperationsDeleteScheduleActionParams = StorageOperationsDeleteParams;\nexport type StorageOperationsListScheduleActionsParams = ApwScheduleActionListParams;\n\nexport type StorageOperationsCreateScheduleActionParams = CreateApwScheduleActionParams;\n\nexport interface StorageOperationsUpdateScheduleActionParams {\n item: ApwScheduleAction;\n input: ApwScheduleActionData;\n}\n\nexport type StorageOperationsListScheduleActionsResponse = [ApwScheduleAction[], ListMeta];\n\nexport interface StorageOperationsUpdateCurrentTaskParams {\n item: ApwScheduleAction;\n}\n\nexport interface StorageOperationsGetCurrentTaskParams {\n where: Pick<StorageOperationsGetParams[\"where\"], \"tenant\" | \"locale\">;\n}\n\nexport type StorageOperationsDeleteCurrentTaskParams = Pick<\n StorageOperationsDeleteParams,\n \"tenant\" | \"locale\"\n>;\n\nexport interface ApwScheduleActionStorageOperations {\n get(params: StorageOperationsGetScheduleActionParams): Promise<ApwScheduleAction | null>;\n\n list(\n params: StorageOperationsListScheduleActionsParams\n ): Promise<StorageOperationsListScheduleActionsResponse>;\n\n create(params: StorageOperationsCreateScheduleActionParams): Promise<ApwScheduleAction>;\n\n update(params: StorageOperationsUpdateScheduleActionParams): Promise<ApwScheduleAction>;\n\n delete(params: StorageOperationsDeleteScheduleActionParams): Promise<Boolean>;\n\n getCurrentTask(\n params: StorageOperationsGetCurrentTaskParams\n ): Promise<ApwScheduleAction | null>;\n\n updateCurrentTask(params: StorageOperationsUpdateCurrentTaskParams): Promise<ApwScheduleAction>;\n\n deleteCurrentTask(params: StorageOperationsDeleteCurrentTaskParams): Promise<Boolean>;\n}\n\nexport interface CreateApwContextParams {\n storageOperations: ApwScheduleActionStorageOperations;\n}\n"],"mappings":";;;;;;AAkCA;AACA;AACA;AACA;AACA;AAJA,IAmCYA,eAAe;AAAA;AAAA,WAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,+BAAfA,eAAe;AAAA,IAkBfC,sBAAsB;AAAA;AAAA,WAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;AAAA,GAAtBA,sBAAsB,sCAAtBA,sBAAsB;AAAA,IAiBtBC,eAAe;AAAA;AAAA,WAAfA,eAAe;EAAfA,eAAe;AAAA,GAAfA,eAAe,+BAAfA,eAAe"}
1
+ {"version":3,"names":["ApwContentTypes","exports","ApwScheduleActionTypes","InvocationTypes"],"sources":["types.ts"],"sourcesContent":["import { Context } from \"@webiny/api/types\";\nimport { SecurityIdentity, SecurityPermission } from \"@webiny/api-security/types\";\nimport { I18NContext, I18NLocale } from \"@webiny/api-i18n/types\";\nimport { TenancyContext, Tenant } from \"@webiny/api-tenancy/types\";\nimport { ApwIdentity } from \"~/types\";\n\nexport interface ListWhere {\n /**\n * Fields.\n */\n id?: string;\n id_in?: string[];\n id_not?: string;\n id_not_in?: string[];\n /**\n * Who created the entry?\n */\n createdBy?: string;\n createdBy_not?: string;\n createdBy_in?: string[];\n createdBy_not_in?: string[];\n /**\n * By datetime field.\n */\n datetime_startsWith?: string;\n}\n\nexport interface ListParams {\n where: ListWhere;\n sort?: (\"datetime_ASC\" | \"datetime_DESC\")[];\n limit?: number;\n after?: string;\n}\n\nexport interface ListMeta {\n /**\n * A cursor for pagination.\n */\n cursor: string | null;\n /**\n * Is there more items to load?\n */\n hasMoreItems: boolean;\n /**\n * Total count of the items in the storage.\n */\n totalCount: number;\n}\n\nexport enum ApwContentTypes {\n PAGE = \"page\",\n CMS_ENTRY = \"cms_entry\"\n}\n\nexport interface BaseFields {\n id: string;\n\n createdOn: string;\n modifiedOn: string | null;\n savedOn: string;\n createdBy: ApwIdentity;\n modifiedBy: ApwIdentity | null;\n savedBy: ApwIdentity;\n\n tenant: string;\n locale: string;\n}\n\nexport interface ApwScheduleAction extends BaseFields {\n data: ApwScheduleActionData;\n}\n\nexport enum ApwScheduleActionTypes {\n PUBLISH = \"publish\",\n UNPUBLISH = \"unpublish\"\n}\n\nexport interface ApwScheduleActionData {\n action: ApwScheduleActionTypes;\n type: ApwContentTypes;\n datetime: string;\n entryId: string;\n /**\n * We will add modelId to the data for now.\n * TODO extract in separate package?\n */\n modelId?: string;\n}\n\nexport enum InvocationTypes {\n SCHEDULED = \"scheduled\"\n}\n\ninterface BaseApwCrud<TEntry, TCreateEntryParams, TUpdateEntryParams> {\n get(id: string): Promise<TEntry | null>;\n\n create(data: TCreateEntryParams): Promise<TEntry>;\n\n update(id: string, data: TUpdateEntryParams): Promise<TEntry>;\n\n delete(id: string): Promise<boolean>;\n}\n\nexport interface ApwScheduleActionCrud\n extends BaseApwCrud<ApwScheduleAction, ApwScheduleActionData, ApwScheduleActionData> {\n list(params: ListParams): Promise<[ApwScheduleAction[], ListMeta]>;\n\n getCurrentTask(): Promise<ApwScheduleAction | null>;\n\n updateCurrentTask(item: ApwScheduleAction): Promise<ApwScheduleAction>;\n\n deleteCurrentTask(): Promise<boolean>;\n}\n\nexport interface ScheduleActionContext extends Context, I18NContext, TenancyContext {\n scheduleAction: ApwScheduleActionCrud;\n}\n\nexport interface CreateScheduleActionParams {\n getLocale: () => I18NLocale;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getPermission: (name: string) => Promise<SecurityPermission | null>;\n storageOperations: ApwScheduleActionStorageOperations;\n}\n\ninterface CreateApwScheduleActionParams {\n item: ApwScheduleAction;\n input: ApwScheduleActionData;\n}\n\ninterface StorageOperationsGetParams {\n where: {\n id: string;\n tenant: string;\n locale: string;\n };\n}\n\ninterface StorageOperationsDeleteParams {\n id: string;\n tenant: string;\n locale: string;\n}\n\nexport interface ApwScheduleActionListParams extends ListParams {\n where: ListWhere & {\n tenant: string;\n locale: string;\n };\n}\n\nexport type StorageOperationsGetScheduleActionParams = StorageOperationsGetParams;\n\nexport type StorageOperationsDeleteScheduleActionParams = StorageOperationsDeleteParams;\nexport type StorageOperationsListScheduleActionsParams = ApwScheduleActionListParams;\n\nexport type StorageOperationsCreateScheduleActionParams = CreateApwScheduleActionParams;\n\nexport interface StorageOperationsUpdateScheduleActionParams {\n item: ApwScheduleAction;\n input: ApwScheduleActionData;\n}\n\nexport type StorageOperationsListScheduleActionsResponse = [ApwScheduleAction[], ListMeta];\n\nexport interface StorageOperationsUpdateCurrentTaskParams {\n item: ApwScheduleAction;\n}\n\nexport interface StorageOperationsGetCurrentTaskParams {\n where: Pick<StorageOperationsGetParams[\"where\"], \"tenant\" | \"locale\">;\n}\n\nexport type StorageOperationsDeleteCurrentTaskParams = Pick<\n StorageOperationsDeleteParams,\n \"tenant\" | \"locale\"\n>;\n\nexport interface ApwScheduleActionStorageOperations {\n get(params: StorageOperationsGetScheduleActionParams): Promise<ApwScheduleAction | null>;\n\n list(\n params: StorageOperationsListScheduleActionsParams\n ): Promise<StorageOperationsListScheduleActionsResponse>;\n\n create(params: StorageOperationsCreateScheduleActionParams): Promise<ApwScheduleAction>;\n\n update(params: StorageOperationsUpdateScheduleActionParams): Promise<ApwScheduleAction>;\n\n delete(params: StorageOperationsDeleteScheduleActionParams): Promise<boolean>;\n\n getCurrentTask(\n params: StorageOperationsGetCurrentTaskParams\n ): Promise<ApwScheduleAction | null>;\n\n updateCurrentTask(params: StorageOperationsUpdateCurrentTaskParams): Promise<ApwScheduleAction>;\n\n deleteCurrentTask(params: StorageOperationsDeleteCurrentTaskParams): Promise<boolean>;\n}\n\nexport interface CreateApwContextParams {\n storageOperations: ApwScheduleActionStorageOperations;\n}\n"],"mappings":";;;;;;IAiDYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA;AAAA,IAuBfE,sBAAsB,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAAD,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AAAA,IAiBtBC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAF,OAAA,CAAAE,eAAA,GAAAA,eAAA"}
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createChangeRequestStorageOperations = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _index = require("./index");
8
+ var _pickEntryFieldValues = require("../utils/pickEntryFieldValues");
10
9
  var _fieldResolver = require("../utils/fieldResolver");
11
10
  var _error = _interopRequireDefault(require("@webiny/error"));
12
11
  const createChangeRequestStorageOperations = params => {
@@ -16,9 +15,9 @@ const createChangeRequestStorageOperations = params => {
16
15
  security
17
16
  } = params;
18
17
  const getChangeRequestModel = async () => {
19
- security.disableAuthorization();
20
- const model = await cms.getModel("apwChangeRequestModelDefinition");
21
- security.enableAuthorization();
18
+ const model = await security.withoutAuthorization(async () => {
19
+ return cms.getModel("apwChangeRequestModelDefinition");
20
+ });
22
21
  if (!model) {
23
22
  throw new _error.default("Could not find `apwChangeRequestModelDefinition` model.", "MODEL_NOT_FOUND_ERROR");
24
23
  }
@@ -28,12 +27,12 @@ const createChangeRequestStorageOperations = params => {
28
27
  id
29
28
  }) => {
30
29
  const model = await getChangeRequestModel();
31
- security.disableAuthorization();
32
- const entry = await cms.getEntryById(model, id);
33
- security.enableAuthorization();
30
+ const entry = await security.withoutAuthorization(async () => {
31
+ return cms.getEntryById(model, id);
32
+ });
34
33
  return (0, _fieldResolver.getFieldValues)({
35
34
  entry,
36
- fields: _index.baseFields,
35
+ fields: _pickEntryFieldValues.baseFields,
37
36
  context: getCmsContext(),
38
37
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
39
38
  });
@@ -43,15 +42,18 @@ const createChangeRequestStorageOperations = params => {
43
42
  getChangeRequest,
44
43
  async listChangeRequests(params) {
45
44
  const model = await getChangeRequestModel();
46
- security.disableAuthorization();
47
- const [entries, meta] = await cms.listLatestEntries(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
48
- where: (0, _objectSpread2.default)({}, params.where)
49
- }));
50
- security.enableAuthorization();
45
+ const [entries, meta] = await security.withoutAuthorization(async () => {
46
+ return cms.listLatestEntries(model, {
47
+ ...params,
48
+ where: {
49
+ ...params.where
50
+ }
51
+ });
52
+ });
51
53
  try {
52
54
  const all = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
53
55
  entry,
54
- fields: _index.baseFields,
56
+ fields: _pickEntryFieldValues.baseFields,
55
57
  context: getCmsContext(),
56
58
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
57
59
  })));
@@ -62,18 +64,19 @@ const createChangeRequestStorageOperations = params => {
62
64
  },
63
65
  async createChangeRequest(params) {
64
66
  const model = await getChangeRequestModel();
65
- security.disableAuthorization();
66
- const entry = await cms.createEntry(model, params.data);
67
- security.enableAuthorization();
67
+ const entry = await security.withoutAuthorization(async () => {
68
+ return cms.createEntry(model, params.data);
69
+ });
68
70
  return (0, _fieldResolver.getFieldValues)({
69
71
  entry,
70
- fields: _index.baseFields,
72
+ fields: _pickEntryFieldValues.baseFields,
71
73
  context: getCmsContext(),
72
74
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
73
75
  });
74
76
  },
75
77
  async updateChangeRequest(params) {
76
78
  const model = await getChangeRequestModel();
79
+
77
80
  /**
78
81
  * We're fetching the existing entry here because we're not accepting "app" field as input,
79
82
  * but, we still need to retain its value after the "update" operation.
@@ -81,23 +84,53 @@ const createChangeRequestStorageOperations = params => {
81
84
  const existingEntry = await getChangeRequest({
82
85
  id: params.id
83
86
  });
84
- security.disableAuthorization();
85
- const entry = await cms.updateEntry(model, params.id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingEntry), params.data));
86
- security.enableAuthorization();
87
+
88
+ /**
89
+ * Only creator can update the change request
90
+ */
91
+ if (existingEntry.createdBy.id !== security.getIdentity().id) {
92
+ throw new _error.default("A change request can only be updated by its creator.", "ONLY_CREATOR_CAN_UPDATE_CHANGE_REQUEST");
93
+ }
94
+ const entry = await security.withoutAuthorization(async () => {
95
+ return cms.updateEntry(model, params.id, {
96
+ ...existingEntry,
97
+ ...params.data,
98
+ savedOn: new Date()
99
+ });
100
+ });
87
101
  return (0, _fieldResolver.getFieldValues)({
88
102
  entry,
89
- fields: _index.baseFields,
103
+ fields: _pickEntryFieldValues.baseFields,
90
104
  context: getCmsContext(),
91
105
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
92
106
  });
93
107
  },
94
108
  async deleteChangeRequest(params) {
95
109
  const model = await getChangeRequestModel();
96
- security.disableAuthorization();
97
- await cms.deleteEntry(model, params.id);
98
- security.enableAuthorization();
110
+ if (!security.getIdentity()) {
111
+ return true;
112
+ }
113
+
114
+ /**
115
+ * We're fetching the existing entry
116
+ */
117
+ const existingEntry = await getChangeRequest({
118
+ id: params.id
119
+ });
120
+
121
+ /**
122
+ * Only creator can delete the change request
123
+ */
124
+ if (existingEntry.createdBy.id !== security.getIdentity().id) {
125
+ throw new _error.default("A change request can only be deleted by its creator.", "ONLY_CREATOR_CAN_DELETE_CHANGE_REQUEST");
126
+ }
127
+ await security.withoutAuthorization(async () => {
128
+ return cms.deleteEntry(model, params.id);
129
+ });
99
130
  return true;
100
131
  }
101
132
  };
102
133
  };
103
- exports.createChangeRequestStorageOperations = createChangeRequestStorageOperations;
134
+ exports.createChangeRequestStorageOperations = createChangeRequestStorageOperations;
135
+
136
+ //# sourceMappingURL=changeRequestStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createChangeRequestStorageOperations","params","cms","getCmsContext","security","getChangeRequestModel","disableAuthorization","model","getModel","enableAuthorization","WebinyError","getChangeRequest","id","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","listChangeRequests","entries","meta","listLatestEntries","where","all","Promise","map","ex","message","code","data","createChangeRequest","createEntry","updateChangeRequest","existingEntry","updateEntry","deleteChangeRequest","deleteEntry"],"sources":["changeRequestStorageOperations.ts"],"sourcesContent":["import { ApwChangeRequestStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwChangeRequest } from \"~/types\";\n\nexport const createChangeRequestStorageOperations = (\n params: CreateApwStorageOperationsParams\n): ApwChangeRequestStorageOperations => {\n const { cms, getCmsContext, security } = params;\n const getChangeRequestModel = async () => {\n security.disableAuthorization();\n const model = await cms.getModel(\"apwChangeRequestModelDefinition\");\n security.enableAuthorization();\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwChangeRequestModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getChangeRequest: ApwChangeRequestStorageOperations[\"getChangeRequest\"] = async ({\n id\n }) => {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.getEntryById(model, id);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getChangeRequestModel,\n getChangeRequest,\n async listChangeRequests(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where\n }\n });\n security.enableAuthorization();\n try {\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwChangeRequest>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code, ex.data);\n }\n },\n async createChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.createEntry(model, params.data);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateChangeRequest(params) {\n const model = await getChangeRequestModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getChangeRequest({ id: params.id });\n\n security.disableAuthorization();\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteChangeRequest(params) {\n const model = await getChangeRequestModel();\n security.disableAuthorization();\n await cms.deleteEntry(model, params.id);\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_pickEntryFieldValues","require","_fieldResolver","_error","_interopRequireDefault","createChangeRequestStorageOperations","params","cms","getCmsContext","security","getChangeRequestModel","model","withoutAuthorization","getModel","WebinyError","getChangeRequest","id","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","listChangeRequests","entries","meta","listLatestEntries","where","all","Promise","map","ex","message","code","data","createChangeRequest","createEntry","updateChangeRequest","existingEntry","createdBy","getIdentity","updateEntry","savedOn","Date","deleteChangeRequest","deleteEntry","exports"],"sources":["changeRequestStorageOperations.ts"],"sourcesContent":["import { ApwChangeRequestStorageOperations } from \"./types\";\nimport { CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { baseFields } from \"~/utils/pickEntryFieldValues\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwChangeRequest } from \"~/types\";\n\nexport const createChangeRequestStorageOperations = (\n params: CreateApwStorageOperationsParams\n): ApwChangeRequestStorageOperations => {\n const { cms, getCmsContext, security } = params;\n const getChangeRequestModel = async () => {\n const model = await security.withoutAuthorization(async () => {\n return cms.getModel(\"apwChangeRequestModelDefinition\");\n });\n if (!model) {\n throw new WebinyError(\n \"Could not find `apwChangeRequestModelDefinition` model.\",\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getChangeRequest: ApwChangeRequestStorageOperations[\"getChangeRequest\"] = async ({\n id\n }) => {\n const model = await getChangeRequestModel();\n\n const entry = await security.withoutAuthorization(async () => {\n return cms.getEntryById(model, id);\n });\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getChangeRequestModel,\n getChangeRequest,\n async listChangeRequests(params) {\n const model = await getChangeRequestModel();\n\n const [entries, meta] = await security.withoutAuthorization(async () => {\n return cms.listLatestEntries(model, {\n ...params,\n where: {\n ...params.where\n }\n });\n });\n try {\n const all = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwChangeRequest>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n return [all, meta];\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code, ex.data);\n }\n },\n async createChangeRequest(params) {\n const model = await getChangeRequestModel();\n\n const entry = await security.withoutAuthorization(async () => {\n return cms.createEntry(model, params.data);\n });\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async updateChangeRequest(params) {\n const model = await getChangeRequestModel();\n\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getChangeRequest({ id: params.id });\n\n /**\n * Only creator can update the change request\n */\n if (existingEntry.createdBy.id !== security.getIdentity().id) {\n throw new WebinyError(\n \"A change request can only be updated by its creator.\",\n \"ONLY_CREATOR_CAN_UPDATE_CHANGE_REQUEST\"\n );\n }\n\n const entry = await security.withoutAuthorization(async () => {\n return cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data,\n savedOn: new Date()\n });\n });\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n },\n async deleteChangeRequest(params) {\n const model = await getChangeRequestModel();\n\n if (!security.getIdentity()) {\n return true;\n }\n\n /**\n * We're fetching the existing entry\n */\n const existingEntry = await getChangeRequest({ id: params.id });\n\n /**\n * Only creator can delete the change request\n */\n if (existingEntry.createdBy.id !== security.getIdentity().id) {\n throw new WebinyError(\n \"A change request can only be deleted by its creator.\",\n \"ONLY_CREATOR_CAN_DELETE_CHANGE_REQUEST\"\n );\n }\n\n await security.withoutAuthorization(async () => {\n return cms.deleteEntry(model, params.id);\n });\n\n return true;\n }\n };\n};\n"],"mappings":"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"}
@@ -5,9 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createCommentStorageOperations = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _index = require("./index");
10
8
  var _fieldResolver = require("../utils/fieldResolver");
9
+ var _pickEntryFieldValues = require("../utils/pickEntryFieldValues");
11
10
  var _error = _interopRequireDefault(require("@webiny/error"));
12
11
  var _comment = require("./models/comment.model");
13
12
  const pickIdFromChangeRequest = obj => {
@@ -24,9 +23,9 @@ const createCommentStorageOperations = ({
24
23
  security
25
24
  }) => {
26
25
  const getCommentModel = async () => {
27
- security.disableAuthorization();
28
- const model = await cms.getModel(_comment.COMMENT_MODEL_ID);
29
- security.enableAuthorization();
26
+ const model = await security.withoutAuthorization(async () => {
27
+ return cms.getModel(_comment.COMMENT_MODEL_ID);
28
+ });
30
29
  if (!model) {
31
30
  throw new _error.default(`Could not find "${_comment.COMMENT_MODEL_ID}" model.`, "MODEL_NOT_FOUND_ERROR");
32
31
  }
@@ -36,12 +35,12 @@ const createCommentStorageOperations = ({
36
35
  id
37
36
  }) => {
38
37
  const model = await getCommentModel();
39
- security.disableAuthorization();
40
- const entry = await cms.getEntryById(model, id);
41
- security.enableAuthorization();
38
+ const entry = await security.withoutAuthorization(async () => {
39
+ return cms.getEntryById(model, id);
40
+ });
42
41
  return (0, _fieldResolver.getFieldValues)({
43
42
  entry,
44
- fields: _index.baseFields,
43
+ fields: _pickEntryFieldValues.baseFields,
45
44
  context: getCmsContext(),
46
45
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
47
46
  });
@@ -54,12 +53,12 @@ const createCommentStorageOperations = ({
54
53
  },
55
54
  async listComments(params) {
56
55
  const model = await getCommentModel();
57
- security.disableAuthorization();
58
- const [entries, meta] = await cms.listLatestEntries(model, params);
59
- security.enableAuthorization();
56
+ const [entries, meta] = await security.withoutAuthorization(async () => {
57
+ return cms.listLatestEntries(model, params);
58
+ });
60
59
  const values = await Promise.all(entries.map(entry => (0, _fieldResolver.getFieldValues)({
61
60
  entry,
62
- fields: _index.baseFields,
61
+ fields: _pickEntryFieldValues.baseFields,
63
62
  context: getCmsContext(),
64
63
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
65
64
  })));
@@ -69,17 +68,18 @@ const createCommentStorageOperations = ({
69
68
  async createComment(params) {
70
69
  const model = await getCommentModel();
71
70
  const refModel = await this.getChangeRequestModel();
72
- security.disableAuthorization();
73
- const entry = await cms.createEntry(model, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params.data), {}, {
74
- changeRequest: {
75
- id: params.data.changeRequest,
76
- modelId: refModel.modelId
77
- }
78
- }));
79
- security.enableAuthorization();
71
+ const entry = await security.withoutAuthorization(async () => {
72
+ return cms.createEntry(model, {
73
+ ...params.data,
74
+ changeRequest: {
75
+ id: params.data.changeRequest,
76
+ modelId: refModel.modelId
77
+ }
78
+ });
79
+ });
80
80
  const values = await (0, _fieldResolver.getFieldValues)({
81
81
  entry,
82
- fields: _index.baseFields,
82
+ fields: _pickEntryFieldValues.baseFields,
83
83
  context: getCmsContext(),
84
84
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
85
85
  });
@@ -94,12 +94,16 @@ const createCommentStorageOperations = ({
94
94
  const existingEntry = await getComment({
95
95
  id: params.id
96
96
  });
97
- security.disableAuthorization();
98
- const entry = await cms.updateEntry(model, params.id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, existingEntry), params.data));
99
- security.enableAuthorization();
97
+ const entry = await security.withoutAuthorization(async () => {
98
+ return cms.updateEntry(model, params.id, {
99
+ ...existingEntry,
100
+ ...params.data,
101
+ savedOn: new Date()
102
+ });
103
+ });
100
104
  const values = await (0, _fieldResolver.getFieldValues)({
101
105
  entry,
102
- fields: _index.baseFields,
106
+ fields: _pickEntryFieldValues.baseFields,
103
107
  context: getCmsContext(),
104
108
  transformers: [(0, _fieldResolver.getTransformer)(model, "body")]
105
109
  });
@@ -107,11 +111,13 @@ const createCommentStorageOperations = ({
107
111
  },
108
112
  async deleteComment(params) {
109
113
  const model = await getCommentModel();
110
- security.disableAuthorization();
111
- await cms.deleteEntry(model, params.id);
112
- security.enableAuthorization();
114
+ await security.withoutAuthorization(async () => {
115
+ return cms.deleteEntry(model, params.id);
116
+ });
113
117
  return true;
114
118
  }
115
119
  };
116
120
  };
117
- exports.createCommentStorageOperations = createCommentStorageOperations;
121
+ exports.createCommentStorageOperations = createCommentStorageOperations;
122
+
123
+ //# sourceMappingURL=commentStorageOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["pickIdFromChangeRequest","obj","rawValue","id","createCommentStorageOperations","cms","getCmsContext","security","getCommentModel","disableAuthorization","model","getModel","COMMENT_MODEL_ID","enableAuthorization","WebinyError","getComment","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","params","values","listComments","entries","meta","listLatestEntries","Promise","all","map","value","createComment","refModel","getChangeRequestModel","createEntry","data","changeRequest","modelId","updateComment","existingEntry","updateEntry","deleteComment","deleteEntry"],"sources":["commentStorageOperations.ts"],"sourcesContent":["import { ApwStorageOperations } from \"./types\";\nimport { ApwCommentStorageOperations } from \"./types\";\nimport { baseFields, CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport WebinyError from \"@webiny/error\";\nimport { ApwComment } from \"~/types\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { COMMENT_MODEL_ID } from \"~/storageOperations/models/comment.model\";\n\nconst pickIdFromChangeRequest = (obj: Record<string, any>): ApwComment => {\n const rawValue = obj[\"changeRequest\"];\n if (!rawValue) {\n return obj as unknown as ApwComment;\n }\n obj[\"changeRequest\"] = rawValue.id;\n return obj as unknown as ApwComment;\n};\n\nexport const createCommentStorageOperations = ({\n cms,\n getCmsContext,\n security\n}: CreateApwStorageOperationsParams): ApwCommentStorageOperations => {\n const getCommentModel = async () => {\n security.disableAuthorization();\n const model = await cms.getModel(COMMENT_MODEL_ID);\n security.enableAuthorization();\n if (!model) {\n throw new WebinyError(\n `Could not find \"${COMMENT_MODEL_ID}\" model.`,\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getComment: ApwCommentStorageOperations[\"getComment\"] = async ({ id }) => {\n const model = await getCommentModel();\n security.disableAuthorization();\n const entry = await cms.getEntryById(model, id);\n security.enableAuthorization();\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getCommentModel,\n getComment: async params => {\n const values = await getComment(params);\n return pickIdFromChangeRequest(values);\n },\n async listComments(params) {\n const model = await getCommentModel();\n security.disableAuthorization();\n const [entries, meta] = await cms.listLatestEntries(\n model,\n params as CmsEntryListParams\n );\n security.enableAuthorization();\n const values = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwComment>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n const all = values.map(value => pickIdFromChangeRequest(value));\n return [all, meta];\n },\n async createComment(this: ApwStorageOperations, params) {\n const model = await getCommentModel();\n const refModel = await this.getChangeRequestModel();\n security.disableAuthorization();\n const entry = await cms.createEntry(model, {\n ...params.data,\n changeRequest: {\n id: params.data.changeRequest,\n modelId: refModel.modelId\n }\n });\n security.enableAuthorization();\n\n const values = await getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n return pickIdFromChangeRequest(values);\n },\n async updateComment(params) {\n const model = await getCommentModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getComment({ id: params.id });\n\n security.disableAuthorization();\n const entry = await cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data\n });\n security.enableAuthorization();\n const values = await getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n return pickIdFromChangeRequest(values);\n },\n async deleteComment(params) {\n const model = await getCommentModel();\n security.disableAuthorization();\n await cms.deleteEntry(model, params.id);\n security.enableAuthorization();\n return true;\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_fieldResolver","require","_pickEntryFieldValues","_error","_interopRequireDefault","_comment","pickIdFromChangeRequest","obj","rawValue","id","createCommentStorageOperations","cms","getCmsContext","security","getCommentModel","model","withoutAuthorization","getModel","COMMENT_MODEL_ID","WebinyError","getComment","entry","getEntryById","getFieldValues","fields","baseFields","context","transformers","getTransformer","params","values","listComments","entries","meta","listLatestEntries","Promise","all","map","value","createComment","refModel","getChangeRequestModel","createEntry","data","changeRequest","modelId","updateComment","existingEntry","updateEntry","savedOn","Date","deleteComment","deleteEntry","exports"],"sources":["commentStorageOperations.ts"],"sourcesContent":["import { ApwStorageOperations } from \"./types\";\nimport { ApwCommentStorageOperations } from \"./types\";\nimport { CreateApwStorageOperationsParams } from \"~/storageOperations/index\";\nimport { getFieldValues, getTransformer } from \"~/utils/fieldResolver\";\nimport { baseFields } from \"~/utils/pickEntryFieldValues\";\n\nimport WebinyError from \"@webiny/error\";\nimport { ApwComment } from \"~/types\";\nimport { CmsEntryListParams } from \"@webiny/api-headless-cms/types\";\nimport { COMMENT_MODEL_ID } from \"~/storageOperations/models/comment.model\";\n\nconst pickIdFromChangeRequest = (obj: Record<string, any>): ApwComment => {\n const rawValue = obj[\"changeRequest\"];\n if (!rawValue) {\n return obj as unknown as ApwComment;\n }\n obj[\"changeRequest\"] = rawValue.id;\n return obj as unknown as ApwComment;\n};\n\nexport const createCommentStorageOperations = ({\n cms,\n getCmsContext,\n security\n}: CreateApwStorageOperationsParams): ApwCommentStorageOperations => {\n const getCommentModel = async () => {\n const model = await security.withoutAuthorization(async () => {\n return cms.getModel(COMMENT_MODEL_ID);\n });\n\n if (!model) {\n throw new WebinyError(\n `Could not find \"${COMMENT_MODEL_ID}\" model.`,\n \"MODEL_NOT_FOUND_ERROR\"\n );\n }\n return model;\n };\n const getComment: ApwCommentStorageOperations[\"getComment\"] = async ({ id }) => {\n const model = await getCommentModel();\n const entry = await security.withoutAuthorization(async () => {\n return cms.getEntryById(model, id);\n });\n\n return getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n };\n return {\n getCommentModel,\n getComment: async params => {\n const values = await getComment(params);\n return pickIdFromChangeRequest(values);\n },\n async listComments(params) {\n const model = await getCommentModel();\n const [entries, meta] = await security.withoutAuthorization(async () => {\n return cms.listLatestEntries(model, params as CmsEntryListParams);\n });\n const values = await Promise.all(\n entries.map(entry =>\n getFieldValues<ApwComment>({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n })\n )\n );\n const all = values.map(value => pickIdFromChangeRequest(value));\n return [all, meta];\n },\n async createComment(this: ApwStorageOperations, params) {\n const model = await getCommentModel();\n const refModel = await this.getChangeRequestModel();\n\n const entry = await security.withoutAuthorization(async () => {\n return cms.createEntry(model, {\n ...params.data,\n changeRequest: {\n id: params.data.changeRequest,\n modelId: refModel.modelId\n }\n });\n });\n\n const values = await getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n return pickIdFromChangeRequest(values);\n },\n async updateComment(params) {\n const model = await getCommentModel();\n /**\n * We're fetching the existing entry here because we're not accepting \"app\" field as input,\n * but, we still need to retain its value after the \"update\" operation.\n */\n const existingEntry = await getComment({ id: params.id });\n\n const entry = await security.withoutAuthorization(async () => {\n return cms.updateEntry(model, params.id, {\n ...existingEntry,\n ...params.data,\n savedOn: new Date()\n });\n });\n\n const values = await getFieldValues({\n entry,\n fields: baseFields,\n context: getCmsContext(),\n transformers: [getTransformer(model, \"body\")]\n });\n return pickIdFromChangeRequest(values);\n },\n async deleteComment(params) {\n const model = await getCommentModel();\n await security.withoutAuthorization(async () => {\n return cms.deleteEntry(model, params.id);\n });\n return true;\n }\n };\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { ApwContentReviewStorageOperations } from "./types";
2
- import { CreateApwStorageOperationsParams } from "./index";
2
+ import { CreateApwStorageOperationsParams } from ".";
3
3
  export declare const createContentReviewStorageOperations: ({ cms, security }: CreateApwStorageOperationsParams) => ApwContentReviewStorageOperations;