@webiny/api-apw 5.37.8 → 5.38.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. package/ApwChangeRequestNotification.js +3 -1
  2. package/ApwCommentNotification.js +3 -1
  3. package/ApwContentReviewNotification.js +3 -1
  4. package/ApwContentUrlPlugin.js +3 -1
  5. package/ContentApwSettingsPlugin.js +3 -1
  6. package/README.md +3 -3
  7. package/crud/createChangeRequestMethods.js +3 -1
  8. package/crud/createCommentMethods.js +3 -1
  9. package/crud/createContentReviewMethods.js +3 -1
  10. package/crud/createReviewerMethods.js +3 -1
  11. package/crud/createWorkflowMethods.js +3 -1
  12. package/crud/index.js +3 -1
  13. package/crud/utils.js +3 -1
  14. package/index.d.ts +1 -1
  15. package/index.js +3 -1
  16. package/package.json +26 -26
  17. package/plugins/cms/CmsEntryApwSettingsGetterPlugin.js +3 -1
  18. package/plugins/cms/apwEntryPlugins.js +3 -1
  19. package/plugins/cms/index.js +3 -1
  20. package/plugins/cms/linkContentReviewToEntry.js +4 -2
  21. package/plugins/cms/linkContentReviewToEntry.js.map +1 -1
  22. package/plugins/cms/linkWorkflowToEntry.js +10 -6
  23. package/plugins/cms/linkWorkflowToEntry.js.map +1 -1
  24. package/plugins/cms/notifications/changeRequestNotification.js +3 -1
  25. package/plugins/cms/notifications/commentNotification.js +3 -1
  26. package/plugins/cms/notifications/contentReviewNotification.js +3 -1
  27. package/plugins/cms/notifications/contentUrl.js +3 -1
  28. package/plugins/cms/triggerContentReview.js +4 -2
  29. package/plugins/cms/triggerContentReview.js.map +1 -1
  30. package/plugins/cms/updateContentReviewStatus.js +5 -3
  31. package/plugins/cms/updateContentReviewStatus.js.map +1 -1
  32. package/plugins/cms/utils.d.ts +2 -1
  33. package/plugins/cms/utils.js +17 -8
  34. package/plugins/cms/utils.js.map +1 -1
  35. package/plugins/context.js +3 -1
  36. package/plugins/graphql/changeRequest.gql.js +3 -1
  37. package/plugins/graphql/comment.gql.js +3 -1
  38. package/plugins/graphql/contentReview.gql.js +3 -1
  39. package/plugins/graphql/reviewer.gql.js +3 -1
  40. package/plugins/graphql/workflow.gql.js +3 -1
  41. package/plugins/graphql.js +3 -1
  42. package/plugins/hooks/createReviewerFromIdentity.js +3 -1
  43. package/plugins/hooks/deleteChangeRequestsAfterContentReview.js +3 -1
  44. package/plugins/hooks/deleteCommentsAfterChangeRequest.js +3 -1
  45. package/plugins/hooks/index.js +3 -1
  46. package/plugins/hooks/initializeContentReviewSteps.js +3 -1
  47. package/plugins/hooks/initializeNotifications.js +3 -1
  48. package/plugins/hooks/listContentReviews.js +3 -1
  49. package/plugins/hooks/notifications/appUrl.js +3 -1
  50. package/plugins/hooks/notifications/changeRequestAfterCreate.js +3 -1
  51. package/plugins/hooks/notifications/changeRequestUrl.js +3 -1
  52. package/plugins/hooks/notifications/commentAfterCreate.js +3 -1
  53. package/plugins/hooks/notifications/commentUrl.js +3 -1
  54. package/plugins/hooks/notifications/contentReviewAfterCreate.js +3 -1
  55. package/plugins/hooks/notifications/contentReviewUrl.js +3 -1
  56. package/plugins/hooks/notifications/contentUrl.js +3 -1
  57. package/plugins/hooks/notifications/lastChangeRequestNotificationPlugin.js +3 -1
  58. package/plugins/hooks/notifications/lastCommentNotificationPlugin.js +3 -1
  59. package/plugins/hooks/notifications/lastContentReviewNotificationPlugin.js +3 -1
  60. package/plugins/hooks/notifications/reviewers.js +3 -1
  61. package/plugins/hooks/notifications/sendChangeRequestNotification.js +3 -1
  62. package/plugins/hooks/notifications/sendCommentNotification.js +3 -1
  63. package/plugins/hooks/notifications/sendContentReviewNotification.js +3 -1
  64. package/plugins/hooks/updatePendingChangeRequests.js +3 -1
  65. package/plugins/hooks/updateTotalComments.js +3 -1
  66. package/plugins/hooks/validateChangeRequest.js +3 -1
  67. package/plugins/hooks/validateComment.js +3 -1
  68. package/plugins/hooks/validateContentReview.js +3 -1
  69. package/plugins/pageBuilder/PageApwSettingsGetterPlugin.js +3 -1
  70. package/plugins/pageBuilder/apwContentPagePlugins.js +3 -1
  71. package/plugins/pageBuilder/extendPbPageSettingsSchema.js +3 -1
  72. package/plugins/pageBuilder/index.js +3 -1
  73. package/plugins/pageBuilder/linkContentReviewToPage.js +3 -1
  74. package/plugins/pageBuilder/linkWorkflowToPage.js +3 -1
  75. package/plugins/pageBuilder/notifications/changeRequestNotification.js +3 -1
  76. package/plugins/pageBuilder/notifications/commentNotification.js +3 -1
  77. package/plugins/pageBuilder/notifications/contentReviewNotification.js +3 -1
  78. package/plugins/pageBuilder/notifications/contentUrl.js +3 -1
  79. package/plugins/pageBuilder/triggerContentReview.js +3 -1
  80. package/plugins/pageBuilder/updateContentReviewStatus.js +3 -1
  81. package/plugins/pageBuilder/utils.js +3 -1
  82. package/plugins/utils.js +3 -1
  83. package/scheduler/createScheduleActionMethods.js +3 -1
  84. package/scheduler/handlers/executeAction/index.d.ts +1 -1
  85. package/scheduler/handlers/executeAction/index.js +3 -1
  86. package/scheduler/handlers/executeAction/plugins/ApplicationGraphQL.js +3 -1
  87. package/scheduler/handlers/executeAction/plugins/HeadlessCMSGraphQL.js +3 -1
  88. package/scheduler/handlers/executeAction/plugins/PageBuilderGraphQL.js +3 -1
  89. package/scheduler/handlers/executeAction/security.js +3 -1
  90. package/scheduler/handlers/scheduleAction/index.d.ts +1 -1
  91. package/scheduler/handlers/scheduleAction/index.js +3 -1
  92. package/scheduler/handlers/scheduleAction/scheduleAction.utils.js +3 -1
  93. package/scheduler/handlers/utils.d.ts +1 -1
  94. package/scheduler/handlers/utils.js +3 -1
  95. package/scheduler/index.js +3 -1
  96. package/scheduler/types.d.ts +2 -3
  97. package/scheduler/types.js +3 -1
  98. package/scheduler/types.js.map +1 -1
  99. package/storageOperations/changeRequestStorageOperations.js +28 -1
  100. package/storageOperations/changeRequestStorageOperations.js.map +1 -1
  101. package/storageOperations/commentStorageOperations.js +3 -1
  102. package/storageOperations/contentReviewStorageOperations.js +3 -1
  103. package/storageOperations/index.js +3 -1
  104. package/storageOperations/models/changeRequest.model.js +3 -1
  105. package/storageOperations/models/comment.model.js +3 -1
  106. package/storageOperations/models/contentModelPluginFactory.js +3 -1
  107. package/storageOperations/models/contentReview.model.js +4 -2
  108. package/storageOperations/models/contentReview.model.js.map +1 -1
  109. package/storageOperations/models/index.js +3 -1
  110. package/storageOperations/models/reviewer.model.js +3 -1
  111. package/storageOperations/models/utils.js +3 -1
  112. package/storageOperations/models/workflow.model.js +7 -7
  113. package/storageOperations/models/workflow.model.js.map +1 -1
  114. package/storageOperations/reviewerStorageOperations.js +3 -1
  115. package/storageOperations/types.js +3 -1
  116. package/storageOperations/workflowStorageOperations.js +3 -1
  117. package/types.js +3 -1
  118. package/utils/contentApwSettingsPlugin.js +3 -1
  119. package/utils/errors.js +3 -1
  120. package/utils/fieldResolver.js +3 -1
  121. package/utils/resolve.d.ts +1 -1
  122. package/utils/resolve.js +3 -1
@@ -27,4 +27,6 @@ exports.ApwChangeRequestNotification = ApwChangeRequestNotification;
27
27
  const createApwChangeRequestNotification = (contentType, cb) => {
28
28
  return new ApwChangeRequestNotification(contentType, cb);
29
29
  };
