@webiny/api-website-builder 6.0.0 → 6.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/domain/page/EntryToPageMapper.js +1 -0
- package/domain/page/EntryToPageMapper.js.map +1 -1
- package/domain/page/abstractions.d.ts +6 -1
- package/domain/page/abstractions.js.map +1 -1
- package/domain/page/errors.d.ts +6 -0
- package/domain/page/errors.js +11 -0
- package/domain/page/errors.js.map +1 -1
- package/exports/api/website-builder/page.d.ts +4 -0
- package/exports/api/website-builder/page.js +4 -0
- package/exports/api/website-builder/page.js.map +1 -1
- package/features/nextjs/abstractions.d.ts +1 -0
- package/features/nextjs/abstractions.js +1 -0
- package/features/nextjs/abstractions.js.map +1 -1
- package/features/pages/CreatePage/abstractions.d.ts +3 -0
- package/features/pages/CreatePage/abstractions.js +3 -0
- package/features/pages/CreatePage/abstractions.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +3 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js +3 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -1
- package/features/pages/DeletePage/DeletePageRepository.d.ts +1 -3
- package/features/pages/DeletePage/DeletePageRepository.js +2 -13
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -1
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +4 -4
- package/features/pages/DeletePage/DeletePageUseCase.js +7 -7
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -1
- package/features/pages/DeletePage/abstractions.d.ts +5 -1
- package/features/pages/DeletePage/abstractions.js +3 -0
- package/features/pages/DeletePage/abstractions.js.map +1 -1
- package/features/pages/DuplicatePage/abstractions.d.ts +3 -0
- package/features/pages/DuplicatePage/abstractions.js +3 -0
- package/features/pages/DuplicatePage/abstractions.js.map +1 -1
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.d.ts +13 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js +32 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdRepository.js.map +1 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.d.ts +12 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js +31 -0
- package/features/pages/GetDeletedPageById/GetDeletedPageByIdUseCase.js.map +1 -0
- package/features/pages/GetDeletedPageById/abstractions.d.ts +42 -0
- package/features/pages/GetDeletedPageById/abstractions.js +15 -0
- package/features/pages/GetDeletedPageById/abstractions.js.map +1 -0
- package/features/pages/GetDeletedPageById/feature.d.ts +1 -0
- package/features/pages/GetDeletedPageById/feature.js +12 -0
- package/features/pages/GetDeletedPageById/feature.js.map +1 -0
- package/features/pages/GetDeletedPageById/index.d.ts +1 -0
- package/features/pages/GetDeletedPageById/index.js +3 -0
- package/features/pages/GetDeletedPageById/index.js.map +1 -0
- package/features/pages/GetPageById/abstractions.d.ts +1 -0
- package/features/pages/GetPageById/abstractions.js +1 -0
- package/features/pages/GetPageById/abstractions.js.map +1 -1
- package/features/pages/GetPageByPath/abstractions.d.ts +1 -0
- package/features/pages/GetPageByPath/abstractions.js +1 -0
- package/features/pages/GetPageByPath/abstractions.js.map +1 -1
- package/features/pages/GetPageRevisions/abstractions.d.ts +1 -0
- package/features/pages/GetPageRevisions/abstractions.js +1 -0
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -1
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.d.ts +17 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js +49 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesRepository.js.map +1 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.d.ts +14 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js +35 -0
- package/features/pages/ListDeletedPages/ListDeletedPagesUseCase.js.map +1 -0
- package/features/pages/ListDeletedPages/abstractions.d.ts +56 -0
- package/features/pages/ListDeletedPages/abstractions.js +15 -0
- package/features/pages/ListDeletedPages/abstractions.js.map +1 -0
- package/features/pages/ListDeletedPages/feature.d.ts +1 -0
- package/features/pages/ListDeletedPages/feature.js +12 -0
- package/features/pages/ListDeletedPages/feature.js.map +1 -0
- package/features/pages/ListDeletedPages/index.d.ts +1 -0
- package/features/pages/ListDeletedPages/index.js +3 -0
- package/features/pages/ListDeletedPages/index.js.map +1 -0
- package/features/pages/ListPages/abstractions.d.ts +1 -0
- package/features/pages/ListPages/abstractions.js +1 -0
- package/features/pages/ListPages/abstractions.js.map +1 -1
- package/features/pages/MovePage/abstractions.d.ts +3 -0
- package/features/pages/MovePage/abstractions.js +3 -0
- package/features/pages/MovePage/abstractions.js.map +1 -1
- package/features/pages/PublishPage/abstractions.d.ts +3 -0
- package/features/pages/PublishPage/abstractions.js +3 -0
- package/features/pages/PublishPage/abstractions.js.map +1 -1
- package/features/pages/RestorePage/RestorePageRepository.d.ts +13 -0
- package/features/pages/RestorePage/RestorePageRepository.js +30 -0
- package/features/pages/RestorePage/RestorePageRepository.js.map +1 -0
- package/features/pages/RestorePage/RestorePageUseCase.d.ts +16 -0
- package/features/pages/RestorePage/RestorePageUseCase.js +52 -0
- package/features/pages/RestorePage/RestorePageUseCase.js.map +1 -0
- package/features/pages/RestorePage/abstractions.d.ts +59 -0
- package/features/pages/RestorePage/abstractions.js +30 -0
- package/features/pages/RestorePage/abstractions.js.map +1 -0
- package/features/pages/RestorePage/events.d.ts +10 -0
- package/features/pages/RestorePage/events.js +19 -0
- package/features/pages/RestorePage/events.js.map +1 -0
- package/features/pages/RestorePage/feature.d.ts +1 -0
- package/features/pages/RestorePage/feature.js +12 -0
- package/features/pages/RestorePage/feature.js.map +1 -0
- package/features/pages/RestorePage/index.d.ts +1 -0
- package/features/pages/RestorePage/index.js +3 -0
- package/features/pages/RestorePage/index.js.map +1 -0
- package/features/pages/TrashPage/TrashPageRepository.d.ts +13 -0
- package/features/pages/TrashPage/TrashPageRepository.js +30 -0
- package/features/pages/TrashPage/TrashPageRepository.js.map +1 -0
- package/features/pages/TrashPage/TrashPageUseCase.d.ts +16 -0
- package/features/pages/TrashPage/TrashPageUseCase.js +52 -0
- package/features/pages/TrashPage/TrashPageUseCase.js.map +1 -0
- package/features/pages/TrashPage/abstractions.d.ts +58 -0
- package/features/pages/TrashPage/abstractions.js +30 -0
- package/features/pages/TrashPage/abstractions.js.map +1 -0
- package/features/pages/TrashPage/events.d.ts +10 -0
- package/features/pages/TrashPage/events.js +19 -0
- package/features/pages/TrashPage/events.js.map +1 -0
- package/features/pages/TrashPage/feature.d.ts +1 -0
- package/features/pages/TrashPage/feature.js +12 -0
- package/features/pages/TrashPage/feature.js.map +1 -0
- package/features/pages/TrashPage/index.d.ts +1 -0
- package/features/pages/TrashPage/index.js +3 -0
- package/features/pages/TrashPage/index.js.map +1 -0
- package/features/pages/UnpublishPage/abstractions.d.ts +3 -0
- package/features/pages/UnpublishPage/abstractions.js +3 -0
- package/features/pages/UnpublishPage/abstractions.js.map +1 -1
- package/features/pages/UpdatePage/abstractions.d.ts +3 -0
- package/features/pages/UpdatePage/abstractions.js +3 -0
- package/features/pages/UpdatePage/abstractions.js.map +1 -1
- package/features/redirects/CreateRedirect/abstractions.d.ts +3 -0
- package/features/redirects/CreateRedirect/abstractions.js +3 -0
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -1
- package/features/redirects/DeleteRedirect/abstractions.d.ts +3 -0
- package/features/redirects/DeleteRedirect/abstractions.js +3 -0
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -1
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.js +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -1
- package/features/redirects/GetRedirectById/abstractions.d.ts +1 -0
- package/features/redirects/GetRedirectById/abstractions.js +1 -0
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -1
- package/features/redirects/ListRedirects/abstractions.d.ts +1 -0
- package/features/redirects/ListRedirects/abstractions.js +1 -0
- package/features/redirects/ListRedirects/abstractions.js.map +1 -1
- package/features/redirects/MoveRedirect/abstractions.d.ts +3 -0
- package/features/redirects/MoveRedirect/abstractions.js +3 -0
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -1
- package/features/redirects/UpdateRedirect/abstractions.d.ts +3 -0
- package/features/redirects/UpdateRedirect/abstractions.js +3 -0
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -1
- package/graphql/pages/pages.gql.js +43 -2
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +9 -1
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/index.js +8 -0
- package/index.js.map +1 -1
- package/package.json +19 -19
|
@@ -14,6 +14,7 @@ export const DuplicatePageRepository = createAbstraction("Wb/DuplicatePageReposi
|
|
|
14
14
|
// Use Case Abstraction
|
|
15
15
|
// ============================================================================
|
|
16
16
|
|
|
17
|
+
/** Duplicate a page. */
|
|
17
18
|
export const DuplicatePageUseCase = createAbstraction("Wb/DuplicatePageUseCase");
|
|
18
19
|
|
|
19
20
|
// ============================================================================
|
|
@@ -24,7 +25,9 @@ export const DuplicatePageUseCase = createAbstraction("Wb/DuplicatePageUseCase")
|
|
|
24
25
|
// Event Handler Abstractions
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
28
|
+
/** Hook into page lifecycle before a page is duplicated. */
|
|
27
29
|
export const PageBeforeDuplicateEventHandler = createAbstraction("Wb/PageBeforeDuplicateEventHandler");
|
|
30
|
+
/** Hook into page lifecycle after a page is duplicated. */
|
|
28
31
|
export const PageAfterDuplicateEventHandler = createAbstraction("Wb/PageAfterDuplicateEventHandler");
|
|
29
32
|
|
|
30
33
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","DuplicatePageRepository","DuplicatePageUseCase","PageBeforeDuplicateEventHandler","PageAfterDuplicateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageValidationError,\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDuplicateWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDuplicatePageRepository {\n execute(params: IDuplicateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IDuplicatePageRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDuplicatePageRepositoryErrors[keyof IDuplicatePageRepositoryErrors];\n\nexport const DuplicatePageRepository = createAbstraction<IDuplicatePageRepository>(\n \"Wb/DuplicatePageRepository\"\n);\n\nexport namespace DuplicatePageRepository {\n export type Interface = IDuplicatePageRepository;\n export type Params = IDuplicateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDuplicatePageUseCase {\n execute(params: IDuplicateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IDuplicatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDuplicatePageUseCaseErrors[keyof IDuplicatePageUseCaseErrors];\n\nexport const DuplicatePageUseCase =\n createAbstraction<IDuplicatePageUseCase>(\"Wb/DuplicatePageUseCase\");\n\nexport namespace DuplicatePageUseCase {\n export type Interface = IDuplicatePageUseCase;\n export type Params = IDuplicateWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDuplicatePayload {\n original: WbPage;\n}\n\nexport interface PageAfterDuplicatePayload {\n original: WbPage;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeDuplicateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>\n>(\"Wb/PageBeforeDuplicateEventHandler\");\n\nexport namespace PageBeforeDuplicateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>;\n export type Event = DomainEvent<PageBeforeDuplicatePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterDuplicateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDuplicatePayload>>\n>(\"Wb/PageAfterDuplicateEventHandler\");\n\nexport namespace PageAfterDuplicateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDuplicatePayload>>;\n export type Event = DomainEvent<PageAfterDuplicatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAcA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AASD;AACA;AACA;;AAeA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC;;AAUvE;AACA;AACA;;AAWA;AACA;AACA;;AAEA,OAAO,MAAMG,+BAA+B,GAAGH,iBAAiB,CAE9D,oCAAoC,CAAC;AAQvC,OAAO,MAAMI,8BAA8B,GAAGJ,iBAAiB,CAE7D,mCAAmC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","DuplicatePageRepository","DuplicatePageUseCase","PageBeforeDuplicateEventHandler","PageAfterDuplicateEventHandler"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { IEventHandler } from \"@webiny/api-core/features/EventPublisher\";\nimport type { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport {\n PageValidationError,\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IDuplicateWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IDuplicatePageRepository {\n execute(params: IDuplicateWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IDuplicatePageRepositoryErrors {\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IDuplicatePageRepositoryErrors[keyof IDuplicatePageRepositoryErrors];\n\nexport const DuplicatePageRepository = createAbstraction<IDuplicatePageRepository>(\n \"Wb/DuplicatePageRepository\"\n);\n\nexport namespace DuplicatePageRepository {\n export type Interface = IDuplicatePageRepository;\n export type Params = IDuplicateWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IDuplicatePageUseCase {\n execute(params: IDuplicateWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IDuplicatePageUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n validation: PageValidationError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IDuplicatePageUseCaseErrors[keyof IDuplicatePageUseCaseErrors];\n\n/** Duplicate a page. */\nexport const DuplicatePageUseCase =\n createAbstraction<IDuplicatePageUseCase>(\"Wb/DuplicatePageUseCase\");\n\nexport namespace DuplicatePageUseCase {\n export type Interface = IDuplicatePageUseCase;\n export type Params = IDuplicateWbPageParams;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n\n// ============================================================================\n// Event Payload Types\n// ============================================================================\n\nexport interface PageBeforeDuplicatePayload {\n original: WbPage;\n}\n\nexport interface PageAfterDuplicatePayload {\n original: WbPage;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\n/** Hook into page lifecycle before a page is duplicated. */\nexport const PageBeforeDuplicateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>\n>(\"Wb/PageBeforeDuplicateEventHandler\");\n\nexport namespace PageBeforeDuplicateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeDuplicatePayload>>;\n export type Event = DomainEvent<PageBeforeDuplicatePayload>;\n export type Page = WbPage;\n}\n\n/** Hook into page lifecycle after a page is duplicated. */\nexport const PageAfterDuplicateEventHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterDuplicatePayload>>\n>(\"Wb/PageAfterDuplicateEventHandler\");\n\nexport namespace PageAfterDuplicateEventHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterDuplicatePayload>>;\n export type Event = DomainEvent<PageAfterDuplicatePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAWpE;AACA;AACA;;AAMA;AACA;AACA;;AAcA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AASD;AACA;AACA;;AAeA;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC;;AAUvE;AACA;AACA;;AAWA;AACA;AACA;;AAEA;AACA,OAAO,MAAMG,+BAA+B,GAAGH,iBAAiB,CAE9D,oCAAoC,CAAC;AAQvC;AACA,OAAO,MAAMI,8BAA8B,GAAGJ,iBAAiB,CAE7D,mCAAmC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GetDeletedPageByIdRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
2
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdIncludingDeletedUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
declare class GetDeletedPageByIdRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
5
|
+
private pageModel;
|
|
6
|
+
private getLatestRevision;
|
|
7
|
+
constructor(pageModel: PageModel.Interface, getLatestRevision: GetLatestRevisionByEntryIdIncludingDeletedUseCase.Interface);
|
|
8
|
+
execute(id: string): RepositoryAbstraction.Return;
|
|
9
|
+
}
|
|
10
|
+
export declare const GetDeletedPageByIdRepository: typeof GetDeletedPageByIdRepositoryImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetDeletedPageByIdRepository>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetDeletedPageByIdRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
4
|
+
import { PageNotFoundTrashedError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
5
|
+
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
6
|
+
import { GetLatestRevisionByEntryIdIncludingDeletedUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
7
|
+
class GetDeletedPageByIdRepositoryImpl {
|
|
8
|
+
constructor(pageModel, getLatestRevision) {
|
|
9
|
+
this.pageModel = pageModel;
|
|
10
|
+
this.getLatestRevision = getLatestRevision;
|
|
11
|
+
}
|
|
12
|
+
async execute(id) {
|
|
13
|
+
const result = await this.getLatestRevision.execute(this.pageModel, {
|
|
14
|
+
id
|
|
15
|
+
});
|
|
16
|
+
if (result.isFail()) {
|
|
17
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
18
|
+
}
|
|
19
|
+
const entry = result.value;
|
|
20
|
+
if (!entry?.wbyDeleted) {
|
|
21
|
+
return Result.fail(new PageNotFoundTrashedError(id));
|
|
22
|
+
}
|
|
23
|
+
const page = EntryToPageMapper.toPage(entry);
|
|
24
|
+
return Result.ok(page);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export const GetDeletedPageByIdRepository = RepositoryAbstraction.createImplementation({
|
|
28
|
+
implementation: GetDeletedPageByIdRepositoryImpl,
|
|
29
|
+
dependencies: [PageModel, GetLatestRevisionByEntryIdIncludingDeletedUseCase]
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=GetDeletedPageByIdRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","GetDeletedPageByIdRepository","RepositoryAbstraction","PageModel","PageNotFoundTrashedError","PagePersistenceError","EntryToPageMapper","GetLatestRevisionByEntryIdIncludingDeletedUseCase","GetDeletedPageByIdRepositoryImpl","constructor","pageModel","getLatestRevision","execute","id","result","isFail","fail","error","entry","value","wbyDeleted","page","toPage","ok","createImplementation","implementation","dependencies"],"sources":["GetDeletedPageByIdRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetDeletedPageByIdRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { PageNotFoundTrashedError, PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { GetLatestRevisionByEntryIdIncludingDeletedUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\n\nclass GetDeletedPageByIdRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private getLatestRevision: GetLatestRevisionByEntryIdIncludingDeletedUseCase.Interface\n ) {}\n\n public async execute(id: string): RepositoryAbstraction.Return {\n const result = await this.getLatestRevision.execute(this.pageModel, {\n id\n });\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const entry = result.value;\n if (!entry?.wbyDeleted) {\n return Result.fail(new PageNotFoundTrashedError(id));\n }\n\n const page = EntryToPageMapper.toPage(entry);\n return Result.ok(page);\n }\n}\n\nexport const GetDeletedPageByIdRepository = RepositoryAbstraction.createImplementation({\n implementation: GetDeletedPageByIdRepositoryImpl,\n dependencies: [PageModel, GetLatestRevisionByEntryIdIncludingDeletedUseCase]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,4BAA4B,IAAIC,qBAAqB;AAC9D,SAASC,SAAS;AAClB,SAASC,wBAAwB,EAAEC,oBAAoB;AACvD,SAASC,iBAAiB;AAC1B,SAASC,iDAAiD,QAAQ,oFAAoF;AAEtJ,MAAMC,gCAAgC,CAA4C;EAC9EC,WAAWA,CACCC,SAA8B,EAC9BC,iBAA8E,EACxF;IAAA,KAFUD,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,iBAA8E,GAA9EA,iBAA8E;EACvF;EAEH,MAAaC,OAAOA,CAACC,EAAU,EAAgC;IAC3D,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACH,iBAAiB,CAACC,OAAO,CAAC,IAAI,CAACF,SAAS,EAAE;MAChEG;IACJ,CAAC,CAAC;IAEF,IAAIC,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOf,MAAM,CAACgB,IAAI,CAAC,IAAIX,oBAAoB,CAACS,MAAM,CAACG,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMC,KAAK,GAAGJ,MAAM,CAACK,KAAK;IAC1B,IAAI,CAACD,KAAK,EAAEE,UAAU,EAAE;MACpB,OAAOpB,MAAM,CAACgB,IAAI,CAAC,IAAIZ,wBAAwB,CAACS,EAAE,CAAC,CAAC;IACxD;IAEA,MAAMQ,IAAI,GAAGf,iBAAiB,CAACgB,MAAM,CAACJ,KAAK,CAAC;IAC5C,OAAOlB,MAAM,CAACuB,EAAE,CAACF,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMpB,4BAA4B,GAAGC,qBAAqB,CAACsB,oBAAoB,CAAC;EACnFC,cAAc,EAAEjB,gCAAgC;EAChDkB,YAAY,EAAE,CAACvB,SAAS,EAAEI,iDAAiD;AAC/E,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GetDeletedPageByIdUseCase as UseCaseAbstraction, GetDeletedPageByIdRepository } from "./abstractions.js";
|
|
2
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
3
|
+
declare class GetDeletedPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
4
|
+
private permissions;
|
|
5
|
+
private repository;
|
|
6
|
+
constructor(permissions: WbPermissions.Interface, repository: GetDeletedPageByIdRepository.Interface);
|
|
7
|
+
execute(id: string): UseCaseAbstraction.Return;
|
|
8
|
+
}
|
|
9
|
+
export declare const GetDeletedPageByIdUseCase: typeof GetDeletedPageByIdUseCaseImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IGetDeletedPageByIdUseCase>;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetDeletedPageByIdUseCase as UseCaseAbstraction, GetDeletedPageByIdRepository } from "./abstractions.js";
|
|
3
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
4
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
+
class GetDeletedPageByIdUseCaseImpl {
|
|
6
|
+
constructor(permissions, repository) {
|
|
7
|
+
this.permissions = permissions;
|
|
8
|
+
this.repository = repository;
|
|
9
|
+
}
|
|
10
|
+
async execute(id) {
|
|
11
|
+
const hasPermission = await this.permissions.canRead("page");
|
|
12
|
+
if (!hasPermission) {
|
|
13
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
14
|
+
}
|
|
15
|
+
const result = await this.repository.execute(id);
|
|
16
|
+
if (result.isFail()) {
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
const canAccess = await this.permissions.canAccess("page", result.value);
|
|
20
|
+
if (!canAccess) {
|
|
21
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export const GetDeletedPageByIdUseCase = UseCaseAbstraction.createImplementation({
|
|
27
|
+
implementation: GetDeletedPageByIdUseCaseImpl,
|
|
28
|
+
dependencies: [WbPermissions.Abstraction, GetDeletedPageByIdRepository]
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=GetDeletedPageByIdUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","GetDeletedPageByIdUseCase","UseCaseAbstraction","GetDeletedPageByIdRepository","WbPermissions","PageNotAuthorizedError","GetDeletedPageByIdUseCaseImpl","constructor","permissions","repository","execute","id","hasPermission","canRead","fail","result","isFail","canAccess","value","createImplementation","implementation","dependencies","Abstraction"],"sources":["GetDeletedPageByIdUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n GetDeletedPageByIdUseCase as UseCaseAbstraction,\n GetDeletedPageByIdRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\nclass GetDeletedPageByIdUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private repository: GetDeletedPageByIdRepository.Interface\n ) {}\n\n async execute(id: string): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const result = await this.repository.execute(id);\n\n if (result.isFail()) {\n return result;\n }\n\n const canAccess = await this.permissions.canAccess(\"page\", result.value);\n if (!canAccess) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return result;\n }\n}\n\nexport const GetDeletedPageByIdUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetDeletedPageByIdUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, GetDeletedPageByIdRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,yBAAyB,IAAIC,kBAAkB,EAC/CC,4BAA4B;AAEhC,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAE/B,MAAMC,6BAA6B,CAAyC;EACxEC,WAAWA,CACCC,WAAoC,EACpCC,UAAkD,EAC5D;IAAA,KAFUD,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,UAAkD,GAAlDA,UAAkD;EAC3D;EAEH,MAAMC,OAAOA,CAACC,EAAU,EAA6B;IACjD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACK,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOZ,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMU,MAAM,GAAG,MAAM,IAAI,CAACN,UAAU,CAACC,OAAO,CAACC,EAAE,CAAC;IAEhD,IAAII,MAAM,CAACC,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOD,MAAM;IACjB;IAEA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACT,WAAW,CAACS,SAAS,CAAC,MAAM,EAAEF,MAAM,CAACG,KAAK,CAAC;IACxE,IAAI,CAACD,SAAS,EAAE;MACZ,OAAOjB,MAAM,CAACc,IAAI,CAAC,IAAIT,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,OAAOU,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMd,yBAAyB,GAAGC,kBAAkB,CAACiB,oBAAoB,CAAC;EAC7EC,cAAc,EAAEd,6BAA6B;EAC7Ce,YAAY,EAAE,CAACjB,aAAa,CAACkB,WAAW,EAAEnB,4BAA4B;AAC1E,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
3
|
+
import type { PageNotAuthorizedError, PageNotFoundError, PageNotFoundTrashedError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
4
|
+
/**
|
|
5
|
+
* GetDeletedPageById repository interface
|
|
6
|
+
*/
|
|
7
|
+
export interface IGetDeletedPageByIdRepository {
|
|
8
|
+
execute(id: string): Promise<Result<WbPage, RepositoryError>>;
|
|
9
|
+
}
|
|
10
|
+
export interface IGetDeletedPageByIdRepositoryErrors {
|
|
11
|
+
notFound: PageNotFoundError;
|
|
12
|
+
trashedNotFound: PageNotFoundTrashedError;
|
|
13
|
+
persistence: PagePersistenceError;
|
|
14
|
+
}
|
|
15
|
+
type RepositoryError = IGetDeletedPageByIdRepositoryErrors[keyof IGetDeletedPageByIdRepositoryErrors];
|
|
16
|
+
export declare const GetDeletedPageByIdRepository: import("@webiny/di").Abstraction<IGetDeletedPageByIdRepository>;
|
|
17
|
+
export declare namespace GetDeletedPageByIdRepository {
|
|
18
|
+
type Interface = IGetDeletedPageByIdRepository;
|
|
19
|
+
type Error = RepositoryError;
|
|
20
|
+
type Return = Promise<Result<WbPage, RepositoryError>>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* GetDeletedPageById use case interface
|
|
24
|
+
*/
|
|
25
|
+
export interface IGetDeletedPageByIdUseCase {
|
|
26
|
+
execute(id: string): Promise<Result<WbPage, UseCaseError>>;
|
|
27
|
+
}
|
|
28
|
+
export interface IGetDeletedPageByIdUseCaseErrors {
|
|
29
|
+
notAuthorized: PageNotAuthorizedError;
|
|
30
|
+
notFound: PageNotFoundError;
|
|
31
|
+
trashedNotFound: PageNotFoundTrashedError;
|
|
32
|
+
persistence: PagePersistenceError;
|
|
33
|
+
}
|
|
34
|
+
type UseCaseError = IGetDeletedPageByIdUseCaseErrors[keyof IGetDeletedPageByIdUseCaseErrors];
|
|
35
|
+
export declare const GetDeletedPageByIdUseCase: import("@webiny/di").Abstraction<IGetDeletedPageByIdUseCase>;
|
|
36
|
+
export declare namespace GetDeletedPageByIdUseCase {
|
|
37
|
+
type Interface = IGetDeletedPageByIdUseCase;
|
|
38
|
+
type Return = Promise<Result<WbPage, UseCaseError>>;
|
|
39
|
+
type Error = UseCaseError;
|
|
40
|
+
type Page = WbPage;
|
|
41
|
+
}
|
|
42
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GetDeletedPageById repository interface
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const GetDeletedPageByIdRepository = createAbstraction("Wb/GetDeletedPageByIdRepository");
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* GetDeletedPageById use case interface
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const GetDeletedPageByIdUseCase = createAbstraction("Wb/GetDeletedPageByIdUseCase");
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetDeletedPageByIdRepository","GetDeletedPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import type { Result } from \"@webiny/feature/api\";\nimport { createAbstraction } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotAuthorizedError,\n PageNotFoundError,\n PageNotFoundTrashedError,\n PagePersistenceError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetDeletedPageById repository interface\n */\nexport interface IGetDeletedPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetDeletedPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError =\n IGetDeletedPageByIdRepositoryErrors[keyof IGetDeletedPageByIdRepositoryErrors];\n\nexport const GetDeletedPageByIdRepository = createAbstraction<IGetDeletedPageByIdRepository>(\n \"Wb/GetDeletedPageByIdRepository\"\n);\n\nexport namespace GetDeletedPageByIdRepository {\n export type Interface = IGetDeletedPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetDeletedPageById use case interface\n */\nexport interface IGetDeletedPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetDeletedPageByIdUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n trashedNotFound: PageNotFoundTrashedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetDeletedPageByIdUseCaseErrors[keyof IGetDeletedPageByIdUseCaseErrors];\n\nexport const GetDeletedPageByIdUseCase = createAbstraction<IGetDeletedPageByIdUseCase>(\n \"Wb/GetDeletedPageByIdUseCase\"\n);\n\nexport namespace GetDeletedPageByIdUseCase {\n export type Interface = IGetDeletedPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AACA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAcA,OAAO,MAAMC,4BAA4B,GAAGD,iBAAiB,CACzD,iCACJ,CAAC;;AAQD;AACA;AACA;;AAcA,OAAO,MAAME,yBAAyB,GAAGF,iBAAiB,CACtD,8BACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GetDeletedPageByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { GetDeletedPageByIdUseCase } from "./GetDeletedPageByIdUseCase.js";
|
|
3
|
+
import { GetDeletedPageByIdRepository } from "./GetDeletedPageByIdRepository.js";
|
|
4
|
+
export const GetDeletedPageByIdFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/GetDeletedPageById",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(GetDeletedPageByIdRepository).inSingletonScope();
|
|
8
|
+
container.register(GetDeletedPageByIdUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","GetDeletedPageByIdUseCase","GetDeletedPageByIdRepository","GetDeletedPageByIdFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetDeletedPageByIdUseCase } from \"./GetDeletedPageByIdUseCase.js\";\nimport { GetDeletedPageByIdRepository } from \"./GetDeletedPageByIdRepository.js\";\n\nexport const GetDeletedPageByIdFeature = createFeature({\n name: \"WebsiteBuilder/GetDeletedPageById\",\n register(container) {\n container.register(GetDeletedPageByIdRepository).inSingletonScope();\n container.register(GetDeletedPageByIdUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,yBAAyB;AAClC,SAASC,4BAA4B;AAErC,OAAO,MAAMC,yBAAyB,GAAGH,aAAa,CAAC;EACnDI,IAAI,EAAE,mCAAmC;EACzCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,4BAA4B,CAAC,CAACK,gBAAgB,CAAC,CAAC;IACnED,SAAS,CAACD,QAAQ,CAACJ,yBAAyB,CAAC;EACjD;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./abstractions.js\";\n"],"mappings":"AAAA","ignoreList":[]}
|
|
@@ -30,6 +30,7 @@ export interface IGetPageByIdUseCaseErrors {
|
|
|
30
30
|
persistence: PagePersistenceError;
|
|
31
31
|
}
|
|
32
32
|
type UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];
|
|
33
|
+
/** Retrieve a page by ID. */
|
|
33
34
|
export declare const GetPageByIdUseCase: import("@webiny/di").Abstraction<IGetPageByIdUseCase>;
|
|
34
35
|
export declare namespace GetPageByIdUseCase {
|
|
35
36
|
type Interface = IGetPageByIdUseCase;
|
|
@@ -10,6 +10,7 @@ export const GetPageByIdRepository = createAbstraction("Wb/GetPageByIdRepository
|
|
|
10
10
|
* GetPageById use case interface
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
/** Retrieve a page by ID. */
|
|
13
14
|
export const GetPageByIdUseCase = createAbstraction("Wb/GetPageByIdUseCase");
|
|
14
15
|
|
|
15
16
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetPageByIdRepository","GetPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageById repository interface\n */\nexport interface IGetPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByIdRepositoryErrors[keyof IGetPageByIdRepositoryErrors];\n\nexport const GetPageByIdRepository = createAbstraction<IGetPageByIdRepository>(\n \"Wb/GetPageByIdRepository\"\n);\n\nexport namespace GetPageByIdRepository {\n export type Interface = IGetPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageById use case interface\n */\nexport interface IGetPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByIdUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];\n\nexport const GetPageByIdUseCase = createAbstraction<IGetPageByIdUseCase>(\"Wb/GetPageByIdUseCase\");\n\nexport namespace GetPageByIdUseCase {\n export type Interface = IGetPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AAQD;AACA;AACA;;AAaA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetPageByIdRepository","GetPageByIdUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageById repository interface\n */\nexport interface IGetPageByIdRepository {\n execute(id: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByIdRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByIdRepositoryErrors[keyof IGetPageByIdRepositoryErrors];\n\nexport const GetPageByIdRepository = createAbstraction<IGetPageByIdRepository>(\n \"Wb/GetPageByIdRepository\"\n);\n\nexport namespace GetPageByIdRepository {\n export type Interface = IGetPageByIdRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageById use case interface\n */\nexport interface IGetPageByIdUseCase {\n execute(id: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByIdUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByIdUseCaseErrors[keyof IGetPageByIdUseCaseErrors];\n\n/** Retrieve a page by ID. */\nexport const GetPageByIdUseCase = createAbstraction<IGetPageByIdUseCase>(\"Wb/GetPageByIdUseCase\");\n\nexport namespace GetPageByIdUseCase {\n export type Interface = IGetPageByIdUseCase;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Error = UseCaseError;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AAQD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC","ignoreList":[]}
|
|
@@ -30,6 +30,7 @@ export interface IGetPageByPathUseCaseErrors {
|
|
|
30
30
|
persistence: PagePersistenceError;
|
|
31
31
|
}
|
|
32
32
|
type UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];
|
|
33
|
+
/** Retrieve a page by its URL path. */
|
|
33
34
|
export declare const GetPageByPathUseCase: import("@webiny/di").Abstraction<IGetPageByPathUseCase>;
|
|
34
35
|
export declare namespace GetPageByPathUseCase {
|
|
35
36
|
type Interface = IGetPageByPathUseCase;
|
|
@@ -10,6 +10,7 @@ export const GetPageByPathRepository = createAbstraction("Wb/GetPageByPathReposi
|
|
|
10
10
|
* GetPageByPath use case interface
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
/** Retrieve a page by its URL path. */
|
|
13
14
|
export const GetPageByPathUseCase = createAbstraction("Wb/GetPageByPathUseCase");
|
|
14
15
|
|
|
15
16
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetPageByPathRepository","GetPageByPathUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageByPath repository interface\n */\nexport interface IGetPageByPathRepository {\n execute(path: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByPathRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByPathRepositoryErrors[keyof IGetPageByPathRepositoryErrors];\n\nexport const GetPageByPathRepository = createAbstraction<IGetPageByPathRepository>(\n \"Wb/GetPageByPathRepository\"\n);\n\nexport namespace GetPageByPathRepository {\n export type Interface = IGetPageByPathRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageByPath use case interface\n */\nexport interface IGetPageByPathUseCase {\n execute(path: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByPathUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];\n\nexport const GetPageByPathUseCase =\n createAbstraction<IGetPageByPathUseCase>(\"Wb/GetPageByPathUseCase\");\n\nexport namespace GetPageByPathUseCase {\n export type Interface = IGetPageByPathUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAQD;AACA;AACA;;AAaA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetPageByPathRepository","GetPageByPathUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type {\n PageNotFoundError,\n PagePersistenceError,\n PageNotAuthorizedError\n} from \"~/domain/page/errors.js\";\n\n/**\n * GetPageByPath repository interface\n */\nexport interface IGetPageByPathRepository {\n execute(path: string): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IGetPageByPathRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageByPathRepositoryErrors[keyof IGetPageByPathRepositoryErrors];\n\nexport const GetPageByPathRepository = createAbstraction<IGetPageByPathRepository>(\n \"Wb/GetPageByPathRepository\"\n);\n\nexport namespace GetPageByPathRepository {\n export type Interface = IGetPageByPathRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n}\n\n/**\n * GetPageByPath use case interface\n */\nexport interface IGetPageByPathUseCase {\n execute(path: string): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IGetPageByPathUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageByPathUseCaseErrors[keyof IGetPageByPathUseCaseErrors];\n\n/** Retrieve a page by its URL path. */\nexport const GetPageByPathUseCase =\n createAbstraction<IGetPageByPathUseCase>(\"Wb/GetPageByPathUseCase\");\n\nexport namespace GetPageByPathUseCase {\n export type Interface = IGetPageByPathUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage, UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AASvD;AACA;AACA;;AAYA,OAAO,MAAMC,uBAAuB,GAAGD,iBAAiB,CACpD,4BACJ,CAAC;;AAQD;AACA;AACA;;AAaA;AACA,OAAO,MAAME,oBAAoB,GAC7BF,iBAAiB,CAAwB,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -28,6 +28,7 @@ export interface IGetPageRevisionsUseCaseErrors {
|
|
|
28
28
|
persistence: PagePersistenceError;
|
|
29
29
|
}
|
|
30
30
|
type UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];
|
|
31
|
+
/** Retrieve all revisions of a page. */
|
|
31
32
|
export declare const GetPageRevisionsUseCase: import("@webiny/di").Abstraction<IGetPageRevisionsUseCase>;
|
|
32
33
|
export declare namespace GetPageRevisionsUseCase {
|
|
33
34
|
type Interface = IGetPageRevisionsUseCase;
|
|
@@ -10,6 +10,7 @@ export const GetPageRevisionsRepository = createAbstraction("Wb/GetPageRevisions
|
|
|
10
10
|
* GetPageRevisions use case interface
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
/** Retrieve all revisions of a page. */
|
|
13
14
|
export const GetPageRevisionsUseCase = createAbstraction("Wb/GetPageRevisionsUseCase");
|
|
14
15
|
|
|
15
16
|
//# sourceMappingURL=abstractions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","GetPageRevisionsRepository","GetPageRevisionsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageRevisions repository interface\n */\nexport interface IGetPageRevisionsRepository {\n execute(entryId: string): Promise<Result<WbPage[], RepositoryError>>;\n}\n\nexport interface IGetPageRevisionsRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageRevisionsRepositoryErrors[keyof IGetPageRevisionsRepositoryErrors];\n\nexport const GetPageRevisionsRepository = createAbstraction<IGetPageRevisionsRepository>(\n \"Wb/GetPageRevisionsRepository\"\n);\n\nexport namespace GetPageRevisionsRepository {\n export type Interface = IGetPageRevisionsRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage[], RepositoryError>>;\n}\n\n/**\n * GetPageRevisions use case interface\n */\nexport interface IGetPageRevisionsUseCase {\n execute(entryId: string): Promise<Result<WbPage[], UseCaseError>>;\n}\n\nexport interface IGetPageRevisionsUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];\n\nexport const GetPageRevisionsUseCase = createAbstraction<IGetPageRevisionsUseCase>(\n \"Wb/GetPageRevisionsUseCase\"\n);\n\nexport namespace GetPageRevisionsUseCase {\n export type Interface = IGetPageRevisionsUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage[], UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAWA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AAQD;AACA;AACA;;AAYA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAbstraction","GetPageRevisionsRepository","GetPageRevisionsUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\n\n/**\n * GetPageRevisions repository interface\n */\nexport interface IGetPageRevisionsRepository {\n execute(entryId: string): Promise<Result<WbPage[], RepositoryError>>;\n}\n\nexport interface IGetPageRevisionsRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IGetPageRevisionsRepositoryErrors[keyof IGetPageRevisionsRepositoryErrors];\n\nexport const GetPageRevisionsRepository = createAbstraction<IGetPageRevisionsRepository>(\n \"Wb/GetPageRevisionsRepository\"\n);\n\nexport namespace GetPageRevisionsRepository {\n export type Interface = IGetPageRevisionsRepository;\n export type Error = RepositoryError;\n export type Return = Promise<Result<WbPage[], RepositoryError>>;\n}\n\n/**\n * GetPageRevisions use case interface\n */\nexport interface IGetPageRevisionsUseCase {\n execute(entryId: string): Promise<Result<WbPage[], UseCaseError>>;\n}\n\nexport interface IGetPageRevisionsUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IGetPageRevisionsUseCaseErrors[keyof IGetPageRevisionsUseCaseErrors];\n\n/** Retrieve all revisions of a page. */\nexport const GetPageRevisionsUseCase = createAbstraction<IGetPageRevisionsUseCase>(\n \"Wb/GetPageRevisionsUseCase\"\n);\n\nexport namespace GetPageRevisionsUseCase {\n export type Interface = IGetPageRevisionsUseCase;\n export type Error = UseCaseError;\n export type Return = Promise<Result<WbPage[], UseCaseError>>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAKvD;AACA;AACA;;AAWA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AAQD;AACA;AACA;;AAYA;AACA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ListDeletedPagesRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
2
|
+
import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
|
|
3
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
4
|
+
import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
|
|
5
|
+
import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
|
|
6
|
+
declare class ListDeletedPagesRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
7
|
+
private pageModel;
|
|
8
|
+
private listDeletedEntries;
|
|
9
|
+
private whereMapper;
|
|
10
|
+
private sortMapper;
|
|
11
|
+
constructor(pageModel: PageModel.Interface, listDeletedEntries: ListDeletedEntriesUseCase.Interface, whereMapper: CmsWhereMapper.Interface, sortMapper: CmsSortMapper.Interface);
|
|
12
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
13
|
+
}
|
|
14
|
+
export declare const ListDeletedPagesRepository: typeof ListDeletedPagesRepositoryImpl & {
|
|
15
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListDeletedPagesRepository>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { ListDeletedPagesRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { ListDeletedEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
6
|
+
import { PagePersistenceError } from "../../../domain/page/errors.js";
|
|
7
|
+
import { CmsWhereMapper } from "@webiny/api-headless-cms/features/whereMapper/abstractions.js";
|
|
8
|
+
import { CmsSortMapper } from "@webiny/api-headless-cms/features/sortMapper/abstractions.js";
|
|
9
|
+
class ListDeletedPagesRepositoryImpl {
|
|
10
|
+
constructor(pageModel, listDeletedEntries, whereMapper, sortMapper) {
|
|
11
|
+
this.pageModel = pageModel;
|
|
12
|
+
this.listDeletedEntries = listDeletedEntries;
|
|
13
|
+
this.whereMapper = whereMapper;
|
|
14
|
+
this.sortMapper = sortMapper;
|
|
15
|
+
}
|
|
16
|
+
async execute(params) {
|
|
17
|
+
const result = await this.listDeletedEntries.execute(this.pageModel, {
|
|
18
|
+
where: this.whereMapper.map({
|
|
19
|
+
fields: this.pageModel.fields,
|
|
20
|
+
input: params.where
|
|
21
|
+
}),
|
|
22
|
+
sort: this.sortMapper.map({
|
|
23
|
+
fields: this.pageModel.fields,
|
|
24
|
+
input: params.sort
|
|
25
|
+
}),
|
|
26
|
+
limit: params.limit,
|
|
27
|
+
after: params.after,
|
|
28
|
+
search: params.search
|
|
29
|
+
});
|
|
30
|
+
if (result.isFail()) {
|
|
31
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
32
|
+
}
|
|
33
|
+
const {
|
|
34
|
+
entries,
|
|
35
|
+
meta
|
|
36
|
+
} = result.value;
|
|
37
|
+
const pages = entries.map(entry => EntryToPageMapper.toPage(entry));
|
|
38
|
+
return Result.ok({
|
|
39
|
+
pages,
|
|
40
|
+
meta
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export const ListDeletedPagesRepository = RepositoryAbstraction.createImplementation({
|
|
45
|
+
implementation: ListDeletedPagesRepositoryImpl,
|
|
46
|
+
dependencies: [PageModel, ListDeletedEntriesUseCase, CmsWhereMapper, CmsSortMapper]
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=ListDeletedPagesRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","ListDeletedPagesRepository","RepositoryAbstraction","ListDeletedEntriesUseCase","PageModel","EntryToPageMapper","PagePersistenceError","CmsWhereMapper","CmsSortMapper","ListDeletedPagesRepositoryImpl","constructor","pageModel","listDeletedEntries","whereMapper","sortMapper","execute","params","result","where","map","fields","input","sort","limit","after","search","isFail","fail","error","entries","meta","value","pages","entry","toPage","ok","createImplementation","implementation","dependencies"],"sources":["ListDeletedPagesRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ListDeletedPagesRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { ListDeletedEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PagePersistenceError } from \"~/domain/page/errors.js\";\nimport { CmsWhereMapper } from \"@webiny/api-headless-cms/features/whereMapper/abstractions.js\";\nimport { CmsSortMapper } from \"@webiny/api-headless-cms/features/sortMapper/abstractions.js\";\n\nclass ListDeletedPagesRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private pageModel: PageModel.Interface,\n private listDeletedEntries: ListDeletedEntriesUseCase.Interface,\n private whereMapper: CmsWhereMapper.Interface,\n private sortMapper: CmsSortMapper.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n const result = await this.listDeletedEntries.execute(this.pageModel, {\n where: this.whereMapper.map({\n fields: this.pageModel.fields,\n input: params.where\n }),\n sort: this.sortMapper.map({\n fields: this.pageModel.fields,\n input: params.sort\n }),\n limit: params.limit,\n after: params.after,\n search: params.search\n });\n\n if (result.isFail()) {\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const { entries, meta } = result.value;\n const pages = entries.map(entry => EntryToPageMapper.toPage(entry));\n\n return Result.ok({ pages, meta });\n }\n}\n\nexport const ListDeletedPagesRepository = RepositoryAbstraction.createImplementation({\n implementation: ListDeletedPagesRepositoryImpl,\n dependencies: [PageModel, ListDeletedEntriesUseCase, CmsWhereMapper, CmsSortMapper]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,0BAA0B,IAAIC,qBAAqB;AAC5D,SAASC,yBAAyB,QAAQ,4DAA4D;AACtG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,cAAc,QAAQ,+DAA+D;AAC9F,SAASC,aAAa,QAAQ,8DAA8D;AAE5F,MAAMC,8BAA8B,CAA4C;EAC5EC,WAAWA,CACCC,SAA8B,EAC9BC,kBAAuD,EACvDC,WAAqC,EACrCC,UAAmC,EAC7C;IAAA,KAJUH,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,kBAAuD,GAAvDA,kBAAuD;IAAA,KACvDC,WAAqC,GAArCA,WAAqC;IAAA,KACrCC,UAAmC,GAAnCA,UAAmC;EAC5C;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,kBAAkB,CAACG,OAAO,CAAC,IAAI,CAACJ,SAAS,EAAE;MACjEO,KAAK,EAAE,IAAI,CAACL,WAAW,CAACM,GAAG,CAAC;QACxBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACE;MAClB,CAAC,CAAC;MACFI,IAAI,EAAE,IAAI,CAACR,UAAU,CAACK,GAAG,CAAC;QACtBC,MAAM,EAAE,IAAI,CAACT,SAAS,CAACS,MAAM;QAC7BC,KAAK,EAAEL,MAAM,CAACM;MAClB,CAAC,CAAC;MACFC,KAAK,EAAEP,MAAM,CAACO,KAAK;MACnBC,KAAK,EAAER,MAAM,CAACQ,KAAK;MACnBC,MAAM,EAAET,MAAM,CAACS;IACnB,CAAC,CAAC;IAEF,IAAIR,MAAM,CAACS,MAAM,CAAC,CAAC,EAAE;MACjB,OAAO1B,MAAM,CAAC2B,IAAI,CAAC,IAAIrB,oBAAoB,CAACW,MAAM,CAACW,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAM;MAAEC,OAAO;MAAEC;IAAK,CAAC,GAAGb,MAAM,CAACc,KAAK;IACtC,MAAMC,KAAK,GAAGH,OAAO,CAACV,GAAG,CAACc,KAAK,IAAI5B,iBAAiB,CAAC6B,MAAM,CAACD,KAAK,CAAC,CAAC;IAEnE,OAAOjC,MAAM,CAACmC,EAAE,CAAC;MAAEH,KAAK;MAAEF;IAAK,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAM7B,0BAA0B,GAAGC,qBAAqB,CAACkC,oBAAoB,CAAC;EACjFC,cAAc,EAAE5B,8BAA8B;EAC9C6B,YAAY,EAAE,CAAClC,SAAS,EAAED,yBAAyB,EAAEI,cAAc,EAAEC,aAAa;AACtF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
|
|
2
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
3
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
4
|
+
declare class ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
5
|
+
private permissions;
|
|
6
|
+
private identityContext;
|
|
7
|
+
private repository;
|
|
8
|
+
constructor(permissions: WbPermissions.Interface, identityContext: IdentityContext.Interface, repository: ListDeletedPagesRepository.Interface);
|
|
9
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
10
|
+
}
|
|
11
|
+
export declare const ListDeletedPagesUseCase: typeof ListDeletedPagesUseCaseImpl & {
|
|
12
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IListDeletedPagesUseCase>;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { ListDeletedPagesUseCase as UseCaseAbstraction, ListDeletedPagesRepository } from "./abstractions.js";
|
|
3
|
+
import { WbPermissions } from "../../../domain/permissions.js";
|
|
4
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
6
|
+
class ListDeletedPagesUseCaseImpl {
|
|
7
|
+
constructor(permissions, identityContext, repository) {
|
|
8
|
+
this.permissions = permissions;
|
|
9
|
+
this.identityContext = identityContext;
|
|
10
|
+
this.repository = repository;
|
|
11
|
+
}
|
|
12
|
+
async execute(params) {
|
|
13
|
+
const hasPermission = await this.permissions.canRead("page");
|
|
14
|
+
if (!hasPermission) {
|
|
15
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
16
|
+
}
|
|
17
|
+
const where = {
|
|
18
|
+
...params.where
|
|
19
|
+
};
|
|
20
|
+
if (await this.permissions.onlyOwnRecords("page")) {
|
|
21
|
+
const identity = this.identityContext.getIdentity();
|
|
22
|
+
where.createdBy = identity.id;
|
|
23
|
+
}
|
|
24
|
+
return this.repository.execute({
|
|
25
|
+
...params,
|
|
26
|
+
where
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({
|
|
31
|
+
implementation: ListDeletedPagesUseCaseImpl,
|
|
32
|
+
dependencies: [WbPermissions.Abstraction, IdentityContext, ListDeletedPagesRepository]
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=ListDeletedPagesUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","ListDeletedPagesUseCase","UseCaseAbstraction","ListDeletedPagesRepository","WbPermissions","PageNotAuthorizedError","IdentityContext","ListDeletedPagesUseCaseImpl","constructor","permissions","identityContext","repository","execute","params","hasPermission","canRead","fail","where","onlyOwnRecords","identity","getIdentity","createdBy","id","createImplementation","implementation","dependencies","Abstraction"],"sources":["ListDeletedPagesUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n ListDeletedPagesUseCase as UseCaseAbstraction,\n ListDeletedPagesRepository\n} from \"./abstractions.js\";\nimport { WbPermissions } from \"~/domain/permissions.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\n\nclass ListDeletedPagesUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WbPermissions.Interface,\n private identityContext: IdentityContext.Interface,\n private repository: ListDeletedPagesRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n const hasPermission = await this.permissions.canRead(\"page\");\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n const where = { ...params.where };\n\n if (await this.permissions.onlyOwnRecords(\"page\")) {\n const identity = this.identityContext.getIdentity();\n where.createdBy = identity.id;\n }\n\n return this.repository.execute({ ...params, where });\n }\n}\n\nexport const ListDeletedPagesUseCase = UseCaseAbstraction.createImplementation({\n implementation: ListDeletedPagesUseCaseImpl,\n dependencies: [WbPermissions.Abstraction, IdentityContext, ListDeletedPagesRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SACIC,uBAAuB,IAAIC,kBAAkB,EAC7CC,0BAA0B;AAE9B,SAASC,aAAa;AACtB,SAASC,sBAAsB;AAC/B,SAASC,eAAe,QAAQ,6DAA6D;AAE7F,MAAMC,2BAA2B,CAAyC;EACtEC,WAAWA,CACCC,WAAoC,EACpCC,eAA0C,EAC1CC,UAAgD,EAC1D;IAAA,KAHUF,WAAoC,GAApCA,WAAoC;IAAA,KACpCC,eAA0C,GAA1CA,eAA0C;IAAA,KAC1CC,UAAgD,GAAhDA,UAAgD;EACzD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACL,WAAW,CAACM,OAAO,CAAC,MAAM,CAAC;IAC5D,IAAI,CAACD,aAAa,EAAE;MAChB,OAAOd,MAAM,CAACgB,IAAI,CAAC,IAAIX,sBAAsB,CAAC,CAAC,CAAC;IACpD;IAEA,MAAMY,KAAK,GAAG;MAAE,GAAGJ,MAAM,CAACI;IAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,CAACR,WAAW,CAACS,cAAc,CAAC,MAAM,CAAC,EAAE;MAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACT,eAAe,CAACU,WAAW,CAAC,CAAC;MACnDH,KAAK,CAACI,SAAS,GAAGF,QAAQ,CAACG,EAAE;IACjC;IAEA,OAAO,IAAI,CAACX,UAAU,CAACC,OAAO,CAAC;MAAE,GAAGC,MAAM;MAAEI;IAAM,CAAC,CAAC;EACxD;AACJ;AAEA,OAAO,MAAMhB,uBAAuB,GAAGC,kBAAkB,CAACqB,oBAAoB,CAAC;EAC3EC,cAAc,EAAEjB,2BAA2B;EAC3CkB,YAAY,EAAE,CAACrB,aAAa,CAACsB,WAAW,EAAEpB,eAAe,EAAEH,0BAA0B;AACzF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Result } from "@webiny/feature/api";
|
|
2
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
3
|
+
import type { PagePersistenceError, PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
4
|
+
import type { CmsEntryListSort, CmsEntryListWhere } from "@webiny/api-headless-cms/types/index.js";
|
|
5
|
+
export interface IListDeletedPagesParams {
|
|
6
|
+
where: CmsEntryListWhere;
|
|
7
|
+
sort: CmsEntryListSort;
|
|
8
|
+
limit: number;
|
|
9
|
+
after: string | null;
|
|
10
|
+
search?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface IListDeletedPagesMeta {
|
|
13
|
+
hasMoreItems: boolean;
|
|
14
|
+
totalCount: number;
|
|
15
|
+
cursor: string | null;
|
|
16
|
+
}
|
|
17
|
+
export type IListDeletedPagesResult = {
|
|
18
|
+
pages: WbPage[];
|
|
19
|
+
meta: IListDeletedPagesMeta;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* ListDeletedPages repository interface
|
|
23
|
+
*/
|
|
24
|
+
export interface IListDeletedPagesRepository {
|
|
25
|
+
execute(params: IListDeletedPagesParams): Promise<Result<IListDeletedPagesResult, RepositoryError>>;
|
|
26
|
+
}
|
|
27
|
+
export interface IListDeletedPagesRepositoryErrors {
|
|
28
|
+
persistence: PagePersistenceError;
|
|
29
|
+
}
|
|
30
|
+
type RepositoryError = IListDeletedPagesRepositoryErrors[keyof IListDeletedPagesRepositoryErrors];
|
|
31
|
+
export declare const ListDeletedPagesRepository: import("@webiny/di").Abstraction<IListDeletedPagesRepository>;
|
|
32
|
+
export declare namespace ListDeletedPagesRepository {
|
|
33
|
+
type Interface = IListDeletedPagesRepository;
|
|
34
|
+
type Error = RepositoryError;
|
|
35
|
+
type Params = IListDeletedPagesParams;
|
|
36
|
+
type Return = Promise<Result<IListDeletedPagesResult, RepositoryError>>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* ListDeletedPages use case interface
|
|
40
|
+
*/
|
|
41
|
+
export interface IListDeletedPagesUseCase {
|
|
42
|
+
execute(params: IListDeletedPagesParams): Promise<Result<IListDeletedPagesResult, UseCaseError>>;
|
|
43
|
+
}
|
|
44
|
+
export interface IListDeletedPagesUseCaseErrors {
|
|
45
|
+
notAuthorized: PageNotAuthorizedError;
|
|
46
|
+
persistence: PagePersistenceError;
|
|
47
|
+
}
|
|
48
|
+
type UseCaseError = IListDeletedPagesUseCaseErrors[keyof IListDeletedPagesUseCaseErrors];
|
|
49
|
+
export declare const ListDeletedPagesUseCase: import("@webiny/di").Abstraction<IListDeletedPagesUseCase>;
|
|
50
|
+
export declare namespace ListDeletedPagesUseCase {
|
|
51
|
+
type Interface = IListDeletedPagesUseCase;
|
|
52
|
+
type Error = UseCaseError;
|
|
53
|
+
type Params = IListDeletedPagesParams;
|
|
54
|
+
type Return = Promise<Result<IListDeletedPagesResult, UseCaseError>>;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ListDeletedPages repository interface
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const ListDeletedPagesRepository = createAbstraction("Wb/ListDeletedPagesRepository");
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* ListDeletedPages use case interface
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const ListDeletedPagesUseCase = createAbstraction("Wb/ListDeletedPagesUseCase");
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","ListDeletedPagesRepository","ListDeletedPagesUseCase"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { WbPage } from \"~/domain/page/abstractions.js\";\nimport type { PagePersistenceError, PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport type { CmsEntryListSort, CmsEntryListWhere } from \"@webiny/api-headless-cms/types/index.js\";\n\nexport interface IListDeletedPagesParams {\n where: CmsEntryListWhere;\n sort: CmsEntryListSort;\n limit: number;\n after: string | null;\n search?: string;\n}\n\nexport interface IListDeletedPagesMeta {\n hasMoreItems: boolean;\n totalCount: number;\n cursor: string | null;\n}\n\nexport type IListDeletedPagesResult = { pages: WbPage[]; meta: IListDeletedPagesMeta };\n\n/**\n * ListDeletedPages repository interface\n */\nexport interface IListDeletedPagesRepository {\n execute(\n params: IListDeletedPagesParams\n ): Promise<Result<IListDeletedPagesResult, RepositoryError>>;\n}\n\nexport interface IListDeletedPagesRepositoryErrors {\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IListDeletedPagesRepositoryErrors[keyof IListDeletedPagesRepositoryErrors];\n\nexport const ListDeletedPagesRepository = createAbstraction<IListDeletedPagesRepository>(\n \"Wb/ListDeletedPagesRepository\"\n);\n\nexport namespace ListDeletedPagesRepository {\n export type Interface = IListDeletedPagesRepository;\n export type Error = RepositoryError;\n export type Params = IListDeletedPagesParams;\n export type Return = Promise<Result<IListDeletedPagesResult, RepositoryError>>;\n}\n\n/**\n * ListDeletedPages use case interface\n */\nexport interface IListDeletedPagesUseCase {\n execute(\n params: IListDeletedPagesParams\n ): Promise<Result<IListDeletedPagesResult, UseCaseError>>;\n}\n\nexport interface IListDeletedPagesUseCaseErrors {\n notAuthorized: PageNotAuthorizedError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IListDeletedPagesUseCaseErrors[keyof IListDeletedPagesUseCaseErrors];\n\nexport const ListDeletedPagesUseCase = createAbstraction<IListDeletedPagesUseCase>(\n \"Wb/ListDeletedPagesUseCase\"\n);\n\nexport namespace ListDeletedPagesUseCase {\n export type Interface = IListDeletedPagesUseCase;\n export type Error = UseCaseError;\n export type Params = IListDeletedPagesParams;\n export type Return = Promise<Result<IListDeletedPagesResult, UseCaseError>>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;;AAsBvD;AACA;AACA;;AAaA,OAAO,MAAMC,0BAA0B,GAAGD,iBAAiB,CACvD,+BACJ,CAAC;;AASD;AACA;AACA;;AAcA,OAAO,MAAME,uBAAuB,GAAGF,iBAAiB,CACpD,4BACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ListDeletedPagesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { ListDeletedPagesRepository } from "./ListDeletedPagesRepository.js";
|
|
3
|
+
import { ListDeletedPagesUseCase } from "./ListDeletedPagesUseCase.js";
|
|
4
|
+
export const ListDeletedPagesFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/ListDeletedPages",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(ListDeletedPagesRepository).inSingletonScope();
|
|
8
|
+
container.register(ListDeletedPagesUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","ListDeletedPagesRepository","ListDeletedPagesUseCase","ListDeletedPagesFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ListDeletedPagesRepository } from \"./ListDeletedPagesRepository.js\";\nimport { ListDeletedPagesUseCase } from \"./ListDeletedPagesUseCase.js\";\n\nexport const ListDeletedPagesFeature = createFeature({\n name: \"WebsiteBuilder/ListDeletedPages\",\n register(container) {\n container.register(ListDeletedPagesRepository).inSingletonScope();\n container.register(ListDeletedPagesUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,0BAA0B;AACnC,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,uBAAuB,GAAGH,aAAa,CAAC;EACjDI,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,0BAA0B,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACjED,SAAS,CAACD,QAAQ,CAACH,uBAAuB,CAAC;EAC/C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./abstractions.js";
|