@webiny/api-website-builder-scheduler 6.3.0 → 6.4.0-beta.1

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 (51) hide show
  1. package/constants.js +8 -4
  2. package/constants.js.map +1 -1
  3. package/context.js +14 -15
  4. package/context.js.map +1 -1
  5. package/exports/api/website-builder/scheduler.js +0 -2
  6. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js +25 -33
  7. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map +1 -1
  8. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js +25 -34
  9. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map +1 -1
  10. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js +25 -34
  11. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js.map +1 -1
  12. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js +24 -33
  13. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js.map +1 -1
  14. package/features/CancelScheduledActionOnChange/feature.js +9 -16
  15. package/features/CancelScheduledActionOnChange/feature.js.map +1 -1
  16. package/features/NamespaceHandler/PageNamespaceHandler.js +29 -28
  17. package/features/NamespaceHandler/PageNamespaceHandler.js.map +1 -1
  18. package/features/NamespaceHandler/RedirectNamespaceHandler.js +29 -28
  19. package/features/NamespaceHandler/RedirectNamespaceHandler.js.map +1 -1
  20. package/features/PublishActionHandler/PublishPageActionHandler.js +20 -21
  21. package/features/PublishActionHandler/PublishPageActionHandler.js.map +1 -1
  22. package/features/PublishActionHandler/PublishRedirectActionHandler.js +20 -22
  23. package/features/PublishActionHandler/PublishRedirectActionHandler.js.map +1 -1
  24. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js +21 -20
  25. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js.map +1 -1
  26. package/features/SchedulePublishPageUseCase/abstractions.js +3 -3
  27. package/features/SchedulePublishPageUseCase/abstractions.js.map +1 -1
  28. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js +21 -20
  29. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js.map +1 -1
  30. package/features/SchedulePublishRedirectUseCase/abstractions.js +3 -3
  31. package/features/SchedulePublishRedirectUseCase/abstractions.js.map +1 -1
  32. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js +21 -20
  33. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js.map +1 -1
  34. package/features/ScheduleUnpublishPageUseCase/abstractions.js +3 -3
  35. package/features/ScheduleUnpublishPageUseCase/abstractions.js.map +1 -1
  36. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js +21 -20
  37. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js.map +1 -1
  38. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js +3 -3
  39. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js.map +1 -1
  40. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js +20 -20
  41. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js.map +1 -1
  42. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js +20 -21
  43. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js.map +1 -1
  44. package/index.js +4 -3
  45. package/index.js.map +1 -1
  46. package/package.json +18 -18
  47. package/types.js +0 -3
  48. package/utils/namespace.js +7 -12
  49. package/utils/namespace.js.map +1 -1
  50. package/exports/api/website-builder/scheduler.js.map +0 -1
  51. package/types.js.map +0 -1
package/constants.js CHANGED
@@ -1,6 +1,10 @@
1
- export const WEBSITE_BUILDER_NAMESPACE = "WebsiteBuilder/Type/";
2
- export const SCHEDULED_ACTION_TYPE_PAGE = "page";
3
- export const SCHEDULED_ACTION_TYPE_REDIRECT = "redirect";
4
- export const SCHEDULED_ACTION_TYPES = [SCHEDULED_ACTION_TYPE_PAGE, SCHEDULED_ACTION_TYPE_REDIRECT];
1
+ const WEBSITE_BUILDER_NAMESPACE = "WebsiteBuilder/Type/";
2
+ const SCHEDULED_ACTION_TYPE_PAGE = "page";
3
+ const SCHEDULED_ACTION_TYPE_REDIRECT = "redirect";
4
+ const SCHEDULED_ACTION_TYPES = [
5
+ SCHEDULED_ACTION_TYPE_PAGE,
6
+ SCHEDULED_ACTION_TYPE_REDIRECT
7
+ ];
8
+ export { SCHEDULED_ACTION_TYPES, SCHEDULED_ACTION_TYPE_PAGE, SCHEDULED_ACTION_TYPE_REDIRECT, WEBSITE_BUILDER_NAMESPACE };
5
9
 
6
10
  //# sourceMappingURL=constants.js.map
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["WEBSITE_BUILDER_NAMESPACE","SCHEDULED_ACTION_TYPE_PAGE","SCHEDULED_ACTION_TYPE_REDIRECT","SCHEDULED_ACTION_TYPES"],"sources":["constants.ts"],"sourcesContent":["export const WEBSITE_BUILDER_NAMESPACE = \"WebsiteBuilder/Type/\";\n\nexport const SCHEDULED_ACTION_TYPE_PAGE = \"page\" as const;\nexport const SCHEDULED_ACTION_TYPE_REDIRECT = \"redirect\" as const;\n\nexport const SCHEDULED_ACTION_TYPES = [\n SCHEDULED_ACTION_TYPE_PAGE,\n SCHEDULED_ACTION_TYPE_REDIRECT\n] as const;\n"],"mappings":"AAAA,OAAO,MAAMA,yBAAyB,GAAG,sBAAsB;AAE/D,OAAO,MAAMC,0BAA0B,GAAG,MAAe;AACzD,OAAO,MAAMC,8BAA8B,GAAG,UAAmB;AAEjE,OAAO,MAAMC,sBAAsB,GAAG,CAClCF,0BAA0B,EAC1BC,8BAA8B,CACxB","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const WEBSITE_BUILDER_NAMESPACE = \"WebsiteBuilder/Type/\";\n\nexport const SCHEDULED_ACTION_TYPE_PAGE = \"page\" as const;\nexport const SCHEDULED_ACTION_TYPE_REDIRECT = \"redirect\" as const;\n\nexport const SCHEDULED_ACTION_TYPES = [\n SCHEDULED_ACTION_TYPE_PAGE,\n SCHEDULED_ACTION_TYPE_REDIRECT\n] as const;\n"],"names":["WEBSITE_BUILDER_NAMESPACE","SCHEDULED_ACTION_TYPE_PAGE","SCHEDULED_ACTION_TYPE_REDIRECT","SCHEDULED_ACTION_TYPES"],"mappings":"AAAO,MAAMA,4BAA4B;AAElC,MAAMC,6BAA6B;AACnC,MAAMC,iCAAiC;AAEvC,MAAMC,yBAAyB;IAClCF;IACAC;CACH"}
package/context.js CHANGED
@@ -10,20 +10,19 @@ import { SchedulePublishPageUseCase } from "./features/SchedulePublishPageUseCas
10
10
  import { ScheduleUnpublishPageUseCase } from "./features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js";
11
11
  import { SchedulePublishRedirectUseCase } from "./features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js";
12
12
  import { ScheduleUnpublishRedirectUseCase } from "./features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js";
13
- export const createWebsiteBuilderScheduleContext = () => {
14
- return new ContextPlugin(async context => {
15
- context.container.register(PageNamespaceHandler);
16
- context.container.register(RedirectNamespaceHandler);
17
- context.container.register(PublishPageActionHandler);
18
- context.container.register(PublishRedirectActionHandler);
19
- context.container.register(UnpublishPageActionHandler);
20
- context.container.register(UnpublishRedirectActionHandler);
21
- context.container.register(SchedulePublishPageUseCase);
22
- context.container.register(ScheduleUnpublishPageUseCase);
23
- context.container.register(SchedulePublishRedirectUseCase);
24
- context.container.register(ScheduleUnpublishRedirectUseCase);
25
- CancelScheduledActionOnChangeFeature.register(context.container);
26
- });
27
- };
13
+ const createWebsiteBuilderScheduleContext = ()=>new ContextPlugin(async (context)=>{
14
+ context.container.register(PageNamespaceHandler);
15
+ context.container.register(RedirectNamespaceHandler);
16
+ context.container.register(PublishPageActionHandler);
17
+ context.container.register(PublishRedirectActionHandler);
18
+ context.container.register(UnpublishPageActionHandler);
19
+ context.container.register(UnpublishRedirectActionHandler);
20
+ context.container.register(SchedulePublishPageUseCase);
21
+ context.container.register(ScheduleUnpublishPageUseCase);
22
+ context.container.register(SchedulePublishRedirectUseCase);
23
+ context.container.register(ScheduleUnpublishRedirectUseCase);
24
+ CancelScheduledActionOnChangeFeature.register(context.container);
25
+ });
26
+ export { createWebsiteBuilderScheduleContext };
28
27
 