30
- exports.createApwChangeRequestNotification = createApwChangeRequestNotification;
30
+ exports.createApwChangeRequestNotification = createApwChangeRequestNotification;
31
+
32
+ //# sourceMappingURL=ApwChangeRequestNotification.js.map
@@ -27,4 +27,6 @@ exports.ApwCommentNotification = ApwCommentNotification;
27
27
  const createApwCommentNotification = (contentType, cb) => {
28
28
  return new ApwCommentNotification(contentType, cb);
29
29
  };
30
- exports.createApwCommentNotification = createApwCommentNotification;
30
+ exports.createApwCommentNotification = createApwCommentNotification;
31
+
32
+ //# sourceMappingURL=ApwCommentNotification.js.map
@@ -27,4 +27,6 @@ exports.ApwContentReviewNotification = ApwContentReviewNotification;
27
27
  const createApwContentReviewNotification = (contentType, cb) => {
28
28
  return new ApwContentReviewNotification(contentType, cb);
29
29
  };
30
- exports.createApwContentReviewNotification = createApwContentReviewNotification;
30
+ exports.createApwContentReviewNotification = createApwContentReviewNotification;
31
+
32
+ //# sourceMappingURL=ApwContentReviewNotification.js.map
@@ -27,4 +27,6 @@ exports.ApwContentUrlPlugin = ApwContentUrlPlugin;
27
27
  const createApwContentUrlPlugin = (contentType, cb) => {
28
28
  return new ApwContentUrlPlugin(contentType, cb);
29
29
  };
30
- exports.createApwContentUrlPlugin = createApwContentUrlPlugin;
30
+ exports.createApwContentUrlPlugin = createApwContentUrlPlugin;
31
+
32
+ //# sourceMappingURL=ApwContentUrlPlugin.js.map
@@ -9,4 +9,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _Plugin = require("@webiny/plugins/Plugin");
10
10
  class ContentApwSettingsPlugin extends _Plugin.Plugin {}
11
11
  exports.ContentApwSettingsPlugin = ContentApwSettingsPlugin;
12
- (0, _defineProperty2.default)(ContentApwSettingsPlugin, "type", "apw.contentApwSettings");
12
+ (0, _defineProperty2.default)(ContentApwSettingsPlugin, "type", "apw.contentApwSettings");
13
+
14
+ //# sourceMappingURL=ContentApwSettingsPlugin.js.map
package/README.md CHANGED
@@ -24,11 +24,11 @@ To run tests api-apw tests with targeted storage operations loaded use:
24
24
  #### DynamoDB
25
25
 
26
26
  ```
27
- yarn test packages/api-apw --keyword=apw:ddb --keyword=apw:base
27
+ yarn test packages/api-apw --storage:ddb --keyword=apw:ddb --keyword=apw:base
28
28
  ```
29
29
 
30
30
  #### Note
31
31
 
32
32
  > All the tests in `@webiny/api-apw` package are being tested against ddb-only storage operations because
33
- current jest setup doesn't allow usage of more than one storage operations at a time with the help of --keyword flag.
34
- We should revisit these tests once we have the ability to load multiple storage operations in the jest setup.
33
+ > current jest setup doesn't allow usage of more than one storage operations at a time with the help of --keyword flag.
34
+ > We should revisit these tests once we have the ability to load multiple storage operations in the jest setup.
@@ -88,4 +88,6 @@ function createChangeRequestMethods({
88
88
  onChangeRequestBeforeDelete,
89
89
  onChangeRequestAfterDelete
90
90
  };
91
- }
91
+ }
92
+
93
+ //# sourceMappingURL=createChangeRequestMethods.js.map
@@ -88,4 +88,6 @@ function createCommentMethods({
88
88
  return true;
89
89
  }
90
90
  };
91
- }
91
+ }
92
+
93
+ //# sourceMappingURL=createCommentMethods.js.map
@@ -510,4 +510,6 @@ function createContentReviewMethods(params) {
510
510
  return true;
511
511
  }
512
512
  };
513
- }
513
+ }
514
+
515
+ //# sourceMappingURL=createContentReviewMethods.js.map
@@ -88,4 +88,6 @@ function createReviewerMethods({
88
88
  return true;
89
89
  }
90
90
  };
91
- }
91
+ }
92
+
93
+ //# sourceMappingURL=createReviewerMethods.js.map
@@ -102,4 +102,6 @@ function createWorkflowMethods({
102
102
  return true;
103
103
  }
104
104
  };
105
- }
105
+ }
106
+
107
+ //# sourceMappingURL=createWorkflowMethods.js.map
package/crud/index.js CHANGED
@@ -68,4 +68,6 @@ const createApw = params => {
68
68
  scheduleAction: params.scheduler
69
69
  };
70
70
  };
71
- exports.createApw = createApw;
71
+ exports.createApw = createApw;
72
+
73
+ //# sourceMappingURL=index.js.map
package/crud/utils.js CHANGED
@@ -107,4 +107,6 @@ const filterContentReviewsByRequiresMyAttention = async params => {
107
107
  totalCount: filteredItems.length
108
108
  })];
109
109
  };
110
- exports.filterContentReviewsByRequiresMyAttention = filterContentReviewsByRequiresMyAttention;
110
+ exports.filterContentReviewsByRequiresMyAttention = filterContentReviewsByRequiresMyAttention;
111
+
112
+ //# sourceMappingURL=utils.js.map
package/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { CreateApwContextParams } from "./scheduler/types";
2
- export declare const createApwPageBuilderContext: (params: CreateApwContextParams) => (import("@webiny/api").ContextPlugin<import("./types").ApwContext> | import("@webiny/plugins/types").Plugin<Record<string, any>> | import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("@webiny/api-mailer/types").MailerContext>)[];
2
+ export declare const createApwPageBuilderContext: (params: CreateApwContextParams) => (import("@webiny/plugins/types").Plugin<Record<string, any>> | import("@webiny/plugins/types").PluginCollection | import("@webiny/api").ContextPlugin<import("./types").ApwContext> | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("@webiny/api-mailer/types").MailerContext>)[];
3
3
  export declare const createApwGraphQL: () => import("@webiny/api").ContextPlugin<import("./types").ApwContext>[];
package/index.js CHANGED
@@ -21,4 +21,6 @@ exports.createApwPageBuilderContext = createApwPageBuilderContext;
21
21
  const createApwGraphQL = () => {
22
22
  return [(0, _graphql.default)()];
23
23
  };
24
- exports.createApwGraphQL = createApwGraphQL;
24
+ exports.createApwGraphQL = createApwGraphQL;
25
+
26
+ //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-apw",
3
- "version": "5.37.8",
3
+ "version": "5.38.0-beta.1",
4
4
  "keywords": [
5
5
  "apw:base"
6
6
  ],
@@ -17,26 +17,26 @@
17
17
  "@aws-sdk/client-cloudwatch-events": "3.54.1",
18
18
  "@babel/runtime": "7.22.6",
19
19
  "@commodo/fields": "1.1.2-beta.20",
20
- "@webiny/api": "5.37.8",
21
- "@webiny/api-admin-settings": "5.37.8",
22
- "@webiny/api-headless-cms": "5.37.8",
23
- "@webiny/api-i18n": "5.37.8",
24
- "@webiny/api-mailer": "5.37.8",
25
- "@webiny/api-page-builder": "5.37.8",
26
- "@webiny/api-security": "5.37.8",
27
- "@webiny/api-tenancy": "5.37.8",
28
- "@webiny/api-wcp": "5.37.8",
29
- "@webiny/db-dynamodb": "5.37.8",
30
- "@webiny/error": "5.37.8",
31
- "@webiny/handler": "5.37.8",
32
- "@webiny/handler-client": "5.37.8",
33
- "@webiny/handler-db": "5.37.8",
34
- "@webiny/handler-graphql": "5.37.8",
35
- "@webiny/handler-logs": "5.37.8",
36
- "@webiny/plugins": "5.37.8",
37
- "@webiny/pubsub": "5.37.8",
38
- "@webiny/utils": "5.37.8",
39
- "@webiny/validation": "5.37.8",
20
+ "@webiny/api": "5.38.0-beta.1",
21
+ "@webiny/api-admin-settings": "5.38.0-beta.1",
22
+ "@webiny/api-headless-cms": "5.38.0-beta.1",
23
+ "@webiny/api-i18n": "5.38.0-beta.1",
24
+ "@webiny/api-mailer": "5.38.0-beta.1",
25
+ "@webiny/api-page-builder": "5.38.0-beta.1",
26
+ "@webiny/api-security": "5.38.0-beta.1",
27
+ "@webiny/api-tenancy": "5.38.0-beta.1",
28
+ "@webiny/api-wcp": "5.38.0-beta.1",
29
+ "@webiny/db-dynamodb": "5.38.0-beta.1",
30
+ "@webiny/error": "5.38.0-beta.1",
31
+ "@webiny/handler": "5.38.0-beta.1",
32
+ "@webiny/handler-client": "5.38.0-beta.1",
33
+ "@webiny/handler-db": "5.38.0-beta.1",
34
+ "@webiny/handler-graphql": "5.38.0-beta.1",
35
+ "@webiny/handler-logs": "5.38.0-beta.1",
36
+ "@webiny/plugins": "5.38.0-beta.1",
37
+ "@webiny/pubsub": "5.38.0-beta.1",
38
+ "@webiny/utils": "5.38.0-beta.1",
39
+ "@webiny/validation": "5.38.0-beta.1",
40
40
  "dayjs": "1.11.7",
