@webiny/api-website-builder-scheduler 6.0.0 → 6.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/constants.d.ts +4 -0
  2. package/constants.js +6 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +22 -6
  5. package/context.js.map +1 -1
  6. package/exports/api/website-builder/scheduler.d.ts +4 -0
  7. package/exports/api/website-builder/scheduler.js +6 -0
  8. package/exports/api/website-builder/scheduler.js.map +1 -0
  9. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.d.ts +18 -0
  10. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js +43 -0
  11. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map +1 -0
  12. package/features/{CancelScheduledActionOnPageChange/CancelScheduledActionOnPublishEventHandler.d.ts → CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.d.ts} +4 -4
  13. package/features/{CancelScheduledActionOnPageChange/CancelScheduledActionOnPublishEventHandler.js → CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js} +9 -10
  14. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map +1 -0
  15. package/features/{CancelScheduledActionOnPageChange/CancelScheduledActionOnUnpublishEventHandler.d.ts → CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.d.ts} +8 -8
  16. package/features/{CancelScheduledActionOnPageChange/CancelScheduledActionOnUnpublishEventHandler.js → CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js} +14 -15
  17. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js.map +1 -0
  18. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.d.ts +19 -0
  19. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js +43 -0
  20. package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js.map +1 -0
  21. package/features/CancelScheduledActionOnChange/feature.d.ts +8 -0
  22. package/features/CancelScheduledActionOnChange/feature.js +24 -0
  23. package/features/CancelScheduledActionOnChange/feature.js.map +1 -0
  24. package/features/NamespaceHandler/PageNamespaceHandler.d.ts +14 -0
  25. package/features/NamespaceHandler/PageNamespaceHandler.js +38 -0
  26. package/features/NamespaceHandler/PageNamespaceHandler.js.map +1 -0
  27. package/features/NamespaceHandler/RedirectNamespaceHandler.d.ts +14 -0
  28. package/features/NamespaceHandler/RedirectNamespaceHandler.js +38 -0
  29. package/features/NamespaceHandler/RedirectNamespaceHandler.js.map +1 -0
  30. package/features/PublishActionHandler/PublishPageActionHandler.d.ts +16 -0
  31. package/features/{SchedulePageAction/actionHandlers → PublishActionHandler}/PublishPageActionHandler.js +8 -11
  32. package/features/PublishActionHandler/PublishPageActionHandler.js.map +1 -0
  33. package/features/PublishActionHandler/PublishRedirectActionHandler.d.ts +17 -0
  34. package/features/PublishActionHandler/PublishRedirectActionHandler.js +32 -0
  35. package/features/PublishActionHandler/PublishRedirectActionHandler.js.map +1 -0
  36. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.d.ts +11 -0
  37. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js +30 -0
  38. package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js.map +1 -0
  39. package/features/SchedulePublishPageUseCase/abstractions.d.ts +21 -0
  40. package/features/SchedulePublishPageUseCase/abstractions.js +5 -0
  41. package/features/SchedulePublishPageUseCase/abstractions.js.map +1 -0
  42. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.d.ts +11 -0
  43. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js +30 -0
  44. package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js.map +1 -0
  45. package/features/SchedulePublishRedirectUseCase/abstractions.d.ts +21 -0
  46. package/features/SchedulePublishRedirectUseCase/abstractions.js +5 -0
  47. package/features/SchedulePublishRedirectUseCase/abstractions.js.map +1 -0
  48. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.d.ts +11 -0
  49. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js +30 -0
  50. package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js.map +1 -0
  51. package/features/ScheduleUnpublishPageUseCase/abstractions.d.ts +21 -0
  52. package/features/ScheduleUnpublishPageUseCase/abstractions.js +5 -0
  53. package/features/ScheduleUnpublishPageUseCase/abstractions.js.map +1 -0
  54. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.d.ts +11 -0
  55. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js +30 -0
  56. package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js.map +1 -0
  57. package/features/ScheduleUnpublishRedirectUseCase/abstractions.d.ts +21 -0
  58. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js +5 -0
  59. package/features/ScheduleUnpublishRedirectUseCase/abstractions.js.map +1 -0
  60. package/features/UnpublishActionHandler/UnpublishPageActionHandler.d.ts +17 -0
  61. package/features/{SchedulePageAction/actionHandlers → UnpublishActionHandler}/UnpublishPageActionHandler.js +7 -11
  62. package/features/UnpublishActionHandler/UnpublishPageActionHandler.js.map +1 -0
  63. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.d.ts +18 -0
  64. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js +31 -0
  65. package/features/UnpublishActionHandler/UnpublishRedirectActionHandler.js.map +1 -0
  66. package/index.d.ts +2 -6
  67. package/index.js +1 -7
  68. package/index.js.map +1 -1
  69. package/package.json +18 -19
  70. package/types.d.ts +6 -0
  71. package/types.js +3 -0
  72. package/types.js.map +1 -0
  73. package/utils/namespace.d.ts +3 -0
  74. package/utils/namespace.js +16 -0
  75. package/utils/namespace.js.map +1 -0
  76. package/features/CancelScheduledActionOnPageChange/CancelScheduledActionOnDeleteEventHandler.d.ts +0 -20
  77. package/features/CancelScheduledActionOnPageChange/CancelScheduledActionOnDeleteEventHandler.js +0 -48
  78. package/features/CancelScheduledActionOnPageChange/CancelScheduledActionOnDeleteEventHandler.js.map +0 -1
  79. package/features/CancelScheduledActionOnPageChange/CancelScheduledActionOnPublishEventHandler.js.map +0 -1
  80. package/features/CancelScheduledActionOnPageChange/CancelScheduledActionOnUnpublishEventHandler.js.map +0 -1
  81. package/features/CancelScheduledActionOnPageChange/feature.d.ts +0 -8
  82. package/features/CancelScheduledActionOnPageChange/feature.js +0 -22
  83. package/features/CancelScheduledActionOnPageChange/feature.js.map +0 -1
  84. package/features/CancelScheduledPageAction/CancelScheduledPageActionUseCase.d.ts +0 -15
  85. package/features/CancelScheduledPageAction/CancelScheduledPageActionUseCase.js +0 -25
  86. package/features/CancelScheduledPageAction/CancelScheduledPageActionUseCase.js.map +0 -1
  87. package/features/CancelScheduledPageAction/abstractions.d.ts +0 -22
  88. package/features/CancelScheduledPageAction/abstractions.js +0 -11
  89. package/features/CancelScheduledPageAction/abstractions.js.map +0 -1
  90. package/features/CancelScheduledPageAction/feature.d.ts +0 -6
  91. package/features/CancelScheduledPageAction/feature.js +0 -16
  92. package/features/CancelScheduledPageAction/feature.js.map +0 -1
  93. package/features/CancelScheduledPageAction/index.d.ts +0 -1
  94. package/features/CancelScheduledPageAction/index.js +0 -3
  95. package/features/CancelScheduledPageAction/index.js.map +0 -1
  96. package/features/SchedulePageAction/SchedulePageActionUseCase.d.ts +0 -25
  97. package/features/SchedulePageAction/SchedulePageActionUseCase.js +0 -74
  98. package/features/SchedulePageAction/SchedulePageActionUseCase.js.map +0 -1
  99. package/features/SchedulePageAction/abstractions.d.ts +0 -42
  100. package/features/SchedulePageAction/abstractions.js +0 -17
  101. package/features/SchedulePageAction/abstractions.js.map +0 -1
  102. package/features/SchedulePageAction/actionHandlers/PublishPageActionHandler.d.ts +0 -22
  103. package/features/SchedulePageAction/actionHandlers/PublishPageActionHandler.js.map +0 -1
  104. package/features/SchedulePageAction/actionHandlers/UnpublishPageActionHandler.d.ts +0 -22
  105. package/features/SchedulePageAction/actionHandlers/UnpublishPageActionHandler.js.map +0 -1
  106. package/features/SchedulePageAction/feature.d.ts +0 -7
  107. package/features/SchedulePageAction/feature.js +0 -21
  108. package/features/SchedulePageAction/feature.js.map +0 -1
  109. package/features/SchedulePageAction/index.d.ts +0 -1
  110. package/features/SchedulePageAction/index.js +0 -3
  111. package/features/SchedulePageAction/index.js.map +0 -1
  112. package/graphql/ActionMapper.d.ts +0 -12
  113. package/graphql/ActionMapper.js +0 -15
  114. package/graphql/ActionMapper.js.map +0 -1
  115. package/graphql/dates.d.ts +0 -6
  116. package/graphql/dates.js +0 -9
  117. package/graphql/dates.js.map +0 -1
  118. package/graphql/index.d.ts +0 -2
  119. package/graphql/index.js +0 -239
  120. package/graphql/index.js.map +0 -1
  121. package/graphql/schema.d.ts +0 -142
  122. package/graphql/schema.js +0 -76
  123. package/graphql/schema.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { ScheduledActionHandler, ScheduledActionType, type IScheduledAction } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { PublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ /**
5
+ * Handles the scheduled "publish" action for Website Builder pages.
6
+ */
7
+ declare class PublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {
8
+ private publishPageUseCase;
9
+ constructor(publishPageUseCase: PublishPageUseCase.Interface);
10
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
11
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
12
+ }
13
+ export declare const PublishPageActionHandler: typeof PublishPageActionHandlerImpl & {
14
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions").IScheduledActionHandler>;
15
+ };
16
+ export {};
@@ -1,27 +1,24 @@
1
- import { ScheduledActionHandler } from "@webiny/api-scheduler";
2
- import { PublishPageUseCase } from "@webiny/api-website-builder/features/pages/PublishPage/abstractions.js";
1
+ import { ScheduledActionHandler, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { PublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
5
+
3
6
  /**
4
- * Handler for publishing WB pages.
5
- *
6
- * Handles the "Publish" action for WB pages with namespace: Wb/Page.
7
- *
8
- * Publishing logic:
9
- * 1. Resolve PublishPageUseCase from the container.
10
- * 2. Call execute with the target page revision ID.
7
+ * Handles the scheduled "publish" action for Website Builder pages.
11
8
  */
12
9
  class PublishPageActionHandlerImpl {
13
10
  constructor(publishPageUseCase) {
14
11
  this.publishPageUseCase = publishPageUseCase;
15
12
  }
16
13
  canHandle(namespace, actionType) {
17
- return namespace === "Wb/Page" && actionType === "Publish";
14
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE && actionType === ScheduledActionTypePublish;
18
15
  }
19
16
  async handle(action) {
20
17
  const result = await this.publishPageUseCase.execute({
21
18
  id: action.targetId
22
19
  });
23
20
  if (result.isFail()) {
24
- console.error(`Failed to publish page "${action.targetId}" for scheduled publish action:`, result.error);
21
+ console.error(`Failed to publish page "${action.targetId}":`, result.error);
25
22
  throw new Error(`Failed to publish page: ${action.targetId}`);
26
23
  }
27
24
  }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypePublish","PublishPageUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_PAGE","PublishPageActionHandlerImpl","constructor","publishPageUseCase","canHandle","namespace","actionType","handle","action","result","execute","id","targetId","isFail","console","error","Error","PublishPageActionHandler","createImplementation","implementation","dependencies"],"sources":["PublishPageActionHandler.ts"],"sourcesContent":["import {\n ScheduledActionHandler,\n ScheduledActionType,\n type IScheduledAction,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { PublishPageUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\n/**\n * Handles the scheduled \"publish\" action for Website Builder pages.\n */\nclass PublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private publishPageUseCase: PublishPageUseCase.Interface) {}\n\n public canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE &&\n actionType === ScheduledActionTypePublish\n );\n }\n\n public async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.publishPageUseCase.execute({ id: action.targetId });\n if (result.isFail()) {\n console.error(`Failed to publish page \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to publish page: ${action.targetId}`);\n }\n }\n}\n\nexport const PublishPageActionHandler = ScheduledActionHandler.createImplementation({\n implementation: PublishPageActionHandlerImpl,\n dependencies: [PublishPageUseCase]\n});\n"],"mappings":"AAAA,SACIA,sBAAsB,EAGtBC,0BAA0B,QACvB,gDAAgD;AACvD,SAASC,kBAAkB,QAAQ,iEAAiE;AAEpG,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;;AAEnC;AACA;AACA;AACA,MAAMC,4BAA4B,CAA6C;EAC3EC,WAAWA,CAASC,kBAAgD,EAAE;IAAA,KAAlDA,kBAAgD,GAAhDA,kBAAgD;EAAG;EAEhEC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IAC1E,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,0BAA0B,IACrEM,UAAU,KAAKT,0BAA0B;EAEjD;EAEA,MAAaU,MAAMA,CAACC,MAAiD,EAAiB;IAClF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,kBAAkB,CAACO,OAAO,CAAC;MAAEC,EAAE,EAAEH,MAAM,CAACI;IAAS,CAAC,CAAC;IAC7E,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,2BAA2BP,MAAM,CAACI,QAAQ,IAAI,EAAEH,MAAM,CAACM,KAAK,CAAC;MAC3E,MAAM,IAAIC,KAAK,CAAC,2BAA2BR,MAAM,CAACI,QAAQ,EAAE,CAAC;IACjE;EACJ;AACJ;AAEA,OAAO,MAAMK,wBAAwB,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EAChFC,cAAc,EAAElB,4BAA4B;EAC5CmB,YAAY,EAAE,CAACtB,kBAAkB;AACrC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { ScheduledActionHandler, ScheduledActionType, type IScheduledAction } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ /**
5
+ * Handles the scheduled "publish" action for Website Builder redirects.
6
+ * Publishing a redirect means enabling it (isEnabled: true).
7
+ */
8
+ declare class PublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {
9
+ private updateRedirectUseCase;
10
+ constructor(updateRedirectUseCase: UpdateRedirectUseCase.Interface);
11
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
12
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
13
+ }
14
+ export declare const PublishRedirectActionHandler: typeof PublishRedirectActionHandlerImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions").IScheduledActionHandler>;
16
+ };
17
+ export {};
@@ -0,0 +1,32 @@
1
+ import { ScheduledActionHandler, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
+
6
+ /**
7
+ * Handles the scheduled "publish" action for Website Builder redirects.
8
+ * Publishing a redirect means enabling it (isEnabled: true).
9
+ */
10
+ class PublishRedirectActionHandlerImpl {
11
+ constructor(updateRedirectUseCase) {
12
+ this.updateRedirectUseCase = updateRedirectUseCase;
13
+ }
14
+ canHandle(namespace, actionType) {
15
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT && actionType === ScheduledActionTypePublish;
16
+ }
17
+ async handle(action) {
18
+ const result = await this.updateRedirectUseCase.execute(action.targetId, {
19
+ isEnabled: true
20
+ });
21
+ if (result.isFail()) {
22
+ console.error(`Failed to enable redirect "${action.targetId}":`, result.error);
23
+ throw new Error(`Failed to enable redirect: ${action.targetId}`);
24
+ }
25
+ }
26
+ }
27
+ export const PublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
28
+ implementation: PublishRedirectActionHandlerImpl,
29
+ dependencies: [UpdateRedirectUseCase]
30
+ });
31
+
32
+ //# sourceMappingURL=PublishRedirectActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypePublish","UpdateRedirectUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","PublishRedirectActionHandlerImpl","constructor","updateRedirectUseCase","canHandle","namespace","actionType","handle","action","result","execute","targetId","isEnabled","isFail","console","error","Error","PublishRedirectActionHandler","createImplementation","implementation","dependencies"],"sources":["PublishRedirectActionHandler.ts"],"sourcesContent":["import {\n ScheduledActionHandler,\n ScheduledActionType,\n type IScheduledAction,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UpdateRedirectUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\n/**\n * Handles the scheduled \"publish\" action for Website Builder redirects.\n * Publishing a redirect means enabling it (isEnabled: true).\n */\nclass PublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private updateRedirectUseCase: UpdateRedirectUseCase.Interface) {}\n\n public canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT &&\n actionType === ScheduledActionTypePublish\n );\n }\n\n public async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.updateRedirectUseCase.execute(action.targetId, {\n isEnabled: true\n });\n if (result.isFail()) {\n console.error(`Failed to enable redirect \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to enable redirect: ${action.targetId}`);\n }\n }\n}\n\nexport const PublishRedirectActionHandler = ScheduledActionHandler.createImplementation({\n implementation: PublishRedirectActionHandlerImpl,\n dependencies: [UpdateRedirectUseCase]\n});\n"],"mappings":"AAAA,SACIA,sBAAsB,EAGtBC,0BAA0B,QACvB,gDAAgD;AACvD,SAASC,qBAAqB,QAAQ,qEAAqE;AAE3G,SAASC,2BAA2B;AACpC,SAASC,8BAA8B;;AAEvC;AACA;AACA;AACA;AACA,MAAMC,gCAAgC,CAA6C;EAC/EC,WAAWA,CAASC,qBAAsD,EAAE;IAAA,KAAxDA,qBAAsD,GAAtDA,qBAAsD;EAAG;EAEtEC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IAC1E,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,8BAA8B,IACzEM,UAAU,KAAKT,0BAA0B;EAEjD;EAEA,MAAaU,MAAMA,CAACC,MAAiD,EAAiB;IAClF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,qBAAqB,CAACO,OAAO,CAACF,MAAM,CAACG,QAAQ,EAAE;MACrEC,SAAS,EAAE;IACf,CAAC,CAAC;IACF,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,8BAA8BP,MAAM,CAACG,QAAQ,IAAI,EAAEF,MAAM,CAACM,KAAK,CAAC;MAC9E,MAAM,IAAIC,KAAK,CAAC,8BAA8BR,MAAM,CAACG,QAAQ,EAAE,CAAC;IACpE;EACJ;AACJ;AAEA,OAAO,MAAMM,4BAA4B,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EACpFC,cAAc,EAAElB,gCAAgC;EAChDmB,YAAY,EAAE,CAACtB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { SchedulePublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class SchedulePublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const SchedulePublishPageUseCase: typeof SchedulePublishPageUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ISchedulePublishPageUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,30 @@
1
+ import { SchedulePublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
6
+ class SchedulePublishPageUseCaseImpl {
7
+ constructor(scheduleAction) {
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
13
+ actionType: ScheduledActionTypePublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) {
18
+ return Result.fail(scheduleResult.error);
19
+ }
20
+ return Result.ok({
21
+ scheduledAction: scheduleResult.value
22
+ });
23
+ }
24
+ }
25
+ export const SchedulePublishPageUseCase = UseCaseAbstraction.createImplementation({
26
+ implementation: SchedulePublishPageUseCaseImpl,
27
+ dependencies: [ScheduleActionUseCase]
28
+ });
29
+
30
+ //# sourceMappingURL=SchedulePublishPageUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SchedulePublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase","ScheduledActionTypePublish","createNamespace","Result","SCHEDULED_ACTION_TYPE_PAGE","SchedulePublishPageUseCaseImpl","constructor","scheduleAction","execute","params","scheduleResult","namespace","actionType","scheduleFor","targetId","id","isFail","fail","error","ok","scheduledAction","value","createImplementation","implementation","dependencies"],"sources":["SchedulePublishPageUseCase.ts"],"sourcesContent":["import { SchedulePublishPageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\nclass SchedulePublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypePublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const SchedulePublishPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: SchedulePublishPageUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"mappings":"AAAA,SAASA,0BAA0B,IAAIC,kBAAkB;AACzD,SACIC,qBAAqB,EACrBC,0BAA0B,QACvB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,0BAA0B;AAEnC,MAAMC,8BAA8B,CAAyC;EAClEC,WAAWA,CAASC,cAA+C,EAAE;IAAA,KAAjDA,cAA+C,GAA/CA,cAA+C;EAAG;EAE7E,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACH,cAAc,CAACC,OAAO,CAAC;MACrDG,SAAS,EAAET,eAAe,CAACE,0BAA0B,CAAC;MACtDQ,UAAU,EAAEX,0BAA0B;MACtCY,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,QAAQ,EAAEL,MAAM,CAACM;IACrB,CAAC,CAAC;IACF,IAAIL,cAAc,CAACM,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOb,MAAM,CAACc,IAAI,CAACP,cAAc,CAACQ,KAAK,CAAC;IAC5C;IACA,OAAOf,MAAM,CAACgB,EAAE,CAAC;MAAEC,eAAe,EAAEV,cAAc,CAACW;IAAM,CAAC,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAMvB,0BAA0B,GAAGC,kBAAkB,CAACuB,oBAAoB,CAAC;EAC9EC,cAAc,EAAElB,8BAA8B;EAC9CmB,YAAY,EAAE,CAACxB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface ISchedulePublishPageUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface ISchedulePublishPageUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type ISchedulePublishPageUseCaseResponse = Promise<Result<ISchedulePublishPageUseCaseResult, ScheduleActionError>>;
11
+ export interface ISchedulePublishPageUseCase {
12
+ execute(params: ISchedulePublishPageUseCaseParams): ISchedulePublishPageUseCaseResponse;
13
+ }
14
+ /** Schedule a page for future publishing. */
15
+ export declare const SchedulePublishPageUseCase: import("@webiny/di").Abstraction<ISchedulePublishPageUseCase>;
16
+ export declare namespace SchedulePublishPageUseCase {
17
+ type Interface = ISchedulePublishPageUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = ISchedulePublishPageUseCaseParams;
20
+ type Result = ISchedulePublishPageUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction, Result } from "@webiny/feature/api";
2
+ /** Schedule a page for future publishing. */
3
+ export const SchedulePublishPageUseCase = createAbstraction("WbScheduler/SchedulePublishPageUseCase");
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","Result","SchedulePublishPageUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface ISchedulePublishPageUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface ISchedulePublishPageUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type ISchedulePublishPageUseCaseResponse = Promise<\n Result<ISchedulePublishPageUseCaseResult, ScheduleActionError>\n>;\n\nexport interface ISchedulePublishPageUseCase {\n execute(params: ISchedulePublishPageUseCaseParams): ISchedulePublishPageUseCaseResponse;\n}\n\n/** Schedule a page for future publishing. */\nexport const SchedulePublishPageUseCase = createAbstraction<ISchedulePublishPageUseCase>(\n \"WbScheduler/SchedulePublishPageUseCase\"\n);\n\nexport namespace SchedulePublishPageUseCase {\n export type Interface = ISchedulePublishPageUseCase;\n export type Error = ScheduleActionError;\n export type Params = ISchedulePublishPageUseCaseParams;\n export type Result = ISchedulePublishPageUseCaseResponse;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,MAAM,QAAQ,qBAAqB;AAuB/D;AACA,OAAO,MAAMC,0BAA0B,GAAGF,iBAAiB,CACvD,wCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { SchedulePublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class SchedulePublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const SchedulePublishRedirectUseCase: typeof SchedulePublishRedirectUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ISchedulePublishRedirectUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,30 @@
1
+ import { SchedulePublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
6
+ class SchedulePublishRedirectUseCaseImpl {
7
+ constructor(scheduleAction) {
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
13
+ actionType: ScheduledActionTypePublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) {
18
+ return Result.fail(scheduleResult.error);
19
+ }
20
+ return Result.ok({
21
+ scheduledAction: scheduleResult.value
22
+ });
23
+ }
24
+ }
25
+ export const SchedulePublishRedirectUseCase = UseCaseAbstraction.createImplementation({
26
+ implementation: SchedulePublishRedirectUseCaseImpl,
27
+ dependencies: [ScheduleActionUseCase]
28
+ });
29
+
30
+ //# sourceMappingURL=SchedulePublishRedirectUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SchedulePublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase","ScheduledActionTypePublish","createNamespace","Result","SCHEDULED_ACTION_TYPE_REDIRECT","SchedulePublishRedirectUseCaseImpl","constructor","scheduleAction","execute","params","scheduleResult","namespace","actionType","scheduleFor","targetId","id","isFail","fail","error","ok","scheduledAction","value","createImplementation","implementation","dependencies"],"sources":["SchedulePublishRedirectUseCase.ts"],"sourcesContent":["import { SchedulePublishRedirectUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypePublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\nclass SchedulePublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n actionType: ScheduledActionTypePublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const SchedulePublishRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: SchedulePublishRedirectUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"mappings":"AAAA,SAASA,8BAA8B,IAAIC,kBAAkB;AAC7D,SACIC,qBAAqB,EACrBC,0BAA0B,QACvB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,8BAA8B;AAEvC,MAAMC,kCAAkC,CAAyC;EACtEC,WAAWA,CAASC,cAA+C,EAAE;IAAA,KAAjDA,cAA+C,GAA/CA,cAA+C;EAAG;EAE7E,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACH,cAAc,CAACC,OAAO,CAAC;MACrDG,SAAS,EAAET,eAAe,CAACE,8BAA8B,CAAC;MAC1DQ,UAAU,EAAEX,0BAA0B;MACtCY,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,QAAQ,EAAEL,MAAM,CAACM;IACrB,CAAC,CAAC;IACF,IAAIL,cAAc,CAACM,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOb,MAAM,CAACc,IAAI,CAACP,cAAc,CAACQ,KAAK,CAAC;IAC5C;IACA,OAAOf,MAAM,CAACgB,EAAE,CAAC;MAAEC,eAAe,EAAEV,cAAc,CAACW;IAAM,CAAC,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAMvB,8BAA8B,GAAGC,kBAAkB,CAACuB,oBAAoB,CAAC;EAClFC,cAAc,EAAElB,kCAAkC;EAClDmB,YAAY,EAAE,CAACxB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface ISchedulePublishRedirectUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface ISchedulePublishRedirectUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type ISchedulePublishRedirectUseCaseResponse = Promise<Result<ISchedulePublishRedirectUseCaseResult, ScheduleActionError>>;
11
+ export interface ISchedulePublishRedirectUseCase {
12
+ execute(params: ISchedulePublishRedirectUseCaseParams): ISchedulePublishRedirectUseCaseResponse;
13
+ }
14
+ /** Schedule a redirect for future publishing. */
15
+ export declare const SchedulePublishRedirectUseCase: import("@webiny/di").Abstraction<ISchedulePublishRedirectUseCase>;
16
+ export declare namespace SchedulePublishRedirectUseCase {
17
+ type Interface = ISchedulePublishRedirectUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = ISchedulePublishRedirectUseCaseParams;
20
+ type Result = ISchedulePublishRedirectUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction, Result } from "@webiny/feature/api";
2
+ /** Schedule a redirect for future publishing. */
3
+ export const SchedulePublishRedirectUseCase = createAbstraction("WbScheduler/SchedulePublishRedirectUseCase");
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","Result","SchedulePublishRedirectUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface ISchedulePublishRedirectUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface ISchedulePublishRedirectUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type ISchedulePublishRedirectUseCaseResponse = Promise<\n Result<ISchedulePublishRedirectUseCaseResult, ScheduleActionError>\n>;\n\nexport interface ISchedulePublishRedirectUseCase {\n execute(params: ISchedulePublishRedirectUseCaseParams): ISchedulePublishRedirectUseCaseResponse;\n}\n\n/** Schedule a redirect for future publishing. */\nexport const SchedulePublishRedirectUseCase = createAbstraction<ISchedulePublishRedirectUseCase>(\n \"WbScheduler/SchedulePublishRedirectUseCase\"\n);\n\nexport namespace SchedulePublishRedirectUseCase {\n export type Interface = ISchedulePublishRedirectUseCase;\n export type Error = ScheduleActionError;\n export type Params = ISchedulePublishRedirectUseCaseParams;\n export type Result = ISchedulePublishRedirectUseCaseResponse;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,MAAM,QAAQ,qBAAqB;AAuB/D;AACA,OAAO,MAAMC,8BAA8B,GAAGF,iBAAiB,CAC3D,4CACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ScheduleUnpublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class ScheduleUnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const ScheduleUnpublishPageUseCase: typeof ScheduleUnpublishPageUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IScheduleUnpublishPageUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ScheduleUnpublishPageUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
6
+ class ScheduleUnpublishPageUseCaseImpl {
7
+ constructor(scheduleAction) {
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
13
+ actionType: ScheduledActionTypeUnpublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) {
18
+ return Result.fail(scheduleResult.error);
19
+ }
20
+ return Result.ok({
21
+ scheduledAction: scheduleResult.value
22
+ });
23
+ }
24
+ }
25
+ export const ScheduleUnpublishPageUseCase = UseCaseAbstraction.createImplementation({
26
+ implementation: ScheduleUnpublishPageUseCaseImpl,
27
+ dependencies: [ScheduleActionUseCase]
28
+ });
29
+
30
+ //# sourceMappingURL=ScheduleUnpublishPageUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduleUnpublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase","ScheduledActionTypeUnpublish","createNamespace","Result","SCHEDULED_ACTION_TYPE_PAGE","ScheduleUnpublishPageUseCaseImpl","constructor","scheduleAction","execute","params","scheduleResult","namespace","actionType","scheduleFor","targetId","id","isFail","fail","error","ok","scheduledAction","value","createImplementation","implementation","dependencies"],"sources":["ScheduleUnpublishPageUseCase.ts"],"sourcesContent":["import { ScheduleUnpublishPageUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\n\nclass ScheduleUnpublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),\n actionType: ScheduledActionTypeUnpublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const ScheduleUnpublishPageUseCase = UseCaseAbstraction.createImplementation({\n implementation: ScheduleUnpublishPageUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"mappings":"AAAA,SAASA,4BAA4B,IAAIC,kBAAkB;AAC3D,SACIC,qBAAqB,EACrBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,0BAA0B;AAEnC,MAAMC,gCAAgC,CAAyC;EACpEC,WAAWA,CAASC,cAA+C,EAAE;IAAA,KAAjDA,cAA+C,GAA/CA,cAA+C;EAAG;EAE7E,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACH,cAAc,CAACC,OAAO,CAAC;MACrDG,SAAS,EAAET,eAAe,CAACE,0BAA0B,CAAC;MACtDQ,UAAU,EAAEX,4BAA4B;MACxCY,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,QAAQ,EAAEL,MAAM,CAACM;IACrB,CAAC,CAAC;IACF,IAAIL,cAAc,CAACM,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOb,MAAM,CAACc,IAAI,CAACP,cAAc,CAACQ,KAAK,CAAC;IAC5C;IACA,OAAOf,MAAM,CAACgB,EAAE,CAAC;MAAEC,eAAe,EAAEV,cAAc,CAACW;IAAM,CAAC,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAMvB,4BAA4B,GAAGC,kBAAkB,CAACuB,oBAAoB,CAAC;EAChFC,cAAc,EAAElB,gCAAgC;EAChDmB,YAAY,EAAE,CAACxB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface IScheduleUnpublishPageUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface IScheduleUnpublishPageUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type IScheduleUnpublishPageUseCaseResponse = Promise<Result<IScheduleUnpublishPageUseCaseResult, ScheduleActionError>>;
11
+ export interface IScheduleUnpublishPageUseCase {
12
+ execute(params: IScheduleUnpublishPageUseCaseParams): IScheduleUnpublishPageUseCaseResponse;
13
+ }
14
+ /** Schedule a page for future unpublishing. */
15
+ export declare const ScheduleUnpublishPageUseCase: import("@webiny/di").Abstraction<IScheduleUnpublishPageUseCase>;
16
+ export declare namespace ScheduleUnpublishPageUseCase {
17
+ type Interface = IScheduleUnpublishPageUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = IScheduleUnpublishPageUseCaseParams;
20
+ type Result = IScheduleUnpublishPageUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction, Result } from "@webiny/feature/api";
2
+ /** Schedule a page for future unpublishing. */
3
+ export const ScheduleUnpublishPageUseCase = createAbstraction("WbScheduler/ScheduleUnpublishPageUseCase");
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","Result","ScheduleUnpublishPageUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface IScheduleUnpublishPageUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface IScheduleUnpublishPageUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type IScheduleUnpublishPageUseCaseResponse = Promise<\n Result<IScheduleUnpublishPageUseCaseResult, ScheduleActionError>\n>;\n\nexport interface IScheduleUnpublishPageUseCase {\n execute(params: IScheduleUnpublishPageUseCaseParams): IScheduleUnpublishPageUseCaseResponse;\n}\n\n/** Schedule a page for future unpublishing. */\nexport const ScheduleUnpublishPageUseCase = createAbstraction<IScheduleUnpublishPageUseCase>(\n \"WbScheduler/ScheduleUnpublishPageUseCase\"\n);\n\nexport namespace ScheduleUnpublishPageUseCase {\n export type Interface = IScheduleUnpublishPageUseCase;\n export type Error = ScheduleActionError;\n export type Params = IScheduleUnpublishPageUseCaseParams;\n export type Result = IScheduleUnpublishPageUseCaseResponse;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,MAAM,QAAQ,qBAAqB;AAuB/D;AACA,OAAO,MAAMC,4BAA4B,GAAGF,iBAAiB,CACzD,0CACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { ScheduleUnpublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ declare class ScheduleUnpublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {
4
+ private scheduleAction;
5
+ constructor(scheduleAction: ScheduleActionUseCase.Interface);
6
+ execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result;
7
+ }
8
+ export declare const ScheduleUnpublishRedirectUseCase: typeof ScheduleUnpublishRedirectUseCaseImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IScheduleUnpublishRedirectUseCase>;
10
+ };
11
+ export {};
@@ -0,0 +1,30 @@
1
+ import { ScheduleUnpublishRedirectUseCase as UseCaseAbstraction } from "./abstractions.js";
2
+ import { ScheduleActionUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ import { createNamespace } from "../../utils/namespace.js";
4
+ import { Result } from "@webiny/feature/exports/api.js";
5
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
6
+ class ScheduleUnpublishRedirectUseCaseImpl {
7
+ constructor(scheduleAction) {
8
+ this.scheduleAction = scheduleAction;
9
+ }
10
+ async execute(params) {
11
+ const scheduleResult = await this.scheduleAction.execute({
12
+ namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
13
+ actionType: ScheduledActionTypeUnpublish,
14
+ scheduleFor: params.scheduleFor,
15
+ targetId: params.id
16
+ });
17
+ if (scheduleResult.isFail()) {
18
+ return Result.fail(scheduleResult.error);
19
+ }
20
+ return Result.ok({
21
+ scheduledAction: scheduleResult.value
22
+ });
23
+ }
24
+ }
25
+ export const ScheduleUnpublishRedirectUseCase = UseCaseAbstraction.createImplementation({
26
+ implementation: ScheduleUnpublishRedirectUseCaseImpl,
27
+ dependencies: [ScheduleActionUseCase]
28
+ });
29
+
30
+ //# sourceMappingURL=ScheduleUnpublishRedirectUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduleUnpublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase","ScheduledActionTypeUnpublish","createNamespace","Result","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduleUnpublishRedirectUseCaseImpl","constructor","scheduleAction","execute","params","scheduleResult","namespace","actionType","scheduleFor","targetId","id","isFail","fail","error","ok","scheduledAction","value","createImplementation","implementation","dependencies"],"sources":["ScheduleUnpublishRedirectUseCase.ts"],"sourcesContent":["import { ScheduleUnpublishRedirectUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport {\n ScheduleActionUseCase,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { createNamespace } from \"~/utils/namespace.js\";\nimport { Result } from \"@webiny/feature/exports/api.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\n\nclass ScheduleUnpublishRedirectUseCaseImpl implements UseCaseAbstraction.Interface {\n public constructor(private scheduleAction: ScheduleActionUseCase.Interface) {}\n\n public async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Result {\n const scheduleResult = await this.scheduleAction.execute({\n namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),\n actionType: ScheduledActionTypeUnpublish,\n scheduleFor: params.scheduleFor,\n targetId: params.id\n });\n if (scheduleResult.isFail()) {\n return Result.fail(scheduleResult.error);\n }\n return Result.ok({ scheduledAction: scheduleResult.value });\n }\n}\n\nexport const ScheduleUnpublishRedirectUseCase = UseCaseAbstraction.createImplementation({\n implementation: ScheduleUnpublishRedirectUseCaseImpl,\n dependencies: [ScheduleActionUseCase]\n});\n"],"mappings":"AAAA,SAASA,gCAAgC,IAAIC,kBAAkB;AAC/D,SACIC,qBAAqB,EACrBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,eAAe;AACxB,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,8BAA8B;AAEvC,MAAMC,oCAAoC,CAAyC;EACxEC,WAAWA,CAASC,cAA+C,EAAE;IAAA,KAAjDA,cAA+C,GAA/CA,cAA+C;EAAG;EAE7E,MAAaC,OAAOA,CAACC,MAAiC,EAA6B;IAC/E,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACH,cAAc,CAACC,OAAO,CAAC;MACrDG,SAAS,EAAET,eAAe,CAACE,8BAA8B,CAAC;MAC1DQ,UAAU,EAAEX,4BAA4B;MACxCY,WAAW,EAAEJ,MAAM,CAACI,WAAW;MAC/BC,QAAQ,EAAEL,MAAM,CAACM;IACrB,CAAC,CAAC;IACF,IAAIL,cAAc,CAACM,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOb,MAAM,CAACc,IAAI,CAACP,cAAc,CAACQ,KAAK,CAAC;IAC5C;IACA,OAAOf,MAAM,CAACgB,EAAE,CAAC;MAAEC,eAAe,EAAEV,cAAc,CAACW;IAAM,CAAC,CAAC;EAC/D;AACJ;AAEA,OAAO,MAAMvB,gCAAgC,GAAGC,kBAAkB,CAACuB,oBAAoB,CAAC;EACpFC,cAAc,EAAElB,oCAAoC;EACpDmB,YAAY,EAAE,CAACxB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
3
+ export interface IScheduleUnpublishRedirectUseCaseParams {
4
+ id: string;
5
+ scheduleFor: Date;
6
+ }
7
+ export interface IScheduleUnpublishRedirectUseCaseResult {
8
+ scheduledAction: IScheduledAction;
9
+ }
10
+ export type IScheduleUnpublishRedirectUseCaseResponse = Promise<Result<IScheduleUnpublishRedirectUseCaseResult, ScheduleActionError>>;
11
+ export interface IScheduleUnpublishRedirectUseCase {
12
+ execute(params: IScheduleUnpublishRedirectUseCaseParams): IScheduleUnpublishRedirectUseCaseResponse;
13
+ }
14
+ /** Schedule a redirect for future unpublishing. */
15
+ export declare const ScheduleUnpublishRedirectUseCase: import("@webiny/di").Abstraction<IScheduleUnpublishRedirectUseCase>;
16
+ export declare namespace ScheduleUnpublishRedirectUseCase {
17
+ type Interface = IScheduleUnpublishRedirectUseCase;
18
+ type Error = ScheduleActionError;
19
+ type Params = IScheduleUnpublishRedirectUseCaseParams;
20
+ type Result = IScheduleUnpublishRedirectUseCaseResponse;
21
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction, Result } from "@webiny/feature/api";
2
+ /** Schedule a redirect for future unpublishing. */
3
+ export const ScheduleUnpublishRedirectUseCase = createAbstraction("WbScheduler/ScheduleUnpublishRedirectUseCase");
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","Result","ScheduleUnpublishRedirectUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, Result } from \"@webiny/feature/api\";\nimport type {\n IScheduledAction,\n ScheduleActionError\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\n\nexport interface IScheduleUnpublishRedirectUseCaseParams {\n id: string;\n scheduleFor: Date;\n}\n\nexport interface IScheduleUnpublishRedirectUseCaseResult {\n scheduledAction: IScheduledAction;\n}\n\nexport type IScheduleUnpublishRedirectUseCaseResponse = Promise<\n Result<IScheduleUnpublishRedirectUseCaseResult, ScheduleActionError>\n>;\n\nexport interface IScheduleUnpublishRedirectUseCase {\n execute(\n params: IScheduleUnpublishRedirectUseCaseParams\n ): IScheduleUnpublishRedirectUseCaseResponse;\n}\n\n/** Schedule a redirect for future unpublishing. */\nexport const ScheduleUnpublishRedirectUseCase =\n createAbstraction<IScheduleUnpublishRedirectUseCase>(\n \"WbScheduler/ScheduleUnpublishRedirectUseCase\"\n );\n\nexport namespace ScheduleUnpublishRedirectUseCase {\n export type Interface = IScheduleUnpublishRedirectUseCase;\n export type Error = ScheduleActionError;\n export type Params = IScheduleUnpublishRedirectUseCaseParams;\n export type Result = IScheduleUnpublishRedirectUseCaseResponse;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,MAAM,QAAQ,qBAAqB;AAyB/D;AACA,OAAO,MAAMC,gCAAgC,GACzCF,iBAAiB,CACb,8CACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import { type IScheduledAction, ScheduledActionHandler } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UnpublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ import type { ScheduledActionType } from "@webiny/api-scheduler/shared/abstractions.js";
5
+ /**
6
+ * Handles the scheduled "unpublish" action for Website Builder pages.
7
+ */
8
+ declare class UnpublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {
9
+ private unpublishPageUseCase;
10
+ constructor(unpublishPageUseCase: UnpublishPageUseCase.Interface);
11
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
12
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
13
+ }
14
+ export declare const UnpublishPageActionHandler: typeof UnpublishPageActionHandlerImpl & {
15
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions.js").IScheduledActionHandler>;
16
+ };
17
+ export {};
@@ -1,27 +1,23 @@
1
- import { ScheduledActionHandler } from "@webiny/api-scheduler";
2
- import { UnpublishPageUseCase } from "@webiny/api-website-builder/features/pages/UnpublishPage/abstractions.js";
1
+ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UnpublishPageUseCase } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
3
5
  /**
4
- * Handler for unpublishing WB pages.
5
- *
6
- * Handles the "Unpublish" action for WB pages with namespace: Wb/Page.
7
- *
8
- * Unpublishing logic:
9
- * 1. Resolve UnpublishPageUseCase from the container.
10
- * 2. Call execute with the target page revision ID.
6
+ * Handles the scheduled "unpublish" action for Website Builder pages.
11
7
  */
