@webiny/api-website-builder-scheduler 0.0.0-unstable.7be00a75a9 → 0.0.0-unstable.7c2def32a7
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.
- package/WebsiteBuilderSchedulerFeature.d.ts +5 -0
- package/{context.js → WebsiteBuilderSchedulerFeature.js} +21 -16
- package/WebsiteBuilderSchedulerFeature.js.map +1 -0
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.d.ts +3 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js +8 -2
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map +1 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.d.ts +3 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js +8 -2
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map +1 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.d.ts +3 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js +8 -2
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js.map +1 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.d.ts +3 -1
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js +8 -2
- package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js.map +1 -1
- package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js +1 -0
- package/features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js.map +1 -1
- package/features/SchedulePublishPageUseCase/abstractions.d.ts +1 -0
- package/features/SchedulePublishPageUseCase/abstractions.js.map +1 -1
- package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js +1 -0
- package/features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js.map +1 -1
- package/features/SchedulePublishRedirectUseCase/abstractions.d.ts +1 -0
- package/features/SchedulePublishRedirectUseCase/abstractions.js.map +1 -1
- package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js +1 -0
- package/features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js.map +1 -1
- package/features/ScheduleUnpublishPageUseCase/abstractions.d.ts +1 -0
- package/features/ScheduleUnpublishPageUseCase/abstractions.js.map +1 -1
- package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js +1 -0
- package/features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js.map +1 -1
- package/features/ScheduleUnpublishRedirectUseCase/abstractions.d.ts +1 -0
- package/features/ScheduleUnpublishRedirectUseCase/abstractions.js.map +1 -1
- package/features/permissions/WbSchedulerPermissions.d.ts +13 -0
- package/features/permissions/WbSchedulerPermissions.js +26 -0
- package/features/permissions/WbSchedulerPermissions.js.map +1 -0
- package/index.d.ts +1 -2
- package/index.js +1 -7
- package/package.json +15 -19
- package/context.d.ts +0 -2
- package/context.js.map +0 -1
- package/index.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
2
|
import { CancelScheduledActionOnChangeFeature } from "./features/CancelScheduledActionOnChange/feature.js";
|
|
3
|
+
import { WbSchedulerPermissions } from "./features/permissions/WbSchedulerPermissions.js";
|
|
3
4
|
import { PageNamespaceHandler } from "./features/NamespaceHandler/PageNamespaceHandler.js";
|
|
4
5
|
import { RedirectNamespaceHandler } from "./features/NamespaceHandler/RedirectNamespaceHandler.js";
|
|
5
6
|
import { PublishPageActionHandler } from "./features/PublishActionHandler/PublishPageActionHandler.js";
|
|
@@ -10,19 +11,23 @@ import { SchedulePublishPageUseCase } from "./features/SchedulePublishPageUseCas
|
|
|
10
11
|
import { ScheduleUnpublishPageUseCase } from "./features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js";
|
|
11
12
|
import { SchedulePublishRedirectUseCase } from "./features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js";
|
|
12
13
|
import { ScheduleUnpublishRedirectUseCase } from "./features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js";
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
const WebsiteBuilderSchedulerFeature = createFeature({
|
|
15
|
+
name: "WebsiteBuilderScheduler",
|
|
16
|
+
register (container) {
|
|
17
|
+
container.register(PageNamespaceHandler);
|
|
18
|
+
container.register(RedirectNamespaceHandler);
|
|
19
|
+
container.register(PublishPageActionHandler);
|
|
20
|
+
container.register(PublishRedirectActionHandler);
|
|
21
|
+
container.register(UnpublishPageActionHandler);
|
|
22
|
+
container.register(UnpublishRedirectActionHandler);
|
|
23
|
+
container.register(SchedulePublishPageUseCase);
|
|
24
|
+
container.register(ScheduleUnpublishPageUseCase);
|
|
25
|
+
container.register(SchedulePublishRedirectUseCase);
|
|
26
|
+
container.register(ScheduleUnpublishRedirectUseCase);
|
|
27
|
+
CancelScheduledActionOnChangeFeature.register(container);
|
|
28
|
+
container.register(WbSchedulerPermissions);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
export { WebsiteBuilderSchedulerFeature };
|
|
27
32
|
|
|
28
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=WebsiteBuilderSchedulerFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebsiteBuilderSchedulerFeature.js","sources":["../src/WebsiteBuilderSchedulerFeature.ts"],"sourcesContent":["import { type Container, createFeature } from \"@webiny/feature/api\";\nimport { CancelScheduledActionOnChangeFeature } from \"~/features/CancelScheduledActionOnChange/feature.js\";\nimport { WbSchedulerPermissions } from \"~/features/permissions/WbSchedulerPermissions.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 WebsiteBuilderSchedulerFeature = createFeature({\n name: \"WebsiteBuilderScheduler\",\n register(container: Container) {\n // Pure DI registration (was a request-time ContextPlugin — none of it needs ctx/post-auth).\n container.register(PageNamespaceHandler);\n container.register(RedirectNamespaceHandler);\n container.register(PublishPageActionHandler);\n container.register(PublishRedirectActionHandler);\n container.register(UnpublishPageActionHandler);\n container.register(UnpublishRedirectActionHandler);\n container.register(SchedulePublishPageUseCase);\n container.register(ScheduleUnpublishPageUseCase);\n container.register(SchedulePublishRedirectUseCase);\n container.register(ScheduleUnpublishRedirectUseCase);\n\n CancelScheduledActionOnChangeFeature.register(container);\n container.register(WbSchedulerPermissions);\n }\n});\n"],"names":["WebsiteBuilderSchedulerFeature","createFeature","container","PageNamespaceHandler","RedirectNamespaceHandler","PublishPageActionHandler","PublishRedirectActionHandler","UnpublishPageActionHandler","UnpublishRedirectActionHandler","SchedulePublishPageUseCase","ScheduleUnpublishPageUseCase","SchedulePublishRedirectUseCase","ScheduleUnpublishRedirectUseCase","CancelScheduledActionOnChangeFeature","WbSchedulerPermissions"],"mappings":";;;;;;;;;;;;;AAcO,MAAMA,iCAAiCC,cAAc;IACxD,MAAM;IACN,UAASC,SAAoB;QAEzBA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;QACnBH,UAAU,QAAQ,CAACI;QACnBJ,UAAU,QAAQ,CAACK;QACnBL,UAAU,QAAQ,CAACM;QACnBN,UAAU,QAAQ,CAACO;QACnBP,UAAU,QAAQ,CAACQ;QACnBR,UAAU,QAAQ,CAACS;QACnBT,UAAU,QAAQ,CAACU;QAEnBC,qCAAqC,QAAQ,CAACX;QAC9CA,UAAU,QAAQ,CAACY;IACvB;AACJ"}
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PageAfterDeleteEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Cancels scheduled actions when a page is deleted.
|
|
5
6
|
*
|
|
@@ -9,7 +10,8 @@ import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webi
|
|
|
9
10
|
declare class CancelScheduledActionOnPageDeleteHandlerImpl implements PageAfterDeleteEventHandler.Interface {
|
|
10
11
|
private listScheduledActions;
|
|
11
12
|
private cancelScheduledAction;
|
|
12
|
-
|
|
13
|
+
private logger;
|
|
14
|
+
constructor(listScheduledActions: ListScheduledActionsUseCase.Interface, cancelScheduledAction: CancelScheduledActionUseCase.Interface, logger: Logger.Interface);
|
|
13
15
|
handle(event: PageAfterDeleteEventHandler.Event): Promise<void>;
|
|
14
16
|
}
|
|
15
17
|
export declare const CancelScheduledActionOnPageDeleteEventHandler: typeof CancelScheduledActionOnPageDeleteHandlerImpl & {
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { PageAfterDeleteEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
import { createNamespace } from "../../utils/namespace.js";
|
|
4
5
|
import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
|
|
5
6
|
class CancelScheduledActionOnPageDeleteHandlerImpl {
|
|
6
|
-
constructor(listScheduledActions, cancelScheduledAction){
|
|
7
|
+
constructor(listScheduledActions, cancelScheduledAction, logger){
|
|
7
8
|
this.listScheduledActions = listScheduledActions;
|
|
8
9
|
this.cancelScheduledAction = cancelScheduledAction;
|
|
10
|
+
this.logger = logger;
|
|
9
11
|
}
|
|
10
12
|
async handle(event) {
|
|
11
13
|
const { page } = event.payload;
|
|
@@ -16,6 +18,9 @@ class CancelScheduledActionOnPageDeleteHandlerImpl {
|
|
|
16
18
|
targetId: page.id
|
|
17
19
|
}
|
|
18
20
|
});
|
|
21
|
+
if (actionsResult.isFail()) return void this.logger.error({
|
|
22
|
+
error: actionsResult.error
|
|
23
|
+
}, "Could not list scheduled actions to cancel.");
|
|
19
24
|
const actions = actionsResult.value.items;
|
|
20
25
|
for (const action of actions){
|
|
21
26
|
const cancelRes = await this.cancelScheduledAction.execute(action);
|
|
@@ -27,7 +32,8 @@ const CancelScheduledActionOnPageDeleteEventHandler = PageAfterDeleteEventHandle
|
|
|
27
32
|
implementation: CancelScheduledActionOnPageDeleteHandlerImpl,
|
|
28
33
|
dependencies: [
|
|
29
34
|
ListScheduledActionsUseCase,
|
|
30
|
-
CancelScheduledActionUseCase
|
|
35
|
+
CancelScheduledActionUseCase,
|
|
36
|
+
Logger
|
|
31
37
|
]
|
|
32
38
|
});
|
|
33
39
|
export { CancelScheduledActionOnPageDeleteEventHandler };
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageDeleteEventHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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 { Logger } from \"@webiny/api-core/features/logger/index.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 private logger: Logger.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 if (actionsResult.isFail()) {\n this.logger.error(\n { error: actionsResult.error },\n \"Could not list scheduled actions to cancel.\"\n );\n return;\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, Logger]\n });\n"],"names":["CancelScheduledActionOnPageDeleteHandlerImpl","listScheduledActions","cancelScheduledAction","logger","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","actions","action","cancelRes","CancelScheduledActionOnPageDeleteEventHandler","PageAfterDeleteEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase","Logger"],"mappings":";;;;;AAeA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,EAC7DC,MAAwB,CAClC;aAHUF,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;aACAC,MAAM,GAANA;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,IAAIC,cAAc,MAAM,IAAI,YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;YAAE,OAAOA,cAAc,KAAK;QAAC,GAC7B;QAKR,MAAMG,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,gBAAgBb;IAChB,cAAc;QAACc;QAA6BC;QAA8BC;KAAO;AACrF"}
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PageAfterPublishEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Cancels scheduled "publish" when a page is manually published.
|
|
5
6
|
*
|
|
@@ -10,7 +11,8 @@ import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webi
|
|
|
10
11
|
declare class CancelScheduledActionOnPublishEventHandlerImpl implements PageAfterPublishEventHandler.Interface {
|
|
11
12
|
private listScheduledActions;
|
|
12
13
|
private cancelScheduledAction;
|
|
13
|
-
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(listScheduledActions: ListScheduledActionsUseCase.Interface, cancelScheduledAction: CancelScheduledActionUseCase.Interface, logger: Logger.Interface);
|
|
14
16
|
handle(event: PageAfterPublishEventHandler.Event): Promise<void>;
|
|
15
17
|
}
|
|
16
18
|
export declare const CancelScheduledActionOnPagePublishEventHandler: typeof CancelScheduledActionOnPublishEventHandlerImpl & {
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { PageAfterPublishEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase, ScheduledActionTypePublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
import { createNamespace } from "../../utils/namespace.js";
|
|
4
5
|
import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
|
|
5
6
|
class CancelScheduledActionOnPublishEventHandlerImpl {
|
|
6
|
-
constructor(listScheduledActions, cancelScheduledAction){
|
|
7
|
+
constructor(listScheduledActions, cancelScheduledAction, logger){
|
|
7
8
|
this.listScheduledActions = listScheduledActions;
|
|
8
9
|
this.cancelScheduledAction = cancelScheduledAction;
|
|
10
|
+
this.logger = logger;
|
|
9
11
|
}
|
|
10
12
|
async handle(event) {
|
|
11
13
|
const { page } = event.payload;
|
|
@@ -16,6 +18,9 @@ class CancelScheduledActionOnPublishEventHandlerImpl {
|
|
|
16
18
|
targetId: page.id
|
|
17
19
|
}
|
|
18
20
|
});
|
|
21
|
+
if (actionsResult.isFail()) return void this.logger.error({
|
|
22
|
+
error: actionsResult.error
|
|
23
|
+
}, "Could not list scheduled actions to cancel.");
|
|
19
24
|
const actions = actionsResult.value.items;
|
|
20
25
|
for (const action of actions){
|
|
21
26
|
const cancelRes = await this.cancelScheduledAction.execute(action);
|
|
@@ -27,7 +32,8 @@ const CancelScheduledActionOnPagePublishEventHandler = PageAfterPublishEventHand
|
|
|
27
32
|
implementation: CancelScheduledActionOnPublishEventHandlerImpl,
|
|
28
33
|
dependencies: [
|
|
29
34
|
ListScheduledActionsUseCase,
|
|
30
|
-
CancelScheduledActionUseCase
|
|
35
|
+
CancelScheduledActionUseCase,
|
|
36
|
+
Logger
|
|
31
37
|
]
|
|
32
38
|
});
|
|
33
39
|
export { CancelScheduledActionOnPagePublishEventHandler };
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPagePublishEventHandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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 { Logger } from \"@webiny/api-core/features/logger/index.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 private logger: Logger.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 if (actionsResult.isFail()) {\n this.logger.error(\n { error: actionsResult.error },\n \"Could not list scheduled actions to cancel.\"\n );\n return;\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, Logger]\n });\n"],"names":["CancelScheduledActionOnPublishEventHandlerImpl","listScheduledActions","cancelScheduledAction","logger","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypePublish","actions","action","cancelRes","CancelScheduledActionOnPagePublishEventHandler","PageAfterPublishEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase","Logger"],"mappings":";;;;;AAiBA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,EAC7DC,MAAwB,CAClC;aAHUF,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;aACAC,MAAM,GAANA;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,IAAIC,cAAc,MAAM,IAAI,YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;YAAE,OAAOA,cAAc,KAAK;QAAC,GAC7B;QAKR,MAAMI,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,gBAAgBd;IAChB,cAAc;QAACe;QAA6BC;QAA8BC;KAAO;AACrF"}
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PageAfterUnpublishEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Cancels scheduled "unpublish" when a page is manually unpublished.
|
|
5
6
|
*
|
|
@@ -10,7 +11,8 @@ import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webi
|
|
|
10
11
|
declare class CancelScheduledActionOnUnpublishHandlerImpl implements PageAfterUnpublishEventHandler.Interface {
|
|
11
12
|
private listScheduledActions;
|
|
12
13
|
private cancelScheduledAction;
|
|
13
|
-
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(listScheduledActions: ListScheduledActionsUseCase.Interface, cancelScheduledAction: CancelScheduledActionUseCase.Interface, logger: Logger.Interface);
|
|
14
16
|
handle(event: PageAfterUnpublishEventHandler.Event): Promise<void>;
|
|
15
17
|
}
|
|
16
18
|
export declare const CancelScheduledActionOnPageUnpublishEventHandler: typeof CancelScheduledActionOnUnpublishHandlerImpl & {
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnPageUnpublishEventHandler.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { PageAfterUnpublishEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/page.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase, ScheduledActionTypeUnpublish } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
import { createNamespace } from "../../utils/namespace.js";
|
|
4
5
|
import { SCHEDULED_ACTION_TYPE_PAGE } from "../../constants.js";
|
|
5
6
|
class CancelScheduledActionOnUnpublishHandlerImpl {
|
|
6
|
-
constructor(listScheduledActions, cancelScheduledAction){
|
|
7
|
+
constructor(listScheduledActions, cancelScheduledAction, logger){
|
|
7
8
|
this.listScheduledActions = listScheduledActions;
|
|
8
9
|
this.cancelScheduledAction = cancelScheduledAction;
|
|
10
|
+
this.logger = logger;
|
|
9
11
|
}
|
|
10
12
|
async handle(event) {
|
|
11
13
|
const { page } = event.payload;
|
|
@@ -16,6 +18,9 @@ class CancelScheduledActionOnUnpublishHandlerImpl {
|
|
|
16
18
|
targetId: page.id
|
|
17
19
|
}
|
|
18
20
|
});
|
|
21
|
+
if (actionsResult.isFail()) return void this.logger.error({
|
|
22
|
+
error: actionsResult.error
|
|
23
|
+
}, "Could not list scheduled actions to cancel.");
|
|
19
24
|
const actions = actionsResult.value.items;
|
|
20
25
|
for (const action of actions){
|
|
21
26
|
const cancelRes = await this.cancelScheduledAction.execute(action);
|
|
@@ -27,7 +32,8 @@ const CancelScheduledActionOnPageUnpublishEventHandler = PageAfterUnpublishEvent
|
|
|
27
32
|
implementation: CancelScheduledActionOnUnpublishHandlerImpl,
|
|
28
33
|
dependencies: [
|
|
29
34
|
ListScheduledActionsUseCase,
|
|
30
|
-
CancelScheduledActionUseCase
|
|
35
|
+
CancelScheduledActionUseCase,
|
|
36
|
+
Logger
|
|
31
37
|
]
|
|
32
38
|
});
|
|
33
39
|
export { CancelScheduledActionOnPageUnpublishEventHandler };
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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 { Logger } from \"@webiny/api-core/features/logger/index.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 private logger: Logger.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 if (actionsResult.isFail()) {\n this.logger.error(\n { error: actionsResult.error },\n \"Could not list scheduled actions to cancel.\"\n );\n return;\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, Logger]\n });\n"],"names":["CancelScheduledActionOnUnpublishHandlerImpl","listScheduledActions","cancelScheduledAction","logger","event","page","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","actions","action","cancelRes","CancelScheduledActionOnPageUnpublishEventHandler","PageAfterUnpublishEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase","Logger"],"mappings":";;;;;AAiBA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,EAC7DC,MAAwB,CAClC;aAHUF,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;aACAC,MAAM,GAANA;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,IAAIC,cAAc,MAAM,IAAI,YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;YAAE,OAAOA,cAAc,KAAK;QAAC,GAC7B;QAKR,MAAMI,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,gBAAgBd;IAChB,cAAc;QAACe;QAA6BC;QAA8BC;KAAO;AACrF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RedirectAfterDeleteEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Cancels scheduled actions when a redirect is deleted.
|
|
5
6
|
*
|
|
@@ -10,7 +11,8 @@ import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webi
|
|
|
10
11
|
declare class CancelScheduledActionOnRedirectDeleteHandlerImpl implements RedirectAfterDeleteEventHandler.Interface {
|
|
11
12
|
private listScheduledActions;
|
|
12
13
|
private cancelScheduledAction;
|
|
13
|
-
|
|
14
|
+
private logger;
|
|
15
|
+
constructor(listScheduledActions: ListScheduledActionsUseCase.Interface, cancelScheduledAction: CancelScheduledActionUseCase.Interface, logger: Logger.Interface);
|
|
14
16
|
handle(event: RedirectAfterDeleteEventHandler.Event): Promise<void>;
|
|
15
17
|
}
|
|
16
18
|
export declare const CancelScheduledActionOnRedirectDeleteEventHandler: typeof CancelScheduledActionOnRedirectDeleteHandlerImpl & {
|
package/features/CancelScheduledActionOnChange/CancelScheduledActionOnRedirectDeleteEventHandler.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { RedirectAfterDeleteEventHandler } from "@webiny/api-website-builder/exports/api/website-builder/redirect.js";
|
|
2
2
|
import { CancelScheduledActionUseCase, ListScheduledActionsUseCase } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
|
+
import { Logger } from "@webiny/api-core/features/logger/index.js";
|
|
3
4
|
import { createNamespace } from "../../utils/namespace.js";
|
|
4
5
|
import { SCHEDULED_ACTION_TYPE_REDIRECT } from "../../constants.js";
|
|
5
6
|
class CancelScheduledActionOnRedirectDeleteHandlerImpl {
|
|
6
|
-
constructor(listScheduledActions, cancelScheduledAction){
|
|
7
|
+
constructor(listScheduledActions, cancelScheduledAction, logger){
|
|
7
8
|
this.listScheduledActions = listScheduledActions;
|
|
8
9
|
this.cancelScheduledAction = cancelScheduledAction;
|
|
10
|
+
this.logger = logger;
|
|
9
11
|
}
|
|
10
12
|
async handle(event) {
|
|
11
13
|
const { redirect } = event.payload;
|
|
@@ -15,6 +17,9 @@ class CancelScheduledActionOnRedirectDeleteHandlerImpl {
|
|
|
15
17
|
targetId: redirect.id
|
|
16
18
|
}
|
|
17
19
|
});
|
|
20
|
+
if (actionsResult.isFail()) return void this.logger.error({
|
|
21
|
+
error: actionsResult.error
|
|
22
|
+
}, "Could not list scheduled actions to cancel.");
|
|
18
23
|
const actions = actionsResult.value.items;
|
|
19
24
|
for (const action of actions){
|
|
20
25
|
const cancelRes = await this.cancelScheduledAction.execute(action);
|
|
@@ -26,7 +31,8 @@ const CancelScheduledActionOnRedirectDeleteEventHandler = RedirectAfterDeleteEve
|
|
|
26
31
|
implementation: CancelScheduledActionOnRedirectDeleteHandlerImpl,
|
|
27
32
|
dependencies: [
|
|
28
33
|
ListScheduledActionsUseCase,
|
|
29
|
-
CancelScheduledActionUseCase
|
|
34
|
+
CancelScheduledActionUseCase,
|
|
35
|
+
Logger
|
|
30
36
|
]
|
|
31
37
|
});
|
|
32
38
|
export { CancelScheduledActionOnRedirectDeleteEventHandler };
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
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 { Logger } from \"@webiny/api-core/features/logger/index.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 private logger: Logger.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 if (actionsResult.isFail()) {\n this.logger.error(\n { error: actionsResult.error },\n \"Could not list scheduled actions to cancel.\"\n );\n return;\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, Logger]\n });\n"],"names":["CancelScheduledActionOnRedirectDeleteHandlerImpl","listScheduledActions","cancelScheduledAction","logger","event","redirect","actionsResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","actions","action","cancelRes","CancelScheduledActionOnRedirectDeleteEventHandler","RedirectAfterDeleteEventHandler","ListScheduledActionsUseCase","CancelScheduledActionUseCase","Logger"],"mappings":";;;;;AAgBA,MAAMA;IAGF,YACYC,oBAA2D,EAC3DC,qBAA6D,EAC7DC,MAAwB,CAClC;aAHUF,oBAAoB,GAApBA;aACAC,qBAAqB,GAArBA;aACAC,MAAM,GAANA;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,IAAIC,cAAc,MAAM,IAAI,YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb;YAAE,OAAOA,cAAc,KAAK;QAAC,GAC7B;QAKR,MAAMG,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,gBAAgBb;IAChB,cAAc;QAACc;QAA6BC;QAA8BC;KAAO;AACrF"}
|
|
@@ -12,6 +12,7 @@ class SchedulePublishPageUseCaseImpl {
|
|
|
12
12
|
namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
|
|
13
13
|
actionType: ScheduledActionTypePublish,
|
|
14
14
|
scheduleFor: params.scheduleFor,
|
|
15
|
+
tenant: params.tenant,
|
|
15
16
|
targetId: params.id
|
|
16
17
|
});
|
|
17
18
|
if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js","sources":["../../../src/features/SchedulePublishPageUseCase/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"],"names":["SchedulePublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypePublish","Result","SchedulePublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,wDAA6BC,2BAAAA,oBAAuC,CAAC;IAC9E,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
1
|
+
{"version":3,"file":"features/SchedulePublishPageUseCase/SchedulePublishPageUseCase.js","sources":["../../../src/features/SchedulePublishPageUseCase/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 tenant: params.tenant,\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"],"names":["SchedulePublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypePublish","Result","SchedulePublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,QAAQA,OAAO,MAAM;YACrB,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,wDAA6BC,2BAAAA,oBAAuC,CAAC;IAC9E,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
@@ -2,6 +2,7 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
3
|
export interface ISchedulePublishPageUseCaseParams {
|
|
4
4
|
id: string;
|
|
5
|
+
tenant: string;
|
|
5
6
|
scheduleFor: Date;
|
|
6
7
|
}
|
|
7
8
|
export interface ISchedulePublishPageUseCaseResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/SchedulePublishPageUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishPageUseCase/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"],"names":["SchedulePublishPageUseCase","createAbstraction"],"mappings":";
|
|
1
|
+
{"version":3,"file":"features/SchedulePublishPageUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishPageUseCase/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 tenant: 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"],"names":["SchedulePublishPageUseCase","createAbstraction"],"mappings":";AAyBO,MAAMA,6BAA6BC,kBACtC"}
|
|
@@ -12,6 +12,7 @@ class SchedulePublishRedirectUseCaseImpl {
|
|
|
12
12
|
namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
|
|
13
13
|
actionType: ScheduledActionTypePublish,
|
|
14
14
|
scheduleFor: params.scheduleFor,
|
|
15
|
+
tenant: params.tenant,
|
|
15
16
|
targetId: params.id
|
|
16
17
|
});
|
|
17
18
|
if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/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"],"names":["SchedulePublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypePublish","Result","SchedulePublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,gEAAiCC,+BAAAA,oBAAuC,CAAC;IAClF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
1
|
+
{"version":3,"file":"features/SchedulePublishRedirectUseCase/SchedulePublishRedirectUseCase.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/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 tenant: params.tenant,\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"],"names":["SchedulePublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypePublish","Result","SchedulePublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,QAAQA,OAAO,MAAM;YACrB,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,gEAAiCC,+BAAAA,oBAAuC,CAAC;IAClF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
@@ -2,6 +2,7 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
3
|
export interface ISchedulePublishRedirectUseCaseParams {
|
|
4
4
|
id: string;
|
|
5
|
+
tenant: string;
|
|
5
6
|
scheduleFor: Date;
|
|
6
7
|
}
|
|
7
8
|
export interface ISchedulePublishRedirectUseCaseResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/SchedulePublishRedirectUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/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"],"names":["SchedulePublishRedirectUseCase","createAbstraction"],"mappings":";
|
|
1
|
+
{"version":3,"file":"features/SchedulePublishRedirectUseCase/abstractions.js","sources":["../../../src/features/SchedulePublishRedirectUseCase/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 tenant: 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"],"names":["SchedulePublishRedirectUseCase","createAbstraction"],"mappings":";AAyBO,MAAMA,iCAAiCC,kBAC1C"}
|
|
@@ -12,6 +12,7 @@ class ScheduleUnpublishPageUseCaseImpl {
|
|
|
12
12
|
namespace: createNamespace(SCHEDULED_ACTION_TYPE_PAGE),
|
|
13
13
|
actionType: ScheduledActionTypeUnpublish,
|
|
14
14
|
scheduleFor: params.scheduleFor,
|
|
15
|
+
tenant: params.tenant,
|
|
15
16
|
targetId: params.id
|
|
16
17
|
});
|
|
17
18
|
if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/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"],"names":["ScheduleUnpublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
1
|
+
{"version":3,"file":"features/ScheduleUnpublishPageUseCase/ScheduleUnpublishPageUseCase.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/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 tenant: params.tenant,\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"],"names":["ScheduleUnpublishPageUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_PAGE","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishPageUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,QAAQA,OAAO,MAAM;YACrB,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
@@ -2,6 +2,7 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
3
|
export interface IScheduleUnpublishPageUseCaseParams {
|
|
4
4
|
id: string;
|
|
5
|
+
tenant: string;
|
|
5
6
|
scheduleFor: Date;
|
|
6
7
|
}
|
|
7
8
|
export interface IScheduleUnpublishPageUseCaseResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/ScheduleUnpublishPageUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/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"],"names":["ScheduleUnpublishPageUseCase","createAbstraction"],"mappings":";
|
|
1
|
+
{"version":3,"file":"features/ScheduleUnpublishPageUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishPageUseCase/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 tenant: 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"],"names":["ScheduleUnpublishPageUseCase","createAbstraction"],"mappings":";AAyBO,MAAMA,+BAA+BC,kBACxC"}
|
|
@@ -12,6 +12,7 @@ class ScheduleUnpublishRedirectUseCaseImpl {
|
|
|
12
12
|
namespace: createNamespace(SCHEDULED_ACTION_TYPE_REDIRECT),
|
|
13
13
|
actionType: ScheduledActionTypeUnpublish,
|
|
14
14
|
scheduleFor: params.scheduleFor,
|
|
15
|
+
tenant: params.tenant,
|
|
15
16
|
targetId: params.id
|
|
16
17
|
});
|
|
17
18
|
if (scheduleResult.isFail()) return Result.fail(scheduleResult.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/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"],"names":["ScheduleUnpublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,oEAAmCC,iCAAAA,oBAAuC,CAAC;IACpF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
1
|
+
{"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/ScheduleUnpublishRedirectUseCase.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/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 tenant: params.tenant,\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"],"names":["ScheduleUnpublishRedirectUseCaseImpl","scheduleAction","params","scheduleResult","createNamespace","SCHEDULED_ACTION_TYPE_REDIRECT","ScheduledActionTypeUnpublish","Result","ScheduleUnpublishRedirectUseCase","UseCaseAbstraction","ScheduleActionUseCase"],"mappings":";;;;;AASA,MAAMA;IACF,YAA2BC,cAA+C,CAAE;aAAjDA,cAAc,GAAdA;IAAkD;IAE7E,MAAa,QAAQC,MAAiC,EAA6B;QAC/E,MAAMC,iBAAiB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrD,WAAWC,gBAAgBC;YAC3B,YAAYC;YACZ,aAAaJ,OAAO,WAAW;YAC/B,QAAQA,OAAO,MAAM;YACrB,UAAUA,OAAO,EAAE;QACvB;QACA,IAAIC,eAAe,MAAM,IACrB,OAAOI,OAAO,IAAI,CAACJ,eAAe,KAAK;QAE3C,OAAOI,OAAO,EAAE,CAAC;YAAE,iBAAiBJ,eAAe,KAAK;QAAC;IAC7D;AACJ;AAEO,MAAMK,oEAAmCC,iCAAAA,oBAAuC,CAAC;IACpF,gBAAgBT;IAChB,cAAc;QAACU;KAAsB;AACzC"}
|
|
@@ -2,6 +2,7 @@ import { Result } from "@webiny/feature/api";
|
|
|
2
2
|
import type { IScheduledAction, ScheduleActionError } from "@webiny/api-scheduler/exports/api/scheduler.js";
|
|
3
3
|
export interface IScheduleUnpublishRedirectUseCaseParams {
|
|
4
4
|
id: string;
|
|
5
|
+
tenant: string;
|
|
5
6
|
scheduleFor: Date;
|
|
6
7
|
}
|
|
7
8
|
export interface IScheduleUnpublishRedirectUseCaseResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/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"],"names":["ScheduleUnpublishRedirectUseCase","createAbstraction"],"mappings":";
|
|
1
|
+
{"version":3,"file":"features/ScheduleUnpublishRedirectUseCase/abstractions.js","sources":["../../../src/features/ScheduleUnpublishRedirectUseCase/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 tenant: 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"],"names":["ScheduleUnpublishRedirectUseCase","createAbstraction"],"mappings":";AA2BO,MAAMA,mCACTC,kBACI"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SchedulerPermissions } from "@webiny/api-scheduler/features/permissions/abstractions.js";
|
|
2
|
+
import { WbPermissions } from "@webiny/api-website-builder/features/permissions/abstractions.js";
|
|
3
|
+
declare class WbSchedulerPermissionsImpl implements SchedulerPermissions.Interface {
|
|
4
|
+
private permissions;
|
|
5
|
+
constructor(permissions: WbPermissions.Interface);
|
|
6
|
+
canHandle(namespace: string): boolean;
|
|
7
|
+
canRead(): Promise<boolean>;
|
|
8
|
+
onlyOwnRecords(): Promise<boolean>;
|
|
9
|
+
}
|
|
10
|
+
export declare const WbSchedulerPermissions: typeof WbSchedulerPermissionsImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-scheduler/features/permissions/abstractions.js").ISchedulerPermissions>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SchedulerPermissions } from "@webiny/api-scheduler/features/permissions/abstractions.js";
|
|
2
|
+
import { WbPermissions } from "@webiny/api-website-builder/features/permissions/abstractions.js";
|
|
3
|
+
import { WEBSITE_BUILDER_NAMESPACE } from "../../constants.js";
|
|
4
|
+
class WbSchedulerPermissionsImpl {
|
|
5
|
+
constructor(permissions){
|
|
6
|
+
this.permissions = permissions;
|
|
7
|
+
}
|
|
8
|
+
canHandle(namespace) {
|
|
9
|
+
return namespace.startsWith(WEBSITE_BUILDER_NAMESPACE);
|
|
10
|
+
}
|
|
11
|
+
async canRead() {
|
|
12
|
+
return this.permissions.canPublish("page");
|
|
13
|
+
}
|
|
14
|
+
async onlyOwnRecords() {
|
|
15
|
+
return this.permissions.onlyOwnRecords("page");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const WbSchedulerPermissions = SchedulerPermissions.createImplementation({
|
|
19
|
+
implementation: WbSchedulerPermissionsImpl,
|
|
20
|
+
dependencies: [
|
|
21
|
+
WbPermissions
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
export { WbSchedulerPermissions };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=WbSchedulerPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/permissions/WbSchedulerPermissions.js","sources":["../../../src/features/permissions/WbSchedulerPermissions.ts"],"sourcesContent":["import { SchedulerPermissions } from \"@webiny/api-scheduler/features/permissions/abstractions.js\";\nimport { WbPermissions } from \"@webiny/api-website-builder/features/permissions/abstractions.js\";\nimport { WEBSITE_BUILDER_NAMESPACE } from \"~/constants.js\";\n\nclass WbSchedulerPermissionsImpl implements SchedulerPermissions.Interface {\n constructor(private permissions: WbPermissions.Interface) {}\n\n canHandle(namespace: string): boolean {\n return namespace.startsWith(WEBSITE_BUILDER_NAMESPACE);\n }\n\n async canRead(): Promise<boolean> {\n return this.permissions.canPublish(\"page\");\n }\n\n async onlyOwnRecords(): Promise<boolean> {\n return this.permissions.onlyOwnRecords(\"page\");\n }\n}\n\nexport const WbSchedulerPermissions = SchedulerPermissions.createImplementation({\n implementation: WbSchedulerPermissionsImpl,\n dependencies: [WbPermissions]\n});\n"],"names":["WbSchedulerPermissionsImpl","permissions","namespace","WEBSITE_BUILDER_NAMESPACE","WbSchedulerPermissions","SchedulerPermissions","WbPermissions"],"mappings":";;;AAIA,MAAMA;IACF,YAAoBC,WAAoC,CAAE;aAAtCA,WAAW,GAAXA;IAAuC;IAE3D,UAAUC,SAAiB,EAAW;QAClC,OAAOA,UAAU,UAAU,CAACC;IAChC;IAEA,MAAM,UAA4B;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IACvC;IAEA,MAAM,iBAAmC;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;IAC3C;AACJ;AAEO,MAAMC,yBAAyBC,qBAAqB,oBAAoB,CAAC;IAC5E,gBAAgBL;IAChB,cAAc;QAACM;KAAc;AACjC"}
|
package/index.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const createWebsiteBuilderScheduler: () => ContextPlugin[];
|
|
1
|
+
export { WebsiteBuilderSchedulerFeature } from "./WebsiteBuilderSchedulerFeature.js";
|
package/index.js
CHANGED
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
const createWebsiteBuilderScheduler = ()=>[
|
|
3
|
-
createWebsiteBuilderScheduleContext()
|
|
4
|
-
];
|
|
5
|
-
export { createWebsiteBuilderScheduler };
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { WebsiteBuilderSchedulerFeature } from "./WebsiteBuilderSchedulerFeature.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-website-builder-scheduler",
|
|
3
|
-
"version": "0.0.0-unstable.
|
|
3
|
+
"version": "0.0.0-unstable.7c2def32a7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -17,26 +17,22 @@
|
|
|
17
17
|
},
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@webiny/api": "0.0.0-unstable.
|
|
21
|
-
"@webiny/api-scheduler": "0.0.0-unstable.
|
|
22
|
-
"@webiny/api-website-builder": "0.0.0-unstable.
|
|
23
|
-
"@webiny/feature": "0.0.0-unstable.
|
|
24
|
-
"@webiny/handler-graphql": "0.0.0-unstable.7be00a75a9"
|
|
20
|
+
"@webiny/api": "0.0.0-unstable.7c2def32a7",
|
|
21
|
+
"@webiny/api-scheduler": "0.0.0-unstable.7c2def32a7",
|
|
22
|
+
"@webiny/api-website-builder": "0.0.0-unstable.7c2def32a7",
|
|
23
|
+
"@webiny/feature": "0.0.0-unstable.7c2def32a7"
|
|
25
24
|
},
|
|
26
25
|
"devDependencies": {
|
|
27
|
-
"@webiny/api-core": "0.0.0-unstable.
|
|
28
|
-
"@webiny/api-headless-cms": "0.0.0-unstable.
|
|
29
|
-
"@webiny/
|
|
30
|
-
"@webiny/
|
|
31
|
-
"@webiny/
|
|
32
|
-
"@webiny/
|
|
33
|
-
"@webiny/
|
|
34
|
-
"@webiny/
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"aws-sdk-client-mock": "4.1.0",
|
|
38
|
-
"typescript": "6.0.3",
|
|
39
|
-
"vitest": "4.1.7"
|
|
26
|
+
"@webiny/api-core": "0.0.0-unstable.7c2def32a7",
|
|
27
|
+
"@webiny/api-headless-cms": "0.0.0-unstable.7c2def32a7",
|
|
28
|
+
"@webiny/api-headless-cms-testing": "0.0.0-unstable.7c2def32a7",
|
|
29
|
+
"@webiny/api-opensearch": "0.0.0-unstable.7c2def32a7",
|
|
30
|
+
"@webiny/background-tasks": "0.0.0-unstable.7c2def32a7",
|
|
31
|
+
"@webiny/build-tools": "0.0.0-unstable.7c2def32a7",
|
|
32
|
+
"@webiny/di": "2.0.0",
|
|
33
|
+
"@webiny/wcp": "0.0.0-unstable.7c2def32a7",
|
|
34
|
+
"typescript": "7.0.2",
|
|
35
|
+
"vitest": "4.1.11"
|
|
40
36
|
},
|
|
41
37
|
"publishConfig": {
|
|
42
38
|
"access": "public"
|
package/context.d.ts
DELETED
package/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { createWebsiteBuilderScheduleContext } from \"~/context.js\";\nimport { ContextPlugin } from \"@webiny/api\";\n\nexport const createWebsiteBuilderScheduler = (): ContextPlugin[] => {\n return [createWebsiteBuilderScheduleContext()];\n};\n"],"names":["createWebsiteBuilderScheduler","createWebsiteBuilderScheduleContext"],"mappings":";AAGO,MAAMA,gCAAgC,IAClC;QAACC;KAAsC"}
|