41
41
  "lodash": "4.17.21"
42
42
  },
@@ -44,10 +44,10 @@
44
44
  "@babel/cli": "7.22.6",
45
45
  "@babel/core": "7.22.8",
46
46
  "@babel/preset-env": "7.22.7",
47
- "@webiny/cli": "5.37.8",
48
- "@webiny/handler-aws": "5.37.8",
49
- "@webiny/project-utils": "5.37.8",
50
- "@webiny/wcp": "5.37.8",
47
+ "@webiny/cli": "5.38.0-beta.1",
48
+ "@webiny/handler-aws": "5.38.0-beta.1",
49
+ "@webiny/project-utils": "5.38.0-beta.1",
50
+ "@webiny/wcp": "5.38.0-beta.1",
51
51
  "get-yarn-workspaces": "1.0.2",
52
52
  "graphql": "15.8.0",
53
53
  "jest": "29.5.0",
@@ -65,5 +65,5 @@
65
65
  "build": "yarn webiny run build",
66
66
  "watch": "yarn webiny run watch"
67
67
  },
68
- "gitHead": "7af94ec35e4614ac89549a544352fd2ceba1ba42"
68
+ "gitHead": "6daf38d3ed0c029a8fea005c2b6246e5b325a09c"
69
69
  }
@@ -33,4 +33,6 @@ class CmsEntryApwSettingsGetterPlugin extends _ContentApwSettingsPlugin.ContentA
33
33
  return ((_entry$meta$apw2 = entry.meta.apw) === null || _entry$meta$apw2 === void 0 ? void 0 : _entry$meta$apw2.contentReviewId) || null;
34
34
  }
35
35
  }
36
- exports.CmsEntryApwSettingsGetterPlugin = CmsEntryApwSettingsGetterPlugin;
36
+ exports.CmsEntryApwSettingsGetterPlugin = CmsEntryApwSettingsGetterPlugin;
37
+
38
+ //# sourceMappingURL=CmsEntryApwSettingsGetterPlugin.js.map
@@ -35,4 +35,6 @@ const apwEntryPlugins = params => {
35
35
  return true;
36
36
  });
37
37
  };
38
- exports.apwEntryPlugins = apwEntryPlugins;
38
+ exports.apwEntryPlugins = apwEntryPlugins;
39
+
40
+ //# sourceMappingURL=apwEntryPlugins.js.map
@@ -29,4 +29,6 @@ const apwCmsHooks = params => {
29
29
  (0, _triggerContentReview.triggerContentReview)(params);
30
30
  (0, _updateContentReviewStatus.updateContentReviewStatus)(params);
31
31
  };
32
- exports.apwCmsHooks = apwCmsHooks;
32
+ exports.apwCmsHooks = apwCmsHooks;
33
+
34
+ //# sourceMappingURL=index.js.map
@@ -60,7 +60,7 @@ const linkContentReviewToEntry = params => {
60
60
  model
61
61
  }) => {
62
62
  var _entry$meta;
63
- if ((0, _utils.isAwpModel)(model)) {
63
+ if ((0, _utils.isApwDisabledOnModel)(model)) {
64
64
  return;
65
65
  }
66
66
  const contentReviewId = (_entry$meta = entry.meta) === null || _entry$meta === void 0 || (_entry$meta = _entry$meta.apw) === null || _entry$meta === void 0 ? void 0 : _entry$meta.contentReviewId;
@@ -88,4 +88,6 @@ const linkContentReviewToEntry = params => {
88
88
  });
89
89
  });
90
90
  };