29
28
  //# sourceMappingURL=context.js.map
package/context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ContextPlugin","CancelScheduledActionOnChangeFeature","PageNamespaceHandler","RedirectNamespaceHandler","PublishPageActionHandler","PublishRedirectActionHandler","UnpublishPageActionHandler","UnpublishRedirectActionHandler","SchedulePublishPageUseCase","ScheduleUnpublishPageUseCase","SchedulePublishRedirectUseCase","ScheduleUnpublishRedirectUseCase","createWebsiteBuilderScheduleContext","context","container","register"],"sources":["context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { CancelScheduledActionOnChangeFeature } from \"~/features/CancelScheduledActionOnChange/feature.js\";\nimport { PageNamespaceHandler } from \"~/features/NamespaceHandler/PageNamespaceHandler.js\";\nimport { RedirectNamespaceHandler } from \"~/features/NamespaceHandler/RedirectNamespaceHandler.js\";\nimport { PublishPageActionHandler } from \"~/features/PublishActionHandler/PublishPageActionHandler.js\";\nimport { PublishRedirectActionHandler } from \"~/features/PublishActionHandler/PublishRedirectActionHandler.js\";\nimport { UnpublishPageActionHandler } from \"~/features/UnpublishActionHandler/UnpublishPageActionHandler.js\";\nimport { UnpublishRedirectActionHandler } from \"~/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js\";\nimport { SchedulePublishPageUseCase } from \"~/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js\";\nimport { ScheduleUnpublishPageUseCase } from \"~/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js\";\nimport { SchedulePublishRedirectUseCase } from \"~/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js\";\nimport { ScheduleUnpublishRedirectUseCase } from \"~/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js\";\n\nexport const createWebsiteBuilderScheduleContext = () => {\n return new ContextPlugin(async context => {\n context.container.register(PageNamespaceHandler);\n context.container.register(RedirectNamespaceHandler);\n context.container.register(PublishPageActionHandler);\n context.container.register(PublishRedirectActionHandler);\n context.container.register(UnpublishPageActionHandler);\n context.container.register(UnpublishRedirectActionHandler);\n context.container.register(SchedulePublishPageUseCase);\n context.container.register(ScheduleUnpublishPageUseCase);\n context.container.register(SchedulePublishRedirectUseCase);\n context.container.register(ScheduleUnpublishRedirectUseCase);\n\n CancelScheduledActionOnChangeFeature.register(context.container);\n });\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,oCAAoC;AAC7C,SAASC,oBAAoB;AAC7B,SAASC,wBAAwB;AACjC,SAASC,wBAAwB;AACjC,SAASC,4BAA4B;AACrC,SAASC,0BAA0B;AACnC,SAASC,8BAA8B;AACvC,SAASC,0BAA0B;AACnC,SAASC,4BAA4B;AACrC,SAASC,8BAA8B;AACvC,SAASC,gCAAgC;AAEzC,OAAO,MAAMC,mCAAmC,GAAGA,CAAA,KAAM;EACrD,OAAO,IAAIZ,aAAa,CAAC,MAAMa,OAAO,IAAI;IACtCA,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACb,oBAAoB,CAAC;IAChDW,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACZ,wBAAwB,CAAC;IACpDU,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACX,wBAAwB,CAAC;IACpDS,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACV,4BAA4B,CAAC;IACxDQ,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACT,0BAA0B,CAAC;IACtDO,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACR,8BAA8B,CAAC;IAC1DM,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACP,0BAA0B,CAAC;IACtDK,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACN,4BAA4B,CAAC;IACxDI,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACL,8BAA8B,CAAC;IAC1DG,OAAO,CAACC,SAAS,CAACC,QAAQ,CAACJ,gCAAgC,CAAC;IAE5DV,oCAAoC,CAACc,QAAQ,CAACF,OAAO,CAACC,SAAS,CAAC;EACpE,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"context.js","sources":["../src/context.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { CancelScheduledActionOnChangeFeature } from \"~/features/CancelScheduledActionOnChange/feature.js\";\nimport { PageNamespaceHandler } from \"~/features/NamespaceHandler/PageNamespaceHandler.js\";\nimport { RedirectNamespaceHandler } from \"~/features/NamespaceHandler/RedirectNamespaceHandler.js\";\nimport { PublishPageActionHandler } from \"~/features/PublishActionHandler/PublishPageActionHandler.js\";\nimport { PublishRedirectActionHandler } from \"~/features/PublishActionHandler/PublishRedirectActionHandler.js\";\nimport { UnpublishPageActionHandler } from \"~/features/UnpublishActionHandler/UnpublishPageActionHandler.js\";\nimport { UnpublishRedirectActionHandler } from \"~/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js\";\nimport { SchedulePublishPageUseCase } from \"~/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js\";\nimport { ScheduleUnpublishPageUseCase } from \"~/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js\";\nimport { SchedulePublishRedirectUseCase } from \"~/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js\";\nimport { ScheduleUnpublishRedirectUseCase } from \"~/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js\";\n\nexport const createWebsiteBuilderScheduleContext = () => {\n return new ContextPlugin(async context => {\n context.container.register(PageNamespaceHandler);\n context.container.register(RedirectNamespaceHandler);\n context.container.register(PublishPageActionHandler);\n context.container.register(PublishRedirectActionHandler);\n context.container.register(UnpublishPageActionHandler);\n context.container.register(UnpublishRedirectActionHandler);\n context.container.register(SchedulePublishPageUseCase);\n context.container.register(ScheduleUnpublishPageUseCase);\n context.container.register(SchedulePublishRedirectUseCase);\n context.container.register(ScheduleUnpublishRedirectUseCase);\n\n CancelScheduledActionOnChangeFeature.register(context.container);\n });\n};\n"],"names":["createWebsiteBuilderScheduleContext","ContextPlugin","context","PageNamespaceHandler","RedirectNamespaceHandler","PublishPageActionHandler","PublishRedirectActionHandler","UnpublishPageActionHandler","UnpublishRedirectActionHandler","SchedulePublishPageUseCase","ScheduleUnpublishPageUseCase","SchedulePublishRedirectUseCase","ScheduleUnpublishRedirectUseCase","CancelScheduledActionOnChangeFeature"],"mappings":";;;;;;;;;;;;AAaO,MAAMA,sCAAsC,IACxC,IAAIC,cAAc,OAAMC;QAC3BA,QAAQ,SAAS,CAAC,QAAQ,CAACC;QAC3BD,QAAQ,SAAS,CAAC,QAAQ,CAACE;QAC3BF,QAAQ,SAAS,CAAC,QAAQ,CAACG;QAC3BH,QAAQ,SAAS,CAAC,QAAQ,CAACI;QAC3BJ,QAAQ,SAAS,CAAC,QAAQ,CAACK;QAC3BL,QAAQ,SAAS,CAAC,QAAQ,CAACM;QAC3BN,QAAQ,SAAS,CAAC,QAAQ,CAACO;QAC3BP,QAAQ,SAAS,CAAC,QAAQ,CAACQ;QAC3BR,QAAQ,SAAS,CAAC,QAAQ,CAACS;QAC3BT,QAAQ,SAAS,CAAC,QAAQ,CAACU;QAE3BC,qCAAqC,QAAQ,CAACX,QAAQ,SAAS;IACnE"}
@@ -2,5 +2,3 @@ export { SchedulePublishPageUseCase } from "../../../features/SchedulePublishPag
2
2
  export { ScheduleUnpublishPageUseCase } from "../../../features/ScheduleUnpublishPageUseCase/abstractions.js";