12
8
  class UnpublishPageActionHandlerImpl {
13
9
  constructor(unpublishPageUseCase) {
14
10
  this.unpublishPageUseCase = unpublishPageUseCase;
15
11
  }
16
12
  canHandle(namespace, actionType) {
17
- return namespace === "Wb/Page" && actionType === "Unpublish";
13
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE && actionType === ScheduledActionTypeUnpublish;
18
14
  }
19
15
  async handle(action) {
20
16
  const result = await this.unpublishPageUseCase.execute({
21
17
  id: action.targetId
22
18
  });
23
19
  if (result.isFail()) {
24
- console.error(`Failed to unpublish page "${action.targetId}" for scheduled unpublish action:`, result.error);
20
+ console.error(`Failed to unpublish page "${action.targetId}":`, result.error);
25
21
  throw new Error(`Failed to unpublish page: ${action.targetId}`);
26
22
  }
27
23
  }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypeUnpublish","UnpublishPageUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_PAGE","UnpublishPageActionHandlerImpl","constructor","unpublishPageUseCase","canHandle","namespace","actionType","handle","action","result","execute","id","targetId","isFail","console","error","Error","UnpublishPageActionHandler","createImplementation","implementation","dependencies"],"sources":["UnpublishPageActionHandler.ts"],"sourcesContent":["import {\n type IScheduledAction,\n ScheduledActionHandler,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UnpublishPageUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/page.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_PAGE } from \"~/constants.js\";\nimport type { ScheduledActionType } from \"@webiny/api-scheduler/shared/abstractions.js\";\n\n/**\n * Handles the scheduled \"unpublish\" action for Website Builder pages.\n */\nclass UnpublishPageActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private unpublishPageUseCase: UnpublishPageUseCase.Interface) {}\n\n canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_PAGE &&\n actionType === ScheduledActionTypeUnpublish\n );\n }\n\n async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.unpublishPageUseCase.execute({ id: action.targetId });\n if (result.isFail()) {\n console.error(`Failed to unpublish page \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to unpublish page: ${action.targetId}`);\n }\n }\n}\n\nexport const UnpublishPageActionHandler = ScheduledActionHandler.createImplementation({\n implementation: UnpublishPageActionHandlerImpl,\n dependencies: [UnpublishPageUseCase]\n});\n"],"mappings":"AAAA,SAEIA,sBAAsB,EACtBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,oBAAoB,QAAQ,iEAAiE;AAEtG,SAASC,2BAA2B;AACpC,SAASC,0BAA0B;AAGnC;AACA;AACA;AACA,MAAMC,8BAA8B,CAA6C;EAC7EC,WAAWA,CAASC,oBAAoD,EAAE;IAAA,KAAtDA,oBAAoD,GAApDA,oBAAoD;EAAG;EAE3EC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IACnE,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,0BAA0B,IACrEM,UAAU,KAAKT,4BAA4B;EAEnD;EAEA,MAAMU,MAAMA,CAACC,MAAiD,EAAiB;IAC3E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,oBAAoB,CAACO,OAAO,CAAC;MAAEC,EAAE,EAAEH,MAAM,CAACI;IAAS,CAAC,CAAC;IAC/E,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,6BAA6BP,MAAM,CAACI,QAAQ,IAAI,EAAEH,MAAM,CAACM,KAAK,CAAC;MAC7E,MAAM,IAAIC,KAAK,CAAC,6BAA6BR,MAAM,CAACI,QAAQ,EAAE,CAAC;IACnE;EACJ;AACJ;AAEA,OAAO,MAAMK,0BAA0B,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EAClFC,cAAc,EAAElB,8BAA8B;EAC9CmB,YAAY,EAAE,CAACtB,oBAAoB;AACvC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { type IScheduledAction, ScheduledActionHandler } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import type { IScheduledActionPayload } from "../../types.js";