91
- exports.linkContentReviewToEntry = linkContentReviewToEntry;
91
+ exports.linkContentReviewToEntry = linkContentReviewToEntry;
92
+
93
+ //# sourceMappingURL=linkContentReviewToEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_utils","_error","_interopRequireDefault","linkContentReviewToEntry","params","apw","cms","contentReview","onContentReviewAfterCreate","subscribe","content","type","ApwContentTypes","CMS_ENTRY","model","fetchModel","id","settings","updateEntryMeta","meta","contentReviewId","entryId","onContentReviewAfterDelete","onEntryBeforeDelete","entry","_entry$meta","isAwpModel","get","ex","code","Error","exports"],"sources":["linkContentReviewToEntry.ts"],"sourcesContent":["import { AdvancedPublishingWorkflow, ApwContentTypes } from \"~/types\";\nimport { fetchModel, isAwpModel, updateEntryMeta } from \"~/plugins/cms/utils\";\nimport Error from \"@webiny/error\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\n\ninterface LinkContentReviewToEntryParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const linkContentReviewToEntry = (params: LinkContentReviewToEntryParams) => {\n const { apw, cms } = params;\n\n apw.contentReview.onContentReviewAfterCreate.subscribe(async ({ contentReview }) => {\n const { content } = contentReview;\n\n if (content.type !== ApwContentTypes.CMS_ENTRY) {\n return;\n }\n\n const model = await fetchModel(cms, content.id, content.settings);\n\n await updateEntryMeta({\n cms,\n model,\n meta: {\n apw: {\n contentReviewId: contentReview.id\n }\n },\n entryId: content.id\n });\n });\n\n apw.contentReview.onContentReviewAfterDelete.subscribe(async ({ contentReview }) => {\n const { content } = contentReview;\n if (content.type !== ApwContentTypes.CMS_ENTRY) {\n return;\n }\n\n const model = await fetchModel(cms, content.id, content.settings);\n\n await updateEntryMeta({\n cms,\n model,\n meta: {\n apw: {\n contentReviewId: null\n }\n },\n entryId: content.id\n });\n });\n\n cms.onEntryBeforeDelete.subscribe(async ({ entry, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n\n if (!contentReviewId) {\n return;\n }\n let contentReview;\n try {\n contentReview = await apw.contentReview.get(contentReviewId);\n } catch (ex) {\n /**\n * We're handling the case whereby \"contentReviewId\" is still linked to page;\n * even when the contentReview entry has been deleted. In that case, we'll allow page deletion.\n */\n if (ex.code !== \"NOT_FOUND\") {\n throw ex;\n }\n }\n\n if (!contentReview) {\n return;\n }\n throw new Error(\n `Cannot delete the entry because a peer review has been requested. Please delete the review first.`,\n \"CANNOT_DELETE_REVIEW_EXIST\",\n {\n contentReviewId,\n entry\n }\n );\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAOO,MAAMI,wBAAwB,GAAIC,MAAsC,IAAK;EAChF,MAAM;IAAEC,GAAG;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAE3BC,GAAG,CAACE,aAAa,CAACC,0BAA0B,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAc,CAAC,KAAK;IAChF,MAAM;MAAEG;IAAQ,CAAC,GAAGH,aAAa;IAEjC,IAAIG,OAAO,CAACC,IAAI,KAAKC,sBAAe,CAACC,SAAS,EAAE;MAC5C;IACJ;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAAC,iBAAU,EAACT,GAAG,EAAEI,OAAO,CAACM,EAAE,EAAEN,OAAO,CAACO,QAAQ,CAAC;IAEjE,MAAM,IAAAC,sBAAe,EAAC;MAClBZ,GAAG;MACHQ,KAAK;MACLK,IAAI,EAAE;QACFd,GAAG,EAAE;UACDe,eAAe,EAAEb,aAAa,CAACS;QACnC;MACJ,CAAC;MACDK,OAAO,EAAEX,OAAO,CAACM;IACrB,CAAC,CAAC;EACN,CAAC,CAAC;EAEFX,GAAG,CAACE,aAAa,CAACe,0BAA0B,CAACb,SAAS,CAAC,OAAO;IAAEF;EAAc,CAAC,KAAK;IAChF,MAAM;MAAEG;IAAQ,CAAC,GAAGH,aAAa;IACjC,IAAIG,OAAO,CAACC,IAAI,KAAKC,sBAAe,CAACC,SAAS,EAAE;MAC5C;IACJ;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAAC,iBAAU,EAACT,GAAG,EAAEI,OAAO,CAACM,EAAE,EAAEN,OAAO,CAACO,QAAQ,CAAC;IAEjE,MAAM,IAAAC,sBAAe,EAAC;MAClBZ,GAAG;MACHQ,KAAK;MACLK,IAAI,EAAE;QACFd,GAAG,EAAE;UACDe,eAAe,EAAE;QACrB;MACJ,CAAC;MACDC,OAAO,EAAEX,OAAO,CAACM;IACrB,CAAC,CAAC;EACN,CAAC,CAAC;EAEFV,GAAG,CAACiB,mBAAmB,CAACd,SAAS,CAAC,OAAO;IAAEe,KAAK;IAAEV;EAAM,CAAC,KAAK;IAAA,IAAAW,WAAA;IAC1D,IAAI,IAAAC,iBAAU,EAACZ,KAAK,CAAC,EAAE;MACnB;IACJ;IACA,MAAMM,eAAe,IAAAK,WAAA,GAAGD,KAAK,CAACL,IAAI,cAAAM,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYpB,GAAG,cAAAoB,WAAA,uBAAfA,WAAA,CAAiBL,eAAe;IAExD,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IACA,IAAIb,aAAa;IACjB,IAAI;MACAA,aAAa,GAAG,MAAMF,GAAG,CAACE,aAAa,CAACoB,GAAG,CAACP,eAAe,CAAC;IAChE,CAAC,CAAC,OAAOQ,EAAE,EAAE;MACT;AACZ;AACA;AACA;MACY,IAAIA,EAAE,CAACC,IAAI,KAAK,WAAW,EAAE;QACzB,MAAMD,EAAE;MACZ;IACJ;IAEA,IAAI,CAACrB,aAAa,EAAE;MAChB;IACJ;IACA,MAAM,IAAIuB,cAAK,CACV,mGAAkG,EACnG,4BAA4B,EAC5B;MACIV,eAAe;MACfI;IACJ,CACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAA5B,wBAAA,GAAAA,wBAAA"}
1
+ {"version":3,"names":["_types","require","_utils","_error","_interopRequireDefault","linkContentReviewToEntry","params","apw","cms","contentReview","onContentReviewAfterCreate","subscribe","content","type","ApwContentTypes","CMS_ENTRY","model","fetchModel","id","settings","updateEntryMeta","meta","contentReviewId","entryId","onContentReviewAfterDelete","onEntryBeforeDelete","entry","_entry$meta","isApwDisabledOnModel","get","ex","code","Error","exports"],"sources":["linkContentReviewToEntry.ts"],"sourcesContent":["import { AdvancedPublishingWorkflow, ApwContentTypes } from \"~/types\";\nimport { fetchModel, isApwDisabledOnModel, updateEntryMeta } from \"~/plugins/cms/utils\";\nimport Error from \"@webiny/error\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\n\ninterface LinkContentReviewToEntryParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const linkContentReviewToEntry = (params: LinkContentReviewToEntryParams) => {\n const { apw, cms } = params;\n\n apw.contentReview.onContentReviewAfterCreate.subscribe(async ({ contentReview }) => {\n const { content } = contentReview;\n\n if (content.type !== ApwContentTypes.CMS_ENTRY) {\n return;\n }\n\n const model = await fetchModel(cms, content.id, content.settings);\n\n await updateEntryMeta({\n cms,\n model,\n meta: {\n apw: {\n contentReviewId: contentReview.id\n }\n },\n entryId: content.id\n });\n });\n\n apw.contentReview.onContentReviewAfterDelete.subscribe(async ({ contentReview }) => {\n const { content } = contentReview;\n if (content.type !== ApwContentTypes.CMS_ENTRY) {\n return;\n }\n\n const model = await fetchModel(cms, content.id, content.settings);\n\n await updateEntryMeta({\n cms,\n model,\n meta: {\n apw: {\n contentReviewId: null\n }\n },\n entryId: content.id\n });\n });\n\n cms.onEntryBeforeDelete.subscribe(async ({ entry, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n\n if (!contentReviewId) {\n return;\n }\n let contentReview;\n try {\n contentReview = await apw.contentReview.get(contentReviewId);\n } catch (ex) {\n /**\n * We're handling the case whereby \"contentReviewId\" is still linked to page;\n * even when the contentReview entry has been deleted. In that case, we'll allow page deletion.\n */\n if (ex.code !== \"NOT_FOUND\") {\n throw ex;\n }\n }\n\n if (!contentReview) {\n return;\n }\n throw new Error(\n `Cannot delete the entry because a peer review has been requested. Please delete the review first.`,\n \"CANNOT_DELETE_REVIEW_EXIST\",\n {\n contentReviewId,\n entry\n }\n );\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAOO,MAAMI,wBAAwB,GAAIC,MAAsC,IAAK;EAChF,MAAM;IAAEC,GAAG;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAE3BC,GAAG,CAACE,aAAa,CAACC,0BAA0B,CAACC,SAAS,CAAC,OAAO;IAAEF;EAAc,CAAC,KAAK;IAChF,MAAM;MAAEG;IAAQ,CAAC,GAAGH,aAAa;IAEjC,IAAIG,OAAO,CAACC,IAAI,KAAKC,sBAAe,CAACC,SAAS,EAAE;MAC5C;IACJ;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAAC,iBAAU,EAACT,GAAG,EAAEI,OAAO,CAACM,EAAE,EAAEN,OAAO,CAACO,QAAQ,CAAC;IAEjE,MAAM,IAAAC,sBAAe,EAAC;MAClBZ,GAAG;MACHQ,KAAK;MACLK,IAAI,EAAE;QACFd,GAAG,EAAE;UACDe,eAAe,EAAEb,aAAa,CAACS;QACnC;MACJ,CAAC;MACDK,OAAO,EAAEX,OAAO,CAACM;IACrB,CAAC,CAAC;EACN,CAAC,CAAC;EAEFX,GAAG,CAACE,aAAa,CAACe,0BAA0B,CAACb,SAAS,CAAC,OAAO;IAAEF;EAAc,CAAC,KAAK;IAChF,MAAM;MAAEG;IAAQ,CAAC,GAAGH,aAAa;IACjC,IAAIG,OAAO,CAACC,IAAI,KAAKC,sBAAe,CAACC,SAAS,EAAE;MAC5C;IACJ;IAEA,MAAMC,KAAK,GAAG,MAAM,IAAAC,iBAAU,EAACT,GAAG,EAAEI,OAAO,CAACM,EAAE,EAAEN,OAAO,CAACO,QAAQ,CAAC;IAEjE,MAAM,IAAAC,sBAAe,EAAC;MAClBZ,GAAG;MACHQ,KAAK;MACLK,IAAI,EAAE;QACFd,GAAG,EAAE;UACDe,eAAe,EAAE;QACrB;MACJ,CAAC;MACDC,OAAO,EAAEX,OAAO,CAACM;IACrB,CAAC,CAAC;EACN,CAAC,CAAC;EAEFV,GAAG,CAACiB,mBAAmB,CAACd,SAAS,CAAC,OAAO;IAAEe,KAAK;IAAEV;EAAM,CAAC,KAAK;IAAA,IAAAW,WAAA;IAC1D,IAAI,IAAAC,2BAAoB,EAACZ,KAAK,CAAC,EAAE;MAC7B;IACJ;IACA,MAAMM,eAAe,IAAAK,WAAA,GAAGD,KAAK,CAACL,IAAI,cAAAM,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYpB,GAAG,cAAAoB,WAAA,uBAAfA,WAAA,CAAiBL,eAAe;IAExD,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IACA,IAAIb,aAAa;IACjB,IAAI;MACAA,aAAa,GAAG,MAAMF,GAAG,CAACE,aAAa,CAACoB,GAAG,CAACP,eAAe,CAAC;IAChE,CAAC,CAAC,OAAOQ,EAAE,EAAE;MACT;AACZ;AACA;AACA;MACY,IAAIA,EAAE,CAACC,IAAI,KAAK,WAAW,EAAE;QACzB,MAAMD,EAAE;MACZ;IACJ;IAEA,IAAI,CAACrB,aAAa,EAAE;MAChB;IACJ;IACA,MAAM,IAAIuB,cAAK,CACV,mGAAkG,EACnG,4BAA4B,EAC5B;MACIV,eAAe;MACfI;IACJ,CACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAACO,OAAA,CAAA5B,wBAAA,GAAAA,wBAAA"}
@@ -16,12 +16,13 @@ const linkWorkflowToEntry = params => {
16
16
  entry,
17
17
  model
18
18
  }) => {
19
- if ((0, _utils.isAwpModel)(model)) {
19
+ if ((0, _utils.isApwDisabledOnModel)(model)) {
20
20
  return;
21
21
  }
22
22
  await (0, _utils.assignWorkflowToEntry)({
23
23
  apw,
24
- entry
24
+ entry,
25
+ model
25
26
  });
26
27
  });