3
3
  export { SchedulePublishRedirectUseCase } from "../../../features/SchedulePublishRedirectUseCase/abstractions.js";
4
4
  export { ScheduleUnpublishRedirectUseCase } from "../../../features/ScheduleUnpublishRedirectUseCase/abstractions.js";
5
-
6
- //# sourceMappingURL=scheduler.js.map
@@ -2,42 +2,34 @@ import { PageAfterDeleteEventHandler } from "@webiny/api-website-builder/exports
2
2
  import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
3
  import { createNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
-
6
- /**
7
- * Cancels scheduled actions when a page is deleted.
8
- *
9
- * When a user deletes a page revision, any scheduled publish/unpublish
10
- * actions for that revision should be canceled since the page no longer exists.
11
- */
12
5
  class CancelScheduledActionOnPageDeleteHandlerImpl {
13
- constructor(listScheduledActions, cancelScheduledAction) {
14
- this.listScheduledActions = listScheduledActions;
15
- this.cancelScheduledAction = cancelScheduledAction;
16
- }
17
- async handle(event) {
18
- const {
19
- page
20
- } = event.payload;
21
- const actionsResult = await this.listScheduledActions.execute({
22
- limit: 10000,
23
- where: {
24
- namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
25
- targetId: page.id
26
- }
27
- });
28
- const actions = actionsResult.value.items;
29
- for (const action of actions) {
30
- const cancelRes = await this.cancelScheduledAction.execute(action);
31
- if (cancelRes.isFail()) {
32
- // Silently ignore errors - this is non-critical cleanup.
33
- // The page was deleted successfully, cancelling scheduled actions is best-effort.
34
- }
6
+ constructor(listScheduledActions, cancelScheduledAction){
7
+ this.listScheduledActions = listScheduledActions;
8
+ this.cancelScheduledAction = cancelScheduledAction;
9
+ }
10
+ async handle(event) {
11
+ const { page } = event.payload;
12
+ const actionsResult = await this.listScheduledActions.execute({
13
+ limit: 10000,
14
+ where: {
15
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
16
+ targetId: page.id
17
+ }
18
+ });
19
+ const actions = actionsResult.value.items;
20
+ for (const action of actions){
21
+ const cancelRes = await this.cancelScheduledAction.execute(action);
22
+ cancelRes.isFail();
23
+ }
35
24
  }
36
- }
37
25
  }
38
- export const CancelScheduledActionOnPageDeleteEventHandler = PageAfterDeleteEventHandler.createImplementation({
39
- implementation: CancelScheduledActionOnPageDeleteHandlerImpl,
40
- dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]
26
+ const CancelScheduledActionOnPageDeleteEventHandler = PageAfterDeleteEventHandler.createImplementation({
27
+ implementation: CancelScheduledActionOnPageDeleteHandlerImpl,
28
+ dependencies: [
29
+ ListScheduledActionsUseCase,
30
+ CancelScheduledActionUseCase
31
+ ]
41
32
  });
33
+ export { CancelScheduledActionOnPageDeleteEventHandler };
42
34
 
43
35
  //# sourceMappingURL=CancelScheduledActionOnPageDeleteEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterDeleteEventHandler","CancelScheduledActionUseCase","ListScheduledActionsUseCase","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","CancelScheduledActionOnPageDeleteHandlerImpl","constructor","listScheduledActions","cancelScheduledAction","handle","event","page","payload","actionsResult","execute","limit","where","namespace","targetId","id","actions","value","items","action","cancelRes","isFail","CancelScheduledActionOnPageDeleteEventHandler","createImplementation","implementation","dependencies"],"sources":["CancelScheduledActionOnPageDeleteEventHandler.ts"],"sourcesContent":["import { PageAfterDeleteEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled actions when a page is deleted.\n *\n * When a user deletes a page revision, any scheduled publish/unpublish\n * actions for that revision should be canceled since the page no longer exists.\n */\nclass CancelScheduledActionOnPageDeleteHandlerImpl\n implements PageAfterDeleteEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterDeleteEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n limit: 10000,\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // The page was deleted successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPageDeleteEventHandler =\n PageAfterDeleteEventHandler.createImplementation({\n implementation: CancelScheduledActionOnPageDeleteHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,iEAAiE;AAC7G,SACIC,4BAA4B,EAC5BC,2BAA2B,QACxB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,0BAA0B;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,4CAA4C,CAElD;EACIC,WAAWA,CACCC,oBAA2D,EAC3DC,qBAA6D,EACvE;IAAA,KAFUD,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,qBAA6D,GAA7DA,qBAA6D;EACtE;EAEH,MAAMC,MAAMA,CAACC,KAAwC,EAAiB;IAClE,MAAM;MAAEC;IAAK,CAAC,GAAGD,KAAK,CAACE,OAAO;IAE9B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAC1DC,KAAK,EAAE,KAAK;MACZC,KAAK,EAAE;QACHC,SAAS,EAAEd,eAAe,CAACC,0BAA0B,CAAC;QACtDc,QAAQ,EAAEP,IAAI,CAACQ;MACnB;IACJ,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAGP,aAAa,CAACQ,KAAK,CAACC,KAAK;IAEzC,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;MAC1B,MAAMI,SAAS,GAAG,MAAM,IAAI,CAAChB,qBAAqB,CAACM,OAAO,CAACS,MAAM,CAAC;MAClE,IAAIC,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;QACpB;QACA;MAAA;IAER;EACJ;AACJ;AAEA,OAAO,MAAMC,6CAA6C,GACtD1B,2BAA2B,CAAC2B,oBAAoB,CAAC;EAC7CC,cAAc,EAAEvB,4CAA4C;EAC5DwB,YAAY,EAAE,CAAC3B,2BAA2B,EAAED,4BAA4B;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js","sources":["../../../src/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.ts"],"sourcesContent":["import { PageAfterDeleteEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled actions when a page is deleted.\n *\n * When a user deletes a page revision, any scheduled publish/unpublish\n * actions for that revision should be canceled since the page no longer exists.\n */\nclass CancelScheduledActionOnPageDeleteHandlerImpl\n implements PageAfterDeleteEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterDeleteEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n limit: 10000,\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // The page was deleted successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPageDeleteEventHandler =\n PageAfterDeleteEventHandler.createImplementation({\n implementation: CancelScheduledActionOnPageDeleteHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"names":["CancelScheduledActionOnPageDeleteHandlerImpl","listScheduledActions","cancelScheduledAction","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","actions","action","cancelRes","CancelScheduledActionOnPageDeleteEventHandler","PageAfterDeleteEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase"],"mappings":";;;;AAcA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,CACvE;aAFUD,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,OAAOC,KAAwC,EAAiB;QAClE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAE9B,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC1D,OAAO;YACP,OAAO;gBACH,WAAWC,gBAAgBC;gBAC3B,UAAUH,KAAK,EAAE;YACrB;QACJ;QAEA,MAAMI,UAAUH,cAAc,KAAK,CAAC,KAAK;QAEzC,KAAK,MAAMI,UAAUD,QAAS;YAC1B,MAAME,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD;YACvDC,UAAU,MAAM;QAIxB;IACJ;AACJ;AAEO,MAAMC,gDACTC,4BAA4B,oBAAoB,CAAC;IAC7C,gBAAgBZ;IAChB,cAAc;QAACa;QAA6BC;KAA6B;AAC7E"}
@@ -2,43 +2,34 @@ import { PageAfterPublishEventHandler } from "@webiny/api-website-builder/export
2
2
  import { CancelScheduledActionUseCase, ListScheduledActionsUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
3
  import { createNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
-
6
- /**
7
- * Cancels scheduled "publish" when a page is manually published.
8
- *
9
- * When a user manually publishes a page, any scheduled publish
10
- * action for that page should be canceled since the manual action
11
- * takes precedence.
12
- */
13
5
  class CancelScheduledActionOnPublishEventHandlerImpl {
14
- constructor(listScheduledActions, cancelScheduledAction) {
15
- this.listScheduledActions = listScheduledActions;
16
- this.cancelScheduledAction = cancelScheduledAction;
17
- }
18
- async handle(event) {
19
- const {
20
- page
21
- } = event.payload;
22
- const actionsResult = await this.listScheduledActions.execute({
23
- where: {
24
- namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
25
- actionType: ScheduledActionTypePublish,
26
- targetId: page.id
27
- }
28
- });
29
- const actions = actionsResult.value.items;
30
- for (const action of actions) {
31
- const cancelRes = await this.cancelScheduledAction.execute(action);
32
- if (cancelRes.isFail()) {
33
- // Silently ignore errors - this is non-critical cleanup.
34
- // Even if a schedule runs on an already published page, nothing bad will happen.
35
- }
6
+ constructor(listScheduledActions, cancelScheduledAction){
7
+ this.listScheduledActions = listScheduledActions;
8
+ this.cancelScheduledAction = cancelScheduledAction;
9
+ }
10
+ async handle(event) {
11
+ const { page } = event.payload;
12
+ const actionsResult = await this.listScheduledActions.execute({
13
+ where: {
14
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
15
+ actionType: ScheduledActionTypePublish,
16
+ targetId: page.id
17
+ }
18
+ });
19
+ const actions = actionsResult.value.items;
20
+ for (const action of actions){
21
+ const cancelRes = await this.cancelScheduledAction.execute(action);
22
+ cancelRes.isFail();
23
+ }
36
24
  }
37
- }
38
25
  }
39
- export const CancelScheduledActionOnPagePublishEventHandler = PageAfterPublishEventHandler.createImplementation({
40
- implementation: CancelScheduledActionOnPublishEventHandlerImpl,
41
- dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]
26
+ const CancelScheduledActionOnPagePublishEventHandler = PageAfterPublishEventHandler.createImplementation({
27
+ implementation: CancelScheduledActionOnPublishEventHandlerImpl,
28
+ dependencies: [
29
+ ListScheduledActionsUseCase,
30
+ CancelScheduledActionUseCase
31
+ ]
42
32
  });
33
+ export { CancelScheduledActionOnPagePublishEventHandler };
43
34
 
44
35
  //# sourceMappingURL=CancelScheduledActionOnPagePublishEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterPublishEventHandler","CancelScheduledActionUseCase","ListScheduledActionsUseCase","ScheduledActionTypePublish","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","CancelScheduledActionOnPublishEventHandlerImpl","constructor","listScheduledActions","cancelScheduledAction","handle","event","page","payload","actionsResult","execute","where","namespace","actionType","targetId","id","actions","value","items","action","cancelRes","isFail","CancelScheduledActionOnPagePublishEventHandler","createImplementation","implementation","dependencies"],"sources":["CancelScheduledActionOnPagePublishEventHandler.ts"],"sourcesContent":["import { PageAfterPublishEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled \"publish\" when a page is manually published.\n *\n * When a user manually publishes a page, any scheduled publish\n * action for that page should be canceled since the manual action\n * takes precedence.\n */\nclass CancelScheduledActionOnPublishEventHandlerImpl\n implements PageAfterPublishEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterPublishEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypePublish,\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // Even if a schedule runs on an already published page, nothing bad will happen.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPagePublishEventHandler =\n PageAfterPublishEventHandler.createImplementation({\n implementation: CancelScheduledActionOnPublishEventHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,iEAAiE;AAC9G,SACIC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,0BAA0B,QACvB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,0BAA0B;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,8CAA8C,CAEpD;EACIC,WAAWA,CACCC,oBAA2D,EAC3DC,qBAA6D,EACvE;IAAA,KAFUD,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,qBAA6D,GAA7DA,qBAA6D;EACtE;EAEH,MAAMC,MAAMA,CAACC,KAAyC,EAAiB;IACnE,MAAM;MAAEC;IAAK,CAAC,GAAGD,KAAK,CAACE,OAAO;IAE9B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAC1DC,KAAK,EAAE;QACHC,SAAS,EAAEb,eAAe,CAACC,0BAA0B,CAAC;QACtDa,UAAU,EAAEf,0BAA0B;QACtCgB,QAAQ,EAAEP,IAAI,CAACQ;MACnB;IACJ,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAGP,aAAa,CAACQ,KAAK,CAACC,KAAK;IAEzC,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;MAC1B,MAAMI,SAAS,GAAG,MAAM,IAAI,CAAChB,qBAAqB,CAACM,OAAO,CAACS,MAAM,CAAC;MAClE,IAAIC,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;QACpB;QACA;MAAA;IAER;EACJ;AACJ;AAEA,OAAO,MAAMC,8CAA8C,GACvD3B,4BAA4B,CAAC4B,oBAAoB,CAAC;EAC9CC,cAAc,EAAEvB,8CAA8C;EAC9DwB,YAAY,EAAE,CAAC5B,2BAA2B,EAAED,4BAA4B;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js","sources":["../../../src/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.ts"],"sourcesContent":["import { PageAfterPublishEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled \"publish\" when a page is manually published.\n *\n * When a user manually publishes a page, any scheduled publish\n * action for that page should be canceled since the manual action\n * takes precedence.\n */\nclass CancelScheduledActionOnPublishEventHandlerImpl\n implements PageAfterPublishEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterPublishEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypePublish,\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // Even if a schedule runs on an already published page, nothing bad will happen.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPagePublishEventHandler =\n PageAfterPublishEventHandler.createImplementation({\n implementation: CancelScheduledActionOnPublishEventHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"names":["CancelScheduledActionOnPublishEventHandlerImpl","listScheduledActions","cancelScheduledAction","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypePublish","actions","action","cancelRes","CancelScheduledActionOnPagePublishEventHandler","PageAfterPublishEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase"],"mappings":";;;;AAgBA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,CACvE;aAFUD,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,OAAOC,KAAyC,EAAiB;QACnE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAE9B,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC1D,OAAO;gBACH,WAAWC,gBAAgBC;gBAC3B,YAAYC;gBACZ,UAAUJ,KAAK,EAAE;YACrB;QACJ;QAEA,MAAMK,UAAUJ,cAAc,KAAK,CAAC,KAAK;QAEzC,KAAK,MAAMK,UAAUD,QAAS;YAC1B,MAAME,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD;YACvDC,UAAU,MAAM;QAIxB;IACJ;AACJ;AAEO,MAAMC,iDACTC,6BAA6B,oBAAoB,CAAC;IAC9C,gBAAgBb;IAChB,cAAc;QAACc;QAA6BC;KAA6B;AAC7E"}
@@ -2,43 +2,34 @@ import { PageAfterUnpublishEventHandler } from "@webiny/api-website-builder/expo
2
2
  import { CancelScheduledActionUseCase, ListScheduledActionsUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
3
  import { createNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
-
6
- /**
7
- * Cancels scheduled "unpublish" when a page is manually unpublished.
8
- *
9
- * When a user manually unpublishes a page, any scheduled unpublish
10
- * action for that page should be canceled since the manual action
11
- * takes precedence.
12
- */
13
5
  class CancelScheduledActionOnUnpublishHandlerImpl {
14
- constructor(listScheduledActions, cancelScheduledAction) {
15
- this.listScheduledActions = listScheduledActions;
16
- this.cancelScheduledAction = cancelScheduledAction;
17
- }
18
- async handle(event) {
19
- const {
20
- page
21
- } = event.payload;
22
- const actionsResult = await this.listScheduledActions.execute({
23
- where: {
24
- namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
25
- actionType: ScheduledActionTypeUnpublish,
26
- targetId: page.id
27
- }
28
- });
29
- const actions = actionsResult.value.items;
30
- for (const action of actions) {
31
- const cancelRes = await this.cancelScheduledAction.execute(action);
32
- if (cancelRes.isFail()) {
33
- // Silently ignore errors - this is non-critical cleanup.
34
- // Page was unpublished successfully, cancelling scheduled actions is best-effort.
35
- }
6
+ constructor(listScheduledActions, cancelScheduledAction){
7
+ this.listScheduledActions = listScheduledActions;
8
+ this.cancelScheduledAction = cancelScheduledAction;
9
+ }
10
+ async handle(event) {
11
+ const { page } = event.payload;
12
+ const actionsResult = await this.listScheduledActions.execute({
13
+ where: {
14
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
15
+ actionType: ScheduledActionTypeUnpublish,
16
+ targetId: page.id
17
+ }
18
+ });
19
+ const actions = actionsResult.value.items;
20
+ for (const action of actions){
21
+ const cancelRes = await this.cancelScheduledAction.execute(action);
22
+ cancelRes.isFail();
23
+ }
36
24
  }
37
- }
38
25
  }
39
- export const CancelScheduledActionOnPageUnpublishEventHandler = PageAfterUnpublishEventHandler.createImplementation({
40
- implementation: CancelScheduledActionOnUnpublishHandlerImpl,
41
- dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]
26
+ const CancelScheduledActionOnPageUnpublishEventHandler = PageAfterUnpublishEventHandler.createImplementation({
27
+ implementation: CancelScheduledActionOnUnpublishHandlerImpl,
28
+ dependencies: [
29
+ ListScheduledActionsUseCase,
30
+ CancelScheduledActionUseCase
31
+ ]
42
32
  });
33
+ export { CancelScheduledActionOnPageUnpublishEventHandler };
43
34
 
44
35
  //# sourceMappingURL=CancelScheduledActionOnPageUnpublishEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PageAfterUnpublishEventHandler","CancelScheduledActionUseCase","ListScheduledActionsUseCase","ScheduledActionTypeUnpublish","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","CancelScheduledActionOnUnpublishHandlerImpl","constructor","listScheduledActions","cancelScheduledAction","handle","event","page","payload","actionsResult","execute","where","namespace","actionType","targetId","id","actions","value","items","action","cancelRes","isFail","CancelScheduledActionOnPageUnpublishEventHandler","createImplementation","implementation","dependencies"],"sources":["CancelScheduledActionOnPageUnpublishEventHandler.ts"],"sourcesContent":["import { PageAfterUnpublishEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled \"unpublish\" when a page is manually unpublished.\n *\n * When a user manually unpublishes a page, any scheduled unpublish\n * action for that page should be canceled since the manual action\n * takes precedence.\n */\nclass CancelScheduledActionOnUnpublishHandlerImpl\n implements PageAfterUnpublishEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterUnpublishEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypeUnpublish,\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // Page was unpublished successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPageUnpublishEventHandler =\n PageAfterUnpublishEventHandler.createImplementation({\n implementation: CancelScheduledActionOnUnpublishHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"mappings":"AAAA,SAASA,8BAA8B,QAAQ,iEAAiE;AAChH,SACIC,4BAA4B,EAC5BC,2BAA2B,EAC3BC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,0BAA0B;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,2CAA2C,CAEjD;EACIC,WAAWA,CACCC,oBAA2D,EAC3DC,qBAA6D,EACvE;IAAA,KAFUD,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,qBAA6D,GAA7DA,qBAA6D;EACtE;EAEH,MAAMC,MAAMA,CAACC,KAA2C,EAAiB;IACrE,MAAM;MAAEC;IAAK,CAAC,GAAGD,KAAK,CAACE,OAAO;IAE9B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAC1DC,KAAK,EAAE;QACHC,SAAS,EAAEb,eAAe,CAACC,0BAA0B,CAAC;QACtDa,UAAU,EAAEf,4BAA4B;QACxCgB,QAAQ,EAAEP,IAAI,CAACQ;MACnB;IACJ,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAGP,aAAa,CAACQ,KAAK,CAACC,KAAK;IAEzC,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;MAC1B,MAAMI,SAAS,GAAG,MAAM,IAAI,CAAChB,qBAAqB,CAACM,OAAO,CAACS,MAAM,CAAC;MAClE,IAAIC,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;QACpB;QACA;MAAA;IAER;EACJ;AACJ;AAEA,OAAO,MAAMC,gDAAgD,GACzD3B,8BAA8B,CAAC4B,oBAAoB,CAAC;EAChDC,cAAc,EAAEvB,2CAA2C;EAC3DwB,YAAY,EAAE,CAAC5B,2BAA2B,EAAED,4BAA4B;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js","sources":["../../../src/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.ts"],"sourcesContent":["import { PageAfterUnpublishEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Cancels scheduled \"unpublish\" when a page is manually unpublished.\n *\n * When a user manually unpublishes a page, any scheduled unpublish\n * action for that page should be canceled since the manual action\n * takes precedence.\n */\nclass CancelScheduledActionOnUnpublishHandlerImpl\n implements PageAfterUnpublishEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: PageAfterUnpublishEventHandler.Event): Promise<void> {\n const { page } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypeUnpublish,\n targetId: page.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // Page was unpublished successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnPageUnpublishEventHandler =\n PageAfterUnpublishEventHandler.createImplementation({\n implementation: CancelScheduledActionOnUnpublishHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"names":["CancelScheduledActionOnUnpublishHandlerImpl","listScheduledActions","cancelScheduledAction","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","actions","action","cancelRes","CancelScheduledActionOnPageUnpublishEventHandler","PageAfterUnpublishEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase"],"mappings":";;;;AAgBA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,CACvE;aAFUD,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,OAAOC,KAA2C,EAAiB;QACrE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAE9B,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC1D,OAAO;gBACH,WAAWC,gBAAgBC;gBAC3B,YAAYC;gBACZ,UAAUJ,KAAK,EAAE;YACrB;QACJ;QAEA,MAAMK,UAAUJ,cAAc,KAAK,CAAC,KAAK;QAEzC,KAAK,MAAMK,UAAUD,QAAS;YAC1B,MAAME,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD;YACvDC,UAAU,MAAM;QAIxB;IACJ;AACJ;AAEO,MAAMC,mDACTC,+BAA+B,oBAAoB,CAAC;IAChD,gBAAgBb;IAChB,cAAc;QAACc;QAA6BC;KAA6B;AAC7E"}
@@ -2,42 +2,33 @@ import { RedirectAfterDeleteEventHandler } from "@webiny/api-website-builder/exp
2
2
  import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
3
  import { createNamespace } from "../../utils/namespace.js";
4
4
  import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
-
6
- /**
7
- * Cancels scheduled actions when a redirect is deleted.
8
- *
9
- * When a user deletes a redirect, any scheduled publish/unpublish
10
- * actions for that redirect should be canceled since the redirect
11
- * no longer exists.
12
- */
13
5
  class CancelScheduledActionOnRedirectDeleteHandlerImpl {
14
- constructor(listScheduledActions, cancelScheduledAction) {
15
- this.listScheduledActions = listScheduledActions;
16
- this.cancelScheduledAction = cancelScheduledAction;
17
- }
18
- async handle(event) {
19
- const {
20
- redirect
21
- } = event.payload;
22
- const actionsResult = await this.listScheduledActions.execute({
23
- where: {
24
- namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
25
- targetId: redirect.id
26
- }
27
- });
28
- const actions = actionsResult.value.items;
29
- for (const action of actions) {
30
- const cancelRes = await this.cancelScheduledAction.execute(action);
31
- if (cancelRes.isFail()) {
32
- // Silently ignore errors - this is non-critical cleanup.
33
- // The redirect was deleted successfully, cancelling scheduled actions is best-effort.
34
- }
6
+ constructor(listScheduledActions, cancelScheduledAction){
7
+ this.listScheduledActions = listScheduledActions;
8
+ this.cancelScheduledAction = cancelScheduledAction;
9
+ }
10
+ async handle(event) {
11
+ const { redirect } = event.payload;
12
+ const actionsResult = await this.listScheduledActions.execute({
13
+ where: {
14
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
15
+ targetId: redirect.id
16
+ }
17
+ });
18
+ const actions = actionsResult.value.items;
19
+ for (const action of actions){
20
+ const cancelRes = await this.cancelScheduledAction.execute(action);
21
+ cancelRes.isFail();
22
+ }
35
23
  }
36
- }
37
24
  }
38
- export const CancelScheduledActionOnRedirectDeleteEventHandler = RedirectAfterDeleteEventHandler.createImplementation({
39
- implementation: CancelScheduledActionOnRedirectDeleteHandlerImpl,
40
- dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]
25
+ const CancelScheduledActionOnRedirectDeleteEventHandler = RedirectAfterDeleteEventHandler.createImplementation({
26
+ implementation: CancelScheduledActionOnRedirectDeleteHandlerImpl,
27
+ dependencies: [
28
+ ListScheduledActionsUseCase,
29
+ CancelScheduledActionUseCase
30
+ ]
41
31
  });
32
+ export { CancelScheduledActionOnRedirectDeleteEventHandler };
42
33
 
43
34
  //# sourceMappingURL=CancelScheduledActionOnRedirectDeleteEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RedirectAfterDeleteEventHandler","CancelScheduledActionUseCase","ListScheduledActionsUseCase","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","CancelScheduledActionOnRedirectDeleteHandlerImpl","constructor","listScheduledActions","cancelScheduledAction","handle","event","redirect","payload","actionsResult","execute","where","namespace","targetId","id","actions","value","items","action","cancelRes","isFail","CancelScheduledActionOnRedirectDeleteEventHandler","createImplementation","implementation","dependencies"],"sources":["CancelScheduledActionOnRedirectDeleteEventHandler.ts"],"sourcesContent":["import { RedirectAfterDeleteEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\n/**\n * Cancels scheduled actions when a redirect is deleted.\n *\n * When a user deletes a redirect, any scheduled publish/unpublish\n * actions for that redirect should be canceled since the redirect\n * no longer exists.\n */\nclass CancelScheduledActionOnRedirectDeleteHandlerImpl\n implements RedirectAfterDeleteEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: RedirectAfterDeleteEventHandler.Event): Promise<void> {\n const { redirect } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n targetId: redirect.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // The redirect was deleted successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnRedirectDeleteEventHandler =\n RedirectAfterDeleteEventHandler.createImplementation({\n implementation: CancelScheduledActionOnRedirectDeleteHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"mappings":"AAAA,SAASA,+BAA+B,QAAQ,qEAAqE;AACrH,SACIC,4BAA4B,EAC5BC,2BAA2B,QACxB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,8BAA8B;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gDAAgD,CAEtD;EACIC,WAAWA,CACCC,oBAA2D,EAC3DC,qBAA6D,EACvE;IAAA,KAFUD,oBAA2D,GAA3DA,oBAA2D;IAAA,KAC3DC,qBAA6D,GAA7DA,qBAA6D;EACtE;EAEH,MAAMC,MAAMA,CAACC,KAA4C,EAAiB;IACtE,MAAM;MAAEC;IAAS,CAAC,GAAGD,KAAK,CAACE,OAAO;IAElC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAC1DC,KAAK,EAAE;QACHC,SAAS,EAAEb,eAAe,CAACC,8BAA8B,CAAC;QAC1Da,QAAQ,EAAEN,QAAQ,CAACO;MACvB;IACJ,CAAC,CAAC;IAEF,MAAMC,OAAO,GAAGN,aAAa,CAACO,KAAK,CAACC,KAAK;IAEzC,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;MAC1B,MAAMI,SAAS,GAAG,MAAM,IAAI,CAACf,qBAAqB,CAACM,OAAO,CAACQ,MAAM,CAAC;MAClE,IAAIC,SAAS,CAACC,MAAM,CAAC,CAAC,EAAE;QACpB;QACA;MAAA;IAER;EACJ;AACJ;AAEA,OAAO,MAAMC,iDAAiD,GAC1DzB,+BAA+B,CAAC0B,oBAAoB,CAAC;EACjDC,cAAc,EAAEtB,gDAAgD;EAChEuB,YAAY,EAAE,CAAC1B,2BAA2B,EAAED,4BAA4B;AAC5E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js","sources":["../../../src/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.ts"],"sourcesContent":["import { RedirectAfterDeleteEventHandler } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport {\n CancelScheduledActionUseCase,\n ListScheduledActionsUseCase\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\n/**\n * Cancels scheduled actions when a redirect is deleted.\n *\n * When a user deletes a redirect, any scheduled publish/unpublish\n * actions for that redirect should be canceled since the redirect\n * no longer exists.\n */\nclass CancelScheduledActionOnRedirectDeleteHandlerImpl\n implements RedirectAfterDeleteEventHandler.Interface\n{\n constructor(\n private listScheduledActions: ListScheduledActionsUseCase.Interface,\n private cancelScheduledAction: CancelScheduledActionUseCase.Interface\n ) {}\n\n async handle(event: RedirectAfterDeleteEventHandler.Event): Promise<void> {\n const { redirect } = event.payload;\n\n const actionsResult = await this.listScheduledActions.execute({\n where: {\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n targetId: redirect.id\n }\n });\n\n const actions = actionsResult.value.items;\n\n for (const action of actions) {\n const cancelRes = await this.cancelScheduledAction.execute(action);\n if (cancelRes.isFail()) {\n // Silently ignore errors - this is non-critical cleanup.\n // The redirect was deleted successfully, cancelling scheduled actions is best-effort.\n }\n }\n }\n}\n\nexport const CancelScheduledActionOnRedirectDeleteEventHandler =\n RedirectAfterDeleteEventHandler.createImplementation({\n implementation: CancelScheduledActionOnRedirectDeleteHandlerImpl,\n dependencies: [ListScheduledActionsUseCase, CancelScheduledActionUseCase]\n });\n"],"names":["CancelScheduledActionOnRedirectDeleteHandlerImpl","listScheduledActions","cancelScheduledAction","event","redirect","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","actions","action","cancelRes","CancelScheduledActionOnRedirectDeleteEventHandler","RedirectAfterDeleteEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase"],"mappings":";;;;AAeA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,CACvE;aAFUD,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAM,OAAOC,KAA4C,EAAiB;QACtE,MAAM,EAAEC,QAAQ,EAAE,GAAGD,MAAM,OAAO;QAElC,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC1D,OAAO;gBACH,WAAWC,gBAAgBC;gBAC3B,UAAUH,SAAS,EAAE;YACzB;QACJ;QAEA,MAAMI,UAAUH,cAAc,KAAK,CAAC,KAAK;QAEzC,KAAK,MAAMI,UAAUD,QAAS;YAC1B,MAAME,YAAY,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACD;YACvDC,UAAU,MAAM;QAIxB;IACJ;AACJ;AAEO,MAAMC,oDACTC,gCAAgC,oBAAoB,CAAC;IACjD,gBAAgBZ;IAChB,cAAc;QAACa;QAA6BC;KAA6B;AAC7E"}
@@ -3,22 +3,15 @@ import { CancelScheduledActionOnPagePublishEventHandler } from "./CancelSchedule
3
3
  import { CancelScheduledActionOnPageUnpublishEventHandler } from "./CancelScheduledActionOnPageUnpublishEventHandler.js";
4
4
  import { CancelScheduledActionOnPageDeleteEventHandler } from "./CancelScheduledActionOnPageDeleteEventHandler.js";
5
5
  import { CancelScheduledActionOnRedirectDeleteEventHandler } from "./CancelScheduledActionOnRedirectDeleteEventHandler.js";
6
-
7
- /**
8
- * CancelScheduledActionOnChange Feature
9
- *
10
- * Automatically cancels scheduled actions when pages or redirects are manually
11
- * published, unpublished, or deleted. This ensures scheduled actions
12
- * don't execute after a user has already performed the action manually.
13
- */
14
- export const CancelScheduledActionOnChangeFeature = createFeature({
15
- name: "CancelScheduledActionOnChange",
16
- register(container) {
17
- container.register(CancelScheduledActionOnPagePublishEventHandler);
18
- container.register(CancelScheduledActionOnPageUnpublishEventHandler);
19
- container.register(CancelScheduledActionOnPageDeleteEventHandler);
20
- container.register(CancelScheduledActionOnRedirectDeleteEventHandler);
21
- }
6
+ const CancelScheduledActionOnChangeFeature = createFeature({
7
+ name: "CancelScheduledActionOnChange",
8
+ register (container) {
9
+ container.register(CancelScheduledActionOnPagePublishEventHandler);
10
+ container.register(CancelScheduledActionOnPageUnpublishEventHandler);
11
+ container.register(CancelScheduledActionOnPageDeleteEventHandler);
12
+ container.register(CancelScheduledActionOnRedirectDeleteEventHandler);
13
+ }
22
14
  });
15
+ export { CancelScheduledActionOnChangeFeature };
23
16
 
24
17
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createFeature","CancelScheduledActionOnPagePublishEventHandler","CancelScheduledActionOnPageUnpublishEventHandler","CancelScheduledActionOnPageDeleteEventHandler","CancelScheduledActionOnRedirectDeleteEventHandler","CancelScheduledActionOnChangeFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CancelScheduledActionOnPagePublishEventHandler } from \"./CancelScheduledActionOnPagePublishEventHandler.js\";\nimport { CancelScheduledActionOnPageUnpublishEventHandler } from \"./CancelScheduledActionOnPageUnpublishEventHandler.js\";\nimport { CancelScheduledActionOnPageDeleteEventHandler } from \"./CancelScheduledActionOnPageDeleteEventHandler.js\";\nimport { CancelScheduledActionOnRedirectDeleteEventHandler } from \"./CancelScheduledActionOnRedirectDeleteEventHandler.js\";\n\n/**\n * CancelScheduledActionOnChange Feature\n *\n * Automatically cancels scheduled actions when pages or redirects are manually\n * published, unpublished, or deleted. This ensures scheduled actions\n * don't execute after a user has already performed the action manually.\n */\nexport const CancelScheduledActionOnChangeFeature = createFeature({\n name: \"CancelScheduledActionOnChange\",\n register(container) {\n container.register(CancelScheduledActionOnPagePublishEventHandler);\n container.register(CancelScheduledActionOnPageUnpublishEventHandler);\n container.register(CancelScheduledActionOnPageDeleteEventHandler);\n container.register(CancelScheduledActionOnRedirectDeleteEventHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,8CAA8C;AACvD,SAASC,gDAAgD;AACzD,SAASC,6CAA6C;AACtD,SAASC,iDAAiD;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oCAAoC,GAAGL,aAAa,CAAC;EAC9DM,IAAI,EAAE,+BAA+B;EACrCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACN,8CAA8C,CAAC;IAClEO,SAAS,CAACD,QAAQ,CAACL,gDAAgD,CAAC;IACpEM,SAAS,CAACD,QAAQ,CAACJ,6CAA6C,CAAC;IACjEK,SAAS,CAACD,QAAQ,CAACH,iDAAiD,CAAC;EACzE;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/CancelScheduledActionOnChange/feature.js","sources":["../../../src/features/CancelScheduledActionOnChange/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CancelScheduledActionOnPagePublishEventHandler } from \"./CancelScheduledActionOnPagePublishEventHandler.js\";\nimport { CancelScheduledActionOnPageUnpublishEventHandler } from \"./CancelScheduledActionOnPageUnpublishEventHandler.js\";\nimport { CancelScheduledActionOnPageDeleteEventHandler } from \"./CancelScheduledActionOnPageDeleteEventHandler.js\";\nimport { CancelScheduledActionOnRedirectDeleteEventHandler } from \"./CancelScheduledActionOnRedirectDeleteEventHandler.js\";\n\n/**\n * CancelScheduledActionOnChange Feature\n *\n * Automatically cancels scheduled actions when pages or redirects are manually\n * published, unpublished, or deleted. This ensures scheduled actions\n * don't execute after a user has already performed the action manually.\n */\nexport const CancelScheduledActionOnChangeFeature = createFeature({\n name: \"CancelScheduledActionOnChange\",\n register(container) {\n container.register(CancelScheduledActionOnPagePublishEventHandler);\n container.register(CancelScheduledActionOnPageUnpublishEventHandler);\n container.register(CancelScheduledActionOnPageDeleteEventHandler);\n container.register(CancelScheduledActionOnRedirectDeleteEventHandler);\n }\n});\n"],"names":["CancelScheduledActionOnChangeFeature","createFeature","container","CancelScheduledActionOnPagePublishEventHandler","CancelScheduledActionOnPageUnpublishEventHandler","CancelScheduledActionOnPageDeleteEventHandler","CancelScheduledActionOnRedirectDeleteEventHandler"],"mappings":";;;;;AAaO,MAAMA,uCAAuCC,cAAc;IAC9D,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;IACvB;AACJ"}
@@ -1,38 +1,39 @@
1
- import { NamespaceHandler as NamespaceHandlerAbstraction } from "@webiny/api-scheduler/exports/api/scheduler.js";
1
+ import { NamespaceHandler } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
2
  import { extractModelIdFromNamespace } from "../../utils/namespace.js";
3
3
  import { Result } from "@webiny/feature/exports/api.js";
4
4
  import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
5
  import { GetPageByIdUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
6
6
  class PageNamespaceHandlerImpl {
7
- constructor(getPageByIdUseCase) {
8
- this.getPageByIdUseCase = getPageByIdUseCase;
9
- }
10
- canHandle(namespace) {
11
- const type = extractModelIdFromNamespace(namespace);
12
- return type === SCHEDULED_ACTION_TYPE_PAGE;
13
- }
14
- async execute(params) {
15
- const type = extractModelIdFromNamespace(params.namespace);
16
- const pageResult = await this.getPageByIdUseCase.execute(params.targetId);
17
- if (pageResult.isFail()) {
18
- return Result.fail(pageResult.error);
7
+ constructor(getPageByIdUseCase){
8
+ this.getPageByIdUseCase = getPageByIdUseCase;
9
+ }
10
+ canHandle(namespace) {
11
+ const type = extractModelIdFromNamespace(namespace);
12
+ return type === SCHEDULED_ACTION_TYPE_PAGE;
13
+ }
14
+ async execute(params) {
15
+ const type = extractModelIdFromNamespace(params.namespace);
16
+ const pageResult = await this.getPageByIdUseCase.execute(params.targetId);
17
+ if (pageResult.isFail()) return Result.fail(pageResult.error);
18
+ const page = pageResult.value;
19
+ const title = page.properties.title || "Unknown page title";
20
+ return Result.ok({
21
+ namespace: params.namespace,
22
+ title,
23
+ type,
24
+ actionType: params.actionType,
25
+ targetId: params.targetId,
26
+ scheduleId: params.scheduleId,
27
+ immediately: params.immediately || false
28
+ });
19
29
  }
20
- const page = pageResult.value;
21
- const title = page.properties.title || "Unknown page title";
22
- return Result.ok({
23
- namespace: params.namespace,
24
- title,
25
- type,
26
- actionType: params.actionType,
27
- targetId: params.targetId,
28
- scheduleId: params.scheduleId,
29
- immediately: params.immediately || false
30
- });
31
- }
32
30
  }
33
- export const PageNamespaceHandler = NamespaceHandlerAbstraction.createImplementation({
34
- implementation: PageNamespaceHandlerImpl,
35
- dependencies: [GetPageByIdUseCase]
31
+ const PageNamespaceHandler = NamespaceHandler.createImplementation({
32
+ implementation: PageNamespaceHandlerImpl,
33
+ dependencies: [
34
+ GetPageByIdUseCase
35
+ ]
36
36
  });
37
+ export { PageNamespaceHandler };
37
38
 
38
39
  //# sourceMappingURL=PageNamespaceHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NamespaceHandler","NamespaceHandlerAbstraction","extractModelIdFromNamespace","Result","SCHEDULED_ACTION_TYPE_PAGE","GetPageByIdUseCase","PageNamespaceHandlerImpl","constructor","getPageByIdUseCase","canHandle","namespace","type","execute","params","pageResult","targetId","isFail","fail","error","page","value","title","properties","ok","actionType","scheduleId","immediately","PageNamespaceHandler","createImplementation","implementation","dependencies"],"sources":["PageNamespaceHandler.ts"],"sourcesContent":["import { NamespaceHandler as NamespaceHandlerAbstraction } from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { GetPageByIdUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\n\nclass PageNamespaceHandlerImpl implements NamespaceHandlerAbstraction.Interface<GenericRecord> {\n public constructor(private getPageByIdUseCase: GetPageByIdUseCase.Interface) {}\n\n public canHandle(namespace: string): boolean {\n const type = extractModelIdFromNamespace(namespace);\n return type === SCHEDULED_ACTION_TYPE_PAGE;\n }\n\n public async execute(\n params: NamespaceHandlerAbstraction.Params\n ): NamespaceHandlerAbstraction.Response<IScheduledActionPayload> {\n const type = extractModelIdFromNamespace(params.namespace)!;\n\n const pageResult = await this.getPageByIdUseCase.execute(params.targetId);\n if (pageResult.isFail()) {\n return Result.fail(pageResult.error as any);\n }\n const page = pageResult.value;\n\n const title = page.properties.title || \"Unknown page title\";\n\n return Result.ok({\n namespace: params.namespace,\n title,\n type,\n actionType: params.actionType,\n targetId: params.targetId,\n scheduleId: params.scheduleId,\n immediately: params.immediately || false\n });\n }\n}\n\nexport const PageNamespaceHandler = NamespaceHandlerAbstraction.createImplementation({\n implementation: PageNamespaceHandlerImpl,\n dependencies: [GetPageByIdUseCase]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB,IAAIC,2BAA2B,QAAQ,gDAAgD;AAChH,SAASC,2BAA2B;AACpC,SAASC,MAAM,QAAQ,gCAAgC;AAEvD,SAASC,0BAA0B;AAEnC,SAASC,kBAAkB,QAAQ,iEAAiE;AAEpG,MAAMC,wBAAwB,CAAiE;EACpFC,WAAWA,CAASC,kBAAgD,EAAE;IAAA,KAAlDA,kBAAgD,GAAhDA,kBAAgD;EAAG;EAEvEC,SAASA,CAACC,SAAiB,EAAW;IACzC,MAAMC,IAAI,GAAGT,2BAA2B,CAACQ,SAAS,CAAC;IACnD,OAAOC,IAAI,KAAKP,0BAA0B;EAC9C;EAEA,MAAaQ,OAAOA,CAChBC,MAA0C,EACmB;IAC7D,MAAMF,IAAI,GAAGT,2BAA2B,CAACW,MAAM,CAACH,SAAS,CAAE;IAE3D,MAAMI,UAAU,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACI,OAAO,CAACC,MAAM,CAACE,QAAQ,CAAC;IACzE,IAAID,UAAU,CAACE,MAAM,CAAC,CAAC,EAAE;MACrB,OAAOb,MAAM,CAACc,IAAI,CAACH,UAAU,CAACI,KAAY,CAAC;IAC/C;IACA,MAAMC,IAAI,GAAGL,UAAU,CAACM,KAAK;IAE7B,MAAMC,KAAK,GAAGF,IAAI,CAACG,UAAU,CAACD,KAAK,IAAI,oBAAoB;IAE3D,OAAOlB,MAAM,CAACoB,EAAE,CAAC;MACbb,SAAS,EAAEG,MAAM,CAACH,SAAS;MAC3BW,KAAK;MACLV,IAAI;MACJa,UAAU,EAAEX,MAAM,CAACW,UAAU;MAC7BT,QAAQ,EAAEF,MAAM,CAACE,QAAQ;MACzBU,UAAU,EAAEZ,MAAM,CAACY,UAAU;MAC7BC,WAAW,EAAEb,MAAM,CAACa,WAAW,IAAI;IACvC,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMC,oBAAoB,GAAG1B,2BAA2B,CAAC2B,oBAAoB,CAAC;EACjFC,cAAc,EAAEvB,wBAAwB;EACxCwB,YAAY,EAAE,CAACzB,kBAAkB;AACrC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"features/NamespaceHandler/PageNamespaceHandler.js","sources":["../../../src/features/NamespaceHandler/PageNamespaceHandler.ts"],"sourcesContent":["import { NamespaceHandler as NamespaceHandlerAbstraction } from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { GetPageByIdUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\n\nclass PageNamespaceHandlerImpl implements NamespaceHandlerAbstraction.Interface<GenericRecord> {\n public constructor(private getPageByIdUseCase: GetPageByIdUseCase.Interface) {}\n\n public canHandle(namespace: string): boolean {\n const type = extractModelIdFromNamespace(namespace);\n return type === SCHEDULED_ACTION_TYPE_PAGE;\n }\n\n public async execute(\n params: NamespaceHandlerAbstraction.Params\n ): NamespaceHandlerAbstraction.Response<IScheduledActionPayload> {\n const type = extractModelIdFromNamespace(params.namespace)!;\n\n const pageResult = await this.getPageByIdUseCase.execute(params.targetId);\n if (pageResult.isFail()) {\n return Result.fail(pageResult.error as any);\n }\n const page = pageResult.value;\n\n const title = page.properties.title || \"Unknown page title\";\n\n return Result.ok({\n namespace: params.namespace,\n title,\n type,\n actionType: params.actionType,\n targetId: params.targetId,\n scheduleId: params.scheduleId,\n immediately: params.immediately || false\n });\n }\n}\n\nexport const PageNamespaceHandler = NamespaceHandlerAbstraction.createImplementation({\n implementation: PageNamespaceHandlerImpl,\n dependencies: [GetPageByIdUseCase]\n});\n"],"names":["PageNamespaceHandlerImpl","getPageByIdUseCase","namespace","type","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_PAGE","params","pageResult","Result","page","title","PageNamespaceHandler","NamespaceHandlerAbstraction","GetPageByIdUseCase"],"mappings":";;;;;AAQA,MAAMA;IACF,YAA2BC,kBAAgD,CAAE;aAAlDA,kBAAkB,GAAlBA;IAAmD;IAEvE,UAAUC,SAAiB,EAAW;QACzC,MAAMC,OAAOC,4BAA4BF;QACzC,OAAOC,SAASE;IACpB;IAEA,MAAa,QACTC,MAA0C,EACmB;QAC7D,MAAMH,OAAOC,4BAA4BE,OAAO,SAAS;QAEzD,MAAMC,aAAa,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,OAAO,QAAQ;QACxE,IAAIC,WAAW,MAAM,IACjB,OAAOC,OAAO,IAAI,CAACD,WAAW,KAAK;QAEvC,MAAME,OAAOF,WAAW,KAAK;QAE7B,MAAMG,QAAQD,KAAK,UAAU,CAAC,KAAK,IAAI;QAEvC,OAAOD,OAAO,EAAE,CAAC;YACb,WAAWF,OAAO,SAAS;YAC3BI;YACAP;YACA,YAAYG,OAAO,UAAU;YAC7B,UAAUA,OAAO,QAAQ;YACzB,YAAYA,OAAO,UAAU;YAC7B,aAAaA,OAAO,WAAW,IAAI;QACvC;IACJ;AACJ;AAEO,MAAMK,uBAAuBC,iBAAAA,oBAAgD,CAAC;IACjF,gBAAgBZ;IAChB,cAAc;QAACa;KAAmB;AACtC"}