4
+ import type { ScheduledActionType } from "@webiny/api-scheduler/shared/abstractions.js";
5
+ /**
6
+ * Handles the scheduled "unpublish" action for Website Builder redirects.
7
+ * Unpublishing a redirect means disabling it (isEnabled: false).
8
+ */
9
+ declare class UnpublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {
10
+ private updateRedirectUseCase;
11
+ constructor(updateRedirectUseCase: UpdateRedirectUseCase.Interface);
12
+ canHandle(namespace: string, actionType: ScheduledActionType): boolean;
13
+ handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void>;
14
+ }
15
+ export declare const UnpublishRedirectActionHandler: typeof UnpublishRedirectActionHandlerImpl & {
16
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/shared/abstractions.js").IScheduledActionHandler>;
17
+ };
18
+ export {};
@@ -0,0 +1,31 @@
1
+ import { ScheduledActionHandler, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
2
+ import { UpdateRedirectUseCase } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
3
+ import { extractModelIdFromNamespace } from "../../utils/namespace.js";
4
+ import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
5
+ /**
6
+ * Handles the scheduled "unpublish" action for Website Builder redirects.
7
+ * Unpublishing a redirect means disabling it (isEnabled: false).
8
+ */
9
+ class UnpublishRedirectActionHandlerImpl {
10
+ constructor(updateRedirectUseCase) {
11
+ this.updateRedirectUseCase = updateRedirectUseCase;
12
+ }
13
+ canHandle(namespace, actionType) {
14
+ return extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT && actionType === ScheduledActionTypeUnpublish;
15
+ }
16
+ async handle(action) {
17
+ const result = await this.updateRedirectUseCase.execute(action.targetId, {
18
+ isEnabled: false
19
+ });
20
+ if (result.isFail()) {
21
+ console.error(`Failed to disable redirect "${action.targetId}":`, result.error);
22
+ throw new Error(`Failed to disable redirect: ${action.targetId}`);
23
+ }
24
+ }
25
+ }
26
+ export const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({
27
+ implementation: UnpublishRedirectActionHandlerImpl,
28
+ dependencies: [UpdateRedirectUseCase]
29
+ });
30
+
31
+ //# sourceMappingURL=UnpublishRedirectActionHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ScheduledActionHandler","ScheduledActionTypeUnpublish","UpdateRedirectUseCase","extractModelIdFromNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","UnpublishRedirectActionHandlerImpl","constructor","updateRedirectUseCase","canHandle","namespace","actionType","handle","action","result","execute","targetId","isEnabled","isFail","console","error","Error","UnpublishRedirectActionHandler","createImplementation","implementation","dependencies"],"sources":["UnpublishRedirectActionHandler.ts"],"sourcesContent":["import {\n type IScheduledAction,\n ScheduledActionHandler,\n ScheduledActionTypeUnpublish\n} from \"@webiny/api-scheduler/exports/api/scheduler.js\";\nimport { UpdateRedirectUseCase } from \"@webiny/api-website-builder/exports/api/website-builder/redirect.js\";\nimport type { IScheduledActionPayload } from \"~/types.js\";\nimport { extractModelIdFromNamespace } from \"~/utils/namespace.js\";\nimport { SCHEDULED_ACTION_TYPE_REDIRECT } from \"~/constants.js\";\nimport type { ScheduledActionType } from \"@webiny/api-scheduler/shared/abstractions.js\";\n\n/**\n * Handles the scheduled \"unpublish\" action for Website Builder redirects.\n * Unpublishing a redirect means disabling it (isEnabled: false).\n */\nclass UnpublishRedirectActionHandlerImpl implements ScheduledActionHandler.Interface {\n constructor(private updateRedirectUseCase: UpdateRedirectUseCase.Interface) {}\n\n canHandle(namespace: string, actionType: ScheduledActionType): boolean {\n return (\n extractModelIdFromNamespace(namespace) === SCHEDULED_ACTION_TYPE_REDIRECT &&\n actionType === ScheduledActionTypeUnpublish\n );\n }\n\n async handle(action: IScheduledAction<IScheduledActionPayload>): Promise<void> {\n const result = await this.updateRedirectUseCase.execute(action.targetId, {\n isEnabled: false\n });\n if (result.isFail()) {\n console.error(`Failed to disable redirect \"${action.targetId}\":`, result.error);\n throw new Error(`Failed to disable redirect: ${action.targetId}`);\n }\n }\n}\n\nexport const UnpublishRedirectActionHandler = ScheduledActionHandler.createImplementation({\n implementation: UnpublishRedirectActionHandlerImpl,\n dependencies: [UpdateRedirectUseCase]\n});\n"],"mappings":"AAAA,SAEIA,sBAAsB,EACtBC,4BAA4B,QACzB,gDAAgD;AACvD,SAASC,qBAAqB,QAAQ,qEAAqE;AAE3G,SAASC,2BAA2B;AACpC,SAASC,8BAA8B;AAGvC;AACA;AACA;AACA;AACA,MAAMC,kCAAkC,CAA6C;EACjFC,WAAWA,CAASC,qBAAsD,EAAE;IAAA,KAAxDA,qBAAsD,GAAtDA,qBAAsD;EAAG;EAE7EC,SAASA,CAACC,SAAiB,EAAEC,UAA+B,EAAW;IACnE,OACIP,2BAA2B,CAACM,SAAS,CAAC,KAAKL,8BAA8B,IACzEM,UAAU,KAAKT,4BAA4B;EAEnD;EAEA,MAAMU,MAAMA,CAACC,MAAiD,EAAiB;IAC3E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACN,qBAAqB,CAACO,OAAO,CAACF,MAAM,CAACG,QAAQ,EAAE;MACrEC,SAAS,EAAE;IACf,CAAC,CAAC;IACF,IAAIH,MAAM,CAACI,MAAM,CAAC,CAAC,EAAE;MACjBC,OAAO,CAACC,KAAK,CAAC,+BAA+BP,MAAM,CAACG,QAAQ,IAAI,EAAEF,MAAM,CAACM,KAAK,CAAC;MAC/E,MAAM,IAAIC,KAAK,CAAC,+BAA+BR,MAAM,CAACG,QAAQ,EAAE,CAAC;IACrE;EACJ;AACJ;AAEA,OAAO,MAAMM,8BAA8B,GAAGrB,sBAAsB,CAACsB,oBAAoB,CAAC;EACtFC,cAAc,EAAElB,kCAAkC;EAClDmB,YAAY,EAAE,CAACtB,qBAAqB;AACxC,CAAC,CAAC","ignoreList":[]}