27
28
  cms.onEntryRevisionBeforeCreate.subscribe(async ({
@@ -30,7 +31,7 @@ const linkWorkflowToEntry = params => {
30
31
  model
31
32
  }) => {
32
33
  var _original$meta, _original$meta2;
33
- if ((0, _utils.isAwpModel)(model)) {
34
+ if ((0, _utils.isApwDisabledOnModel)(model)) {
34
35
  return;
35
36
  }
36
37
  /**
@@ -55,7 +56,8 @@ const linkWorkflowToEntry = params => {
55
56
  */
56
57
  await (0, _utils.assignWorkflowToEntry)({
57
58
  apw,
58
- entry
59
+ entry,
60
+ model
59
61
  });
60
62
  });
61
63
  cms.onEntryBeforeUpdate.subscribe(async ({
@@ -64,7 +66,7 @@ const linkWorkflowToEntry = params => {
64
66
  model
65
67
  }) => {
66
68
  var _original$meta3, _entry$meta, _entry$meta2;
67
- if ((0, _utils.isAwpModel)(model)) {
69
+ if ((0, _utils.isApwDisabledOnModel)(model)) {
68
70
  return;
69
71
  }
70
72
  const prevApwWorkflowId = (_original$meta3 = original.meta) === null || _original$meta3 === void 0 || (_original$meta3 = _original$meta3.apw) === null || _original$meta3 === void 0 ? void 0 : _original$meta3.workflowId;
@@ -134,4 +136,6 @@ const linkWorkflowToEntry = params => {
134
136
  }
135
137
  });
136
138
  };
137
- exports.linkWorkflowToEntry = linkWorkflowToEntry;
139
+ exports.linkWorkflowToEntry = linkWorkflowToEntry;
140
+
141
+ //# sourceMappingURL=linkWorkflowToEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_set","_interopRequireDefault","require","_utils","linkWorkflowToEntry","params","apw","cms","onEntryBeforeCreate","subscribe","entry","model","isAwpModel","assignWorkflowToEntry","onEntryRevisionBeforeCreate","original","_original$meta","_original$meta2","previousContentReviewId","meta","contentReviewId","set","previousWorkflowId","workflowId","onEntryBeforeUpdate","_original$meta3","_entry$meta","_entry$meta2","prevApwWorkflowId","currentApwWorkflowId","linkedContentReviewId","prevTitle","getEntryTitle","newTitle","contentReview","update","title","workflow","onWorkflowAfterCreate","_scope$data","scope","hasEntries","models","listModels","values","data","entries","Array","isArray","length","value","modelId","id","find","m","updateEntryMeta","entryId","exports"],"sources":["linkWorkflowToEntry.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { AdvancedPublishingWorkflow } from \"~/types\";\nimport {\n assignWorkflowToEntry,\n getEntryTitle,\n hasEntries,\n isAwpModel,\n updateEntryMeta\n} from \"~/plugins/cms/utils\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\n\ninterface Value {\n id: string;\n modelId: string;\n}\n\ninterface LinkWorkflowToEntryParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const linkWorkflowToEntry = (params: LinkWorkflowToEntryParams) => {\n const { apw, cms } = params;\n\n cms.onEntryBeforeCreate.subscribe(async ({ entry, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n await assignWorkflowToEntry({\n apw,\n entry\n });\n });\n\n cms.onEntryRevisionBeforeCreate.subscribe(async ({ entry, original, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n /**\n * If the previous revision(original) already had the \"contentReviewId\",\n * we need to unlink it so that new \"contentReview\" can be request for the new revision.\n */\n const previousContentReviewId = original.meta?.apw?.contentReviewId;\n if (previousContentReviewId) {\n entry.meta = set(entry.meta || {}, \"apw.contentReviewId\", null);\n }\n\n /**\n * If the previous revision(original) already had the \"workflowId\",\n * we don't need to do anything we'll just let it be copied over.\n */\n const previousWorkflowId = original.meta?.apw?.workflowId;\n if (previousWorkflowId) {\n return;\n }\n /**\n * Lookup and assign \"workflowId\".\n */\n await assignWorkflowToEntry({\n apw,\n entry\n });\n });\n\n cms.onEntryBeforeUpdate.subscribe(async ({ entry, original, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n const prevApwWorkflowId = original.meta?.apw?.workflowId;\n const currentApwWorkflowId = entry.meta?.apw?.workflowId;\n /**\n * Make sure the apw property doesn't get lost between updates.\n * It can happen because we run modal validation in \"onBeforePageUpdate\" event,\n * which doesn't have the \"apw\" property.\n */\n if (prevApwWorkflowId && !currentApwWorkflowId) {\n entry.meta = set(entry.meta || {}, \"apw\", (original.meta || {}).apw || {});\n }\n /*\n * If there is a linked \"contentReview\" for this page and the page \"title\" has changed.\n * Let's update the \"title\" field in \"contentReview\".\n */\n const linkedContentReviewId = entry.meta?.apw?.contentReviewId;\n const prevTitle = getEntryTitle(model, original);\n const newTitle = getEntryTitle(model, entry);\n\n if (!linkedContentReviewId || prevTitle === newTitle) {\n return;\n }\n await apw.contentReview.update(linkedContentReviewId, {\n title: newTitle\n });\n });\n\n /**\n * Link created workflow to associated entries.\n */\n apw.workflow.onWorkflowAfterCreate.subscribe(async ({ workflow }) => {\n const { scope } = workflow;\n /**\n * If the workflow has entries in it's scope, we'll link that workflow for each of those entries.\n */\n if (hasEntries(workflow) === false) {\n return;\n }\n\n const models = await cms.listModels();\n\n const values: Value[] | undefined = scope.data?.entries;\n if (!values || Array.isArray(values) === false || values.length === 0) {\n return;\n }\n\n for (const value of values) {\n if (!value || !value.modelId || !value.id) {\n continue;\n }\n const model = models.find(m => m.modelId === value.modelId);\n if (!model) {\n continue;\n }\n await updateEntryMeta({\n cms,\n model,\n entryId: value.id,\n meta: {\n apw: {\n workflowId: workflow.id\n }\n }\n });\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_set","_interopRequireDefault","require","_utils","linkWorkflowToEntry","params","apw","cms","onEntryBeforeCreate","subscribe","entry","model","isApwDisabledOnModel","assignWorkflowToEntry","onEntryRevisionBeforeCreate","original","_original$meta","_original$meta2","previousContentReviewId","meta","contentReviewId","set","previousWorkflowId","workflowId","onEntryBeforeUpdate","_original$meta3","_entry$meta","_entry$meta2","prevApwWorkflowId","currentApwWorkflowId","linkedContentReviewId","prevTitle","getEntryTitle","newTitle","contentReview","update","title","workflow","onWorkflowAfterCreate","_scope$data","scope","hasEntries","models","listModels","values","data","entries","Array","isArray","length","value","modelId","id","find","m","updateEntryMeta","entryId","exports"],"sources":["linkWorkflowToEntry.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { AdvancedPublishingWorkflow } from \"~/types\";\nimport {\n assignWorkflowToEntry,\n getEntryTitle,\n hasEntries,\n isApwDisabledOnModel,\n updateEntryMeta\n} from \"~/plugins/cms/utils\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\n\ninterface Value {\n id: string;\n modelId: string;\n}\n\ninterface LinkWorkflowToEntryParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const linkWorkflowToEntry = (params: LinkWorkflowToEntryParams) => {\n const { apw, cms } = params;\n\n cms.onEntryBeforeCreate.subscribe(async ({ entry, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n await assignWorkflowToEntry({\n apw,\n entry,\n model\n });\n });\n\n cms.onEntryRevisionBeforeCreate.subscribe(async ({ entry, original, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n /**\n * If the previous revision(original) already had the \"contentReviewId\",\n * we need to unlink it so that new \"contentReview\" can be request for the new revision.\n */\n const previousContentReviewId = original.meta?.apw?.contentReviewId;\n if (previousContentReviewId) {\n entry.meta = set(entry.meta || {}, \"apw.contentReviewId\", null);\n }\n\n /**\n * If the previous revision(original) already had the \"workflowId\",\n * we don't need to do anything we'll just let it be copied over.\n */\n const previousWorkflowId = original.meta?.apw?.workflowId;\n if (previousWorkflowId) {\n return;\n }\n /**\n * Lookup and assign \"workflowId\".\n */\n await assignWorkflowToEntry({\n apw,\n entry,\n model\n });\n });\n\n cms.onEntryBeforeUpdate.subscribe(async ({ entry, original, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n const prevApwWorkflowId = original.meta?.apw?.workflowId;\n const currentApwWorkflowId = entry.meta?.apw?.workflowId;\n /**\n * Make sure the apw property doesn't get lost between updates.\n * It can happen because we run modal validation in \"onBeforePageUpdate\" event,\n * which doesn't have the \"apw\" property.\n */\n if (prevApwWorkflowId && !currentApwWorkflowId) {\n entry.meta = set(entry.meta || {}, \"apw\", (original.meta || {}).apw || {});\n }\n /*\n * If there is a linked \"contentReview\" for this page and the page \"title\" has changed.\n * Let's update the \"title\" field in \"contentReview\".\n */\n const linkedContentReviewId = entry.meta?.apw?.contentReviewId;\n const prevTitle = getEntryTitle(model, original);\n const newTitle = getEntryTitle(model, entry);\n\n if (!linkedContentReviewId || prevTitle === newTitle) {\n return;\n }\n await apw.contentReview.update(linkedContentReviewId, {\n title: newTitle\n });\n });\n\n /**\n * Link created workflow to associated entries.\n */\n apw.workflow.onWorkflowAfterCreate.subscribe(async ({ workflow }) => {\n const { scope } = workflow;\n /**\n * If the workflow has entries in it's scope, we'll link that workflow for each of those entries.\n */\n if (hasEntries(workflow) === false) {\n return;\n }\n\n const models = await cms.listModels();\n\n const values: Value[] | undefined = scope.data?.entries;\n if (!values || Array.isArray(values) === false || values.length === 0) {\n return;\n }\n\n for (const value of values) {\n if (!value || !value.modelId || !value.id) {\n continue;\n }\n const model = models.find(m => m.modelId === value.modelId);\n if (!model) {\n continue;\n }\n await updateEntryMeta({\n cms,\n model,\n entryId: value.id,\n meta: {\n apw: {\n workflowId: workflow.id\n }\n }\n });\n }\n });\n};\n"],"mappings":"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"}
@@ -28,4 +28,6 @@ const createChangeRequestNotification = () => {
28
28
  plugin.name = `${plugin.type}.${_types.ApwContentTypes.CMS_ENTRY}.default`;
29
29
  return plugin;
30
30
  };
31
- exports.createChangeRequestNotification = createChangeRequestNotification;
31
+ exports.createChangeRequestNotification = createChangeRequestNotification;
32
+
33
+ //# sourceMappingURL=changeRequestNotification.js.map
@@ -28,4 +28,6 @@ const createCommentNotification = () => {
28
28
  plugin.name = `${plugin.type}.${_types.ApwContentTypes.CMS_ENTRY}.default`;
29
29
  return plugin;
30
30
  };
31
- exports.createCommentNotification = createCommentNotification;
31
+ exports.createCommentNotification = createCommentNotification;
32
+
33
+ //# sourceMappingURL=commentNotification.js.map
@@ -28,4 +28,6 @@ const createContentReviewNotification = () => {
28
28
  plugin.name = `${plugin.type}.${_types.ApwContentTypes.CMS_ENTRY}.default`;
29
29
  return plugin;
30
30
  };
31
- exports.createContentReviewNotification = createContentReviewNotification;
31
+ exports.createContentReviewNotification = createContentReviewNotification;
32
+
33
+ //# sourceMappingURL=contentReviewNotification.js.map
@@ -50,4 +50,6 @@ const createContentUrlPlugin = () => {
50
50
  });
51
51
  });
52
52
  };
53
- exports.createContentUrlPlugin = createContentUrlPlugin;
53
+ exports.createContentUrlPlugin = createContentUrlPlugin;
54
+
55
+ //# sourceMappingURL=contentUrl.js.map
@@ -18,7 +18,7 @@ const triggerContentReview = params => {
18
18
  model
19
19
  }) => {
20
20
  var _entry$meta, _entry$meta2;
21
- if ((0, _utils.isAwpModel)(model)) {
21
+ if ((0, _utils.isApwDisabledOnModel)(model)) {
22
22
  return;
23
23
  }
24
24
  const contentReviewId = (_entry$meta = entry.meta) === null || _entry$meta === void 0 || (_entry$meta = _entry$meta.apw) === null || _entry$meta === void 0 ? void 0 : _entry$meta.contentReviewId;
@@ -42,4 +42,6 @@ const triggerContentReview = params => {
42
42
  });
43
43
  });
44
44
  };
45
- exports.triggerContentReview = triggerContentReview;
45
+ exports.triggerContentReview = triggerContentReview;
46
+
47
+ //# sourceMappingURL=triggerContentReview.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_types","_utils","triggerContentReview","params","cms","apw","onEntryBeforePublish","subscribe","entry","model","_entry$meta","_entry$meta2","isAwpModel","contentReviewId","meta","contentReview","get","reviewStatus","ApwContentReviewStatus","UNDER_REVIEW","Error","workflowId","exports"],"sources":["triggerContentReview.ts"],"sourcesContent":["import Error from \"@webiny/error\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n OnCmsEntryBeforePublishTopicParams\n} from \"~/types\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { isAwpModel } from \"~/plugins/cms/utils\";\n\ninterface TriggerContentReviewParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const triggerContentReview = (params: TriggerContentReviewParams) => {\n const { cms, apw } = params;\n\n cms.onEntryBeforePublish.subscribe<OnCmsEntryBeforePublishTopicParams>(\n async ({ entry, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n if (contentReviewId) {\n const contentReview = await apw.contentReview.get(contentReviewId);\n\n if (contentReview.reviewStatus !== ApwContentReviewStatus.UNDER_REVIEW) {\n return;\n }\n throw new Error(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n entry\n }\n );\n }\n\n const workflowId = entry.meta?.apw?.workflowId;\n\n if (!workflowId) {\n return;\n }\n throw new Error(\n \"This content requires peer review approval before it can be published.\",\n \"REVIEW_REQUIRED\",\n {\n workflowId,\n entry\n }\n );\n }\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AAMO,MAAMG,oBAAoB,GAAIC,MAAkC,IAAK;EACxE,MAAM;IAAEC,GAAG;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAE3BC,GAAG,CAACE,oBAAoB,CAACC,SAAS,CAC9B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAC,WAAA,EAAAC,YAAA;IACxB,IAAI,IAAAC,iBAAU,EAACH,KAAK,CAAC,EAAE;MACnB;IACJ;IACA,MAAMI,eAAe,IAAAH,WAAA,GAAGF,KAAK,CAACM,IAAI,cAAAJ,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYL,GAAG,cAAAK,WAAA,uBAAfA,WAAA,CAAiBG,eAAe;IACxD,IAAIA,eAAe,EAAE;MACjB,MAAME,aAAa,GAAG,MAAMV,GAAG,CAACU,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;MAElE,IAAIE,aAAa,CAACE,YAAY,KAAKC,6BAAsB,CAACC,YAAY,EAAE;QACpE;MACJ;MACA,MAAM,IAAIC,cAAK,CACV,4DAA2D,EAC5D,sBAAsB,EACtB;QACIP,eAAe;QACfL;MACJ,CACJ,CAAC;IACL;IAEA,MAAMa,UAAU,IAAAV,YAAA,GAAGH,KAAK,CAACM,IAAI,cAAAH,YAAA,gBAAAA,YAAA,GAAVA,YAAA,CAAYN,GAAG,cAAAM,YAAA,uBAAfA,YAAA,CAAiBU,UAAU;IAE9C,IAAI,CAACA,UAAU,EAAE;MACb;IACJ;IACA,MAAM,IAAID,cAAK,CACX,wEAAwE,EACxE,iBAAiB,EACjB;MACIC,UAAU;MACVb;IACJ,CACJ,CAAC;EACL,CACJ,CAAC;AACL,CAAC;AAACc,OAAA,CAAApB,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_types","_utils","triggerContentReview","params","cms","apw","onEntryBeforePublish","subscribe","entry","model","_entry$meta","_entry$meta2","isApwDisabledOnModel","contentReviewId","meta","contentReview","get","reviewStatus","ApwContentReviewStatus","UNDER_REVIEW","Error","workflowId","exports"],"sources":["triggerContentReview.ts"],"sourcesContent":["import Error from \"@webiny/error\";\nimport {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n OnCmsEntryBeforePublishTopicParams\n} from \"~/types\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { isApwDisabledOnModel } from \"~/plugins/cms/utils\";\n\ninterface TriggerContentReviewParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n}\nexport const triggerContentReview = (params: TriggerContentReviewParams) => {\n const { cms, apw } = params;\n\n cms.onEntryBeforePublish.subscribe<OnCmsEntryBeforePublishTopicParams>(\n async ({ entry, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n if (contentReviewId) {\n const contentReview = await apw.contentReview.get(contentReviewId);\n\n if (contentReview.reviewStatus !== ApwContentReviewStatus.UNDER_REVIEW) {\n return;\n }\n throw new Error(\n `A peer review for this content has been already requested.`,\n \"REVIEW_ALREADY_EXIST\",\n {\n contentReviewId,\n entry\n }\n );\n }\n\n const workflowId = entry.meta?.apw?.workflowId;\n\n if (!workflowId) {\n return;\n }\n throw new Error(\n \"This content requires peer review approval before it can be published.\",\n \"REVIEW_REQUIRED\",\n {\n workflowId,\n entry\n }\n );\n }\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AAMO,MAAMG,oBAAoB,GAAIC,MAAkC,IAAK;EACxE,MAAM;IAAEC,GAAG;IAAEC;EAAI,CAAC,GAAGF,MAAM;EAE3BC,GAAG,CAACE,oBAAoB,CAACC,SAAS,CAC9B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAC,WAAA,EAAAC,YAAA;IACxB,IAAI,IAAAC,2BAAoB,EAACH,KAAK,CAAC,EAAE;MAC7B;IACJ;IACA,MAAMI,eAAe,IAAAH,WAAA,GAAGF,KAAK,CAACM,IAAI,cAAAJ,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYL,GAAG,cAAAK,WAAA,uBAAfA,WAAA,CAAiBG,eAAe;IACxD,IAAIA,eAAe,EAAE;MACjB,MAAME,aAAa,GAAG,MAAMV,GAAG,CAACU,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;MAElE,IAAIE,aAAa,CAACE,YAAY,KAAKC,6BAAsB,CAACC,YAAY,EAAE;QACpE;MACJ;MACA,MAAM,IAAIC,cAAK,CACV,4DAA2D,EAC5D,sBAAsB,EACtB;QACIP,eAAe;QACfL;MACJ,CACJ,CAAC;IACL;IAEA,MAAMa,UAAU,IAAAV,YAAA,GAAGH,KAAK,CAACM,IAAI,cAAAH,YAAA,gBAAAA,YAAA,GAAVA,YAAA,CAAYN,GAAG,cAAAM,YAAA,uBAAfA,YAAA,CAAiBU,UAAU;IAE9C,IAAI,CAACA,UAAU,EAAE;MACb;IACJ;IACA,MAAM,IAAID,cAAK,CACX,wEAAwE,EACxE,iBAAiB,EACjB;MACIC,UAAU;MACVb;IACJ,CACJ,CAAC;EACL,CACJ,CAAC;AACL,CAAC;AAACc,OAAA,CAAApB,oBAAA,GAAAA,oBAAA"}
@@ -20,7 +20,7 @@ const updateContentReviewStatus = params => {
20
20
  model
21
21
  }) => {
22
22
  var _entry$meta;
23
- if ((0, _utils2.isAwpModel)(model)) {
23
+ if ((0, _utils2.isApwDisabledOnModel)(model)) {
24
24
  return;
25
25
  }
26
26
  const contentReviewId = (_entry$meta = entry.meta) === null || _entry$meta === void 0 || (_entry$meta = _entry$meta.apw) === null || _entry$meta === void 0 ? void 0 : _entry$meta.contentReviewId;
@@ -50,7 +50,7 @@ const updateContentReviewStatus = params => {
50
50
  model
51
51
  }) => {
52
52
  var _entry$meta2;
53
- if ((0, _utils2.isAwpModel)(model)) {
53
+ if ((0, _utils2.isApwDisabledOnModel)(model)) {
54
54
  return;
55
55
  }
56
56
  const contentReviewId = (_entry$meta2 = entry.meta) === null || _entry$meta2 === void 0 || (_entry$meta2 = _entry$meta2.apw) === null || _entry$meta2 === void 0 ? void 0 : _entry$meta2.contentReviewId;
@@ -76,4 +76,6 @@ const updateContentReviewStatus = params => {
76
76
  });
77
77
  });
78
78
  };
79
- exports.updateContentReviewStatus = updateContentReviewStatus;
79
+ exports.updateContentReviewStatus = updateContentReviewStatus;
80
+
81
+ //# sourceMappingURL=updateContentReviewStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_utils","_utils2","updateContentReviewStatus","params","apw","cms","security","onEntryAfterPublish","subscribe","entry","model","_entry$meta","isAwpModel","contentReviewId","meta","contentReview","get","identity","getIdentity","reviewStatus","ApwContentReviewStatus","READY_TO_BE_PUBLISHED","update","PUBLISHED","content","_objectSpread2","default","INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META","publishedBy","id","onEntryAfterUnpublish","_entry$meta2","exports"],"sources":["updateContentReviewStatus.ts"],"sourcesContent":["import {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n OnCmsEntryAfterPublishTopicParams,\n OnCmsEntryAfterUnpublishTopicParams\n} from \"~/types\";\nimport { INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META } from \"~/crud/utils\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport { isAwpModel } from \"~/plugins/cms/utils\";\n\ninterface UpdateContentReviewStatusParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n security: Security;\n}\n\nexport const updateContentReviewStatus = (params: UpdateContentReviewStatusParams) => {\n const { apw, cms, security } = params;\n\n cms.onEntryAfterPublish.subscribe<OnCmsEntryAfterPublishTopicParams>(\n async ({ entry, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n const identity = security.getIdentity();\n /**\n * If content review is \"readyToBePublished set its status as \"published\" after page publish.\n */\n if (contentReview.reviewStatus !== ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {\n return;\n }\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: identity.id\n }\n });\n }\n );\n cms.onEntryAfterUnpublish.subscribe<OnCmsEntryAfterUnpublishTopicParams>(\n async ({ entry, model }) => {\n if (isAwpModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n /**\n * If content review is \"published set its status as \"readyToBePublished\" after page unpublish.\n */\n\n if (contentReview.reviewStatus !== ApwContentReviewStatus.PUBLISHED) {\n return;\n }\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.READY_TO_BE_PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: null\n }\n });\n }\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AAQO,MAAMG,yBAAyB,GAAIC,MAAuC,IAAK;EAClF,MAAM;IAAEC,GAAG;IAAEC,GAAG;IAAEC;EAAS,CAAC,GAAGH,MAAM;EAErCE,GAAG,CAACE,mBAAmB,CAACC,SAAS,CAC7B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAC,WAAA;IACxB,IAAI,IAAAC,kBAAU,EAACF,KAAK,CAAC,EAAE;MACnB;IACJ;IACA,MAAMG,eAAe,IAAAF,WAAA,GAAGF,KAAK,CAACK,IAAI,cAAAH,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYP,GAAG,cAAAO,WAAA,uBAAfA,WAAA,CAAiBE,eAAe;IACxD;AACZ;AACA;IACY,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMX,GAAG,CAACW,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;IAClE,MAAMI,QAAQ,GAAGX,QAAQ,CAACY,WAAW,CAAC,CAAC;IACvC;AACZ;AACA;IACY,IAAIH,aAAa,CAACI,YAAY,KAAKC,6BAAsB,CAACC,qBAAqB,EAAE;MAC7E;IACJ;IACA,MAAMjB,GAAG,CAACW,aAAa,CAACO,MAAM,CAACT,eAAe,EAAE;MAC5CM,YAAY,EAAEC,6BAAsB,CAACG,SAAS;MAC9CC,OAAO,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACAX,aAAa,CAACS,OAAO,GACrBG,mDAA4C;QAC/CC,WAAW,EAAEX,QAAQ,CAACY;MAAE;IAEhC,CAAC,CAAC;EACN,CACJ,CAAC;EACDxB,GAAG,CAACyB,qBAAqB,CAACtB,SAAS,CAC/B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAqB,YAAA;IACxB,IAAI,IAAAnB,kBAAU,EAACF,KAAK,CAAC,EAAE;MACnB;IACJ;IACA,MAAMG,eAAe,IAAAkB,YAAA,GAAGtB,KAAK,CAACK,IAAI,cAAAiB,YAAA,gBAAAA,YAAA,GAAVA,YAAA,CAAY3B,GAAG,cAAA2B,YAAA,uBAAfA,YAAA,CAAiBlB,eAAe;IACxD;AACZ;AACA;IACY,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMX,GAAG,CAACW,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;IAClE;AACZ;AACA;;IAEY,IAAIE,aAAa,CAACI,YAAY,KAAKC,6BAAsB,CAACG,SAAS,EAAE;MACjE;IACJ;IACA,MAAMnB,GAAG,CAACW,aAAa,CAACO,MAAM,CAACT,eAAe,EAAE;MAC5CM,YAAY,EAAEC,6BAAsB,CAACC,qBAAqB;MAC1DG,OAAO,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACAX,aAAa,CAACS,OAAO,GACrBG,mDAA4C;QAC/CC,WAAW,EAAE;MAAI;IAEzB,CAAC,CAAC;EACN,CACJ,CAAC;AACL,CAAC;AAACI,OAAA,CAAA9B,yBAAA,GAAAA,yBAAA"}
1
+ {"version":3,"names":["_types","require","_utils","_utils2","updateContentReviewStatus","params","apw","cms","security","onEntryAfterPublish","subscribe","entry","model","_entry$meta","isApwDisabledOnModel","contentReviewId","meta","contentReview","get","identity","getIdentity","reviewStatus","ApwContentReviewStatus","READY_TO_BE_PUBLISHED","update","PUBLISHED","content","_objectSpread2","default","INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META","publishedBy","id","onEntryAfterUnpublish","_entry$meta2","exports"],"sources":["updateContentReviewStatus.ts"],"sourcesContent":["import {\n AdvancedPublishingWorkflow,\n ApwContentReviewStatus,\n OnCmsEntryAfterPublishTopicParams,\n OnCmsEntryAfterUnpublishTopicParams\n} from \"~/types\";\nimport { INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META } from \"~/crud/utils\";\nimport { HeadlessCms } from \"@webiny/api-headless-cms/types\";\nimport { Security } from \"@webiny/api-security/types\";\nimport { isApwDisabledOnModel } from \"~/plugins/cms/utils\";\n\ninterface UpdateContentReviewStatusParams {\n apw: AdvancedPublishingWorkflow;\n cms: HeadlessCms;\n security: Security;\n}\n\nexport const updateContentReviewStatus = (params: UpdateContentReviewStatusParams) => {\n const { apw, cms, security } = params;\n\n cms.onEntryAfterPublish.subscribe<OnCmsEntryAfterPublishTopicParams>(\n async ({ entry, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n const identity = security.getIdentity();\n /**\n * If content review is \"readyToBePublished set its status as \"published\" after page publish.\n */\n if (contentReview.reviewStatus !== ApwContentReviewStatus.READY_TO_BE_PUBLISHED) {\n return;\n }\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: identity.id\n }\n });\n }\n );\n cms.onEntryAfterUnpublish.subscribe<OnCmsEntryAfterUnpublishTopicParams>(\n async ({ entry, model }) => {\n if (isApwDisabledOnModel(model)) {\n return;\n }\n const contentReviewId = entry.meta?.apw?.contentReviewId;\n /**\n * Bail out if there is no \"content review\" linked.\n */\n if (!contentReviewId) {\n return;\n }\n\n const contentReview = await apw.contentReview.get(contentReviewId);\n /**\n * If content review is \"published set its status as \"readyToBePublished\" after page unpublish.\n */\n\n if (contentReview.reviewStatus !== ApwContentReviewStatus.PUBLISHED) {\n return;\n }\n await apw.contentReview.update(contentReviewId, {\n reviewStatus: ApwContentReviewStatus.READY_TO_BE_PUBLISHED,\n content: {\n ...contentReview.content,\n ...INITIAL_CONTENT_REVIEW_CONTENT_SCHEDULE_META,\n publishedBy: null\n }\n });\n }\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AAQO,MAAMG,yBAAyB,GAAIC,MAAuC,IAAK;EAClF,MAAM;IAAEC,GAAG;IAAEC,GAAG;IAAEC;EAAS,CAAC,GAAGH,MAAM;EAErCE,GAAG,CAACE,mBAAmB,CAACC,SAAS,CAC7B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAC,WAAA;IACxB,IAAI,IAAAC,4BAAoB,EAACF,KAAK,CAAC,EAAE;MAC7B;IACJ;IACA,MAAMG,eAAe,IAAAF,WAAA,GAAGF,KAAK,CAACK,IAAI,cAAAH,WAAA,gBAAAA,WAAA,GAAVA,WAAA,CAAYP,GAAG,cAAAO,WAAA,uBAAfA,WAAA,CAAiBE,eAAe;IACxD;AACZ;AACA;IACY,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMX,GAAG,CAACW,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;IAClE,MAAMI,QAAQ,GAAGX,QAAQ,CAACY,WAAW,CAAC,CAAC;IACvC;AACZ;AACA;IACY,IAAIH,aAAa,CAACI,YAAY,KAAKC,6BAAsB,CAACC,qBAAqB,EAAE;MAC7E;IACJ;IACA,MAAMjB,GAAG,CAACW,aAAa,CAACO,MAAM,CAACT,eAAe,EAAE;MAC5CM,YAAY,EAAEC,6BAAsB,CAACG,SAAS;MAC9CC,OAAO,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACAX,aAAa,CAACS,OAAO,GACrBG,mDAA4C;QAC/CC,WAAW,EAAEX,QAAQ,CAACY;MAAE;IAEhC,CAAC,CAAC;EACN,CACJ,CAAC;EACDxB,GAAG,CAACyB,qBAAqB,CAACtB,SAAS,CAC/B,OAAO;IAAEC,KAAK;IAAEC;EAAM,CAAC,KAAK;IAAA,IAAAqB,YAAA;IACxB,IAAI,IAAAnB,4BAAoB,EAACF,KAAK,CAAC,EAAE;MAC7B;IACJ;IACA,MAAMG,eAAe,IAAAkB,YAAA,GAAGtB,KAAK,CAACK,IAAI,cAAAiB,YAAA,gBAAAA,YAAA,GAAVA,YAAA,CAAY3B,GAAG,cAAA2B,YAAA,uBAAfA,YAAA,CAAiBlB,eAAe;IACxD;AACZ;AACA;IACY,IAAI,CAACA,eAAe,EAAE;MAClB;IACJ;IAEA,MAAME,aAAa,GAAG,MAAMX,GAAG,CAACW,aAAa,CAACC,GAAG,CAACH,eAAe,CAAC;IAClE;AACZ;AACA;;IAEY,IAAIE,aAAa,CAACI,YAAY,KAAKC,6BAAsB,CAACG,SAAS,EAAE;MACjE;IACJ;IACA,MAAMnB,GAAG,CAACW,aAAa,CAACO,MAAM,CAACT,eAAe,EAAE;MAC5CM,YAAY,EAAEC,6BAAsB,CAACC,qBAAqB;MAC1DG,OAAO,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACAX,aAAa,CAACS,OAAO,GACrBG,mDAA4C;QAC/CC,WAAW,EAAE;MAAI;IAEzB,CAAC,CAAC;EACN,CACJ,CAAC;AACL,CAAC;AAACI,OAAA,CAAA9B,yBAAA,GAAAA,yBAAA"}
@@ -20,8 +20,9 @@ export declare const updateEntryMeta: (params: UpdateEntryMetaParams) => Promise
20
20
  interface AssignWorkflowToEntryParams {
21
21
  apw: AdvancedPublishingWorkflow;
22
22
  entry: CmsEntry;
23
+ model: CmsModel;
23
24
  }
24
25
  export declare const assignWorkflowToEntry: (params: AssignWorkflowToEntryParams) => Promise<void>;
25
26
  export declare const hasEntries: (workflow: ApwWorkflow) => Boolean;
26
- export declare const isAwpModel: (model: CmsModel) => boolean;
27
+ export declare const isApwDisabledOnModel: (model: Pick<CmsModel, "modelId" | "isPrivate">) => boolean;
27
28
  export {};
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.updateEntryMeta = exports.isAwpModel = exports.hasEntries = exports.getLatestEntryRevision = exports.getEntryTitle = exports.fetchModel = exports.assignWorkflowToEntry = void 0;
7
+ exports.updateEntryMeta = exports.isApwDisabledOnModel = exports.hasEntries = exports.getLatestEntryRevision = exports.getEntryTitle = exports.fetchModel = exports.assignWorkflowToEntry = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
9
  var _error = _interopRequireDefault(require("@webiny/error"));
10
10
  var _types = require("../../types");
@@ -51,11 +51,11 @@ const getLatestEntryRevision = async params => {
51
51
  model,
52
52
  entryId
53
53
  } = params;
54
- const items = await cms.getLatestEntriesByIds(model, [entryId]);
55
- const item = items.shift();
54
+ const [item] = await cms.getLatestEntriesByIds(model, [entryId]);
56
55
  if (!item) {
57
56
  throw new _error.default("There is no entry with given ID.", "ENTRY_NOT_FOUND", {
58
- entryId
57
+ entryId,
58
+ model: model.modelId
59
59
  });
60
60
  }
61
61
  return item;
@@ -103,7 +103,8 @@ const isWorkflowApplicable = (entry, workflow) => {
103
103
  const assignWorkflowToEntry = async params => {
104
104
  const {
105
105
  apw,
106
- entry
106
+ entry,
107
+ model
107
108
  } = params;
108
109
  /**
109
110
  * Lookup and assign "workflowId".
@@ -117,7 +118,7 @@ const assignWorkflowToEntry = async params => {
117
118
  app: _types.ApwWorkflowApplications.CMS
118
119
  }
119
120
  });
120
- console.log(`Found ${entries.length} workflows.`);
121
+ console.log(`Found ${entries.length} workflow(s) for model ${model.modelId}.`);
121
122
 
122
123
  /*
123
124
  * Re-order them based on workflow scope and pre-defined rule i.e.
@@ -156,7 +157,15 @@ const hasEntries = workflow => {
156
157
  return app === _types.ApwWorkflowApplications.CMS && scope.type === _types.WorkflowScopeTypes.CUSTOM && scope.data && Array.isArray(scope.data.entries);
157
158
  };
158
159
  exports.hasEntries = hasEntries;
159
- const isAwpModel = model => {
160
+ const isApwDisabledOnModel = model => {
161
+ /**
162
+ * We should not run APW on private models as well.
163
+ */
164
+ if (model.isPrivate) {
165
+ return true;
166
+ }
160
167
  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);
161
168
  };
162
- exports.isAwpModel = isAwpModel;
169
+ exports.isApwDisabledOnModel = isApwDisabledOnModel;
170
+
171
+ //# sourceMappingURL=utils.js.map