@webiny/api-website-builder 0.0.0-unstable.9bd236cf5e → 0.0.0-unstable.ac6ebf63c6
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/README.md +7 -29
- package/constants.js +3 -9
- package/constants.js.map +1 -1
- package/domain/page/EntryToPageMapper.d.ts +5 -0
- package/domain/page/EntryToPageMapper.js +30 -0
- package/domain/page/EntryToPageMapper.js.map +1 -0
- package/domain/page/abstractions.d.ts +33 -0
- package/domain/page/abstractions.js +8 -0
- package/domain/page/abstractions.js.map +1 -0
- package/domain/page/errors.d.ts +19 -0
- package/domain/page/errors.js +38 -0
- package/domain/page/errors.js.map +1 -0
- package/domain/page/page.model.d.ts +2 -0
- package/domain/page/page.model.js +32 -0
- package/domain/page/page.model.js.map +1 -0
- package/domain/redirect/EntryToRedirectMapper.d.ts +5 -0
- package/domain/redirect/EntryToRedirectMapper.js +24 -0
- package/domain/redirect/EntryToRedirectMapper.js.map +1 -0
- package/domain/redirect/abstractions.d.ts +30 -0
- package/domain/redirect/abstractions.js +12 -0
- package/domain/redirect/abstractions.js.map +1 -0
- package/domain/redirect/errors.d.ts +19 -0
- package/domain/redirect/errors.js +38 -0
- package/domain/redirect/errors.js.map +1 -0
- package/domain/redirect/redirect.model.d.ts +2 -0
- package/domain/redirect/redirect.model.js +32 -0
- package/domain/redirect/redirect.model.js.map +1 -0
- package/domain/shared/abstractions.d.ts +5 -0
- package/domain/shared/abstractions.js +3 -0
- package/domain/shared/abstractions.js.map +1 -0
- package/exports/api/website-builder/nextjs.d.ts +1 -0
- package/exports/api/website-builder/nextjs.js +3 -0
- package/exports/api/website-builder/nextjs.js.map +1 -0
- package/exports/api/website-builder/page.d.ts +12 -0
- package/exports/api/website-builder/page.js +14 -0
- package/exports/api/website-builder/page.js.map +1 -0
- package/exports/api/website-builder/redirect.d.ts +8 -0
- package/exports/api/website-builder/redirect.js +10 -0
- package/exports/api/website-builder/redirect.js.map +1 -0
- package/features/installer/ApiKeyInstaller.d.ts +18 -0
- package/features/installer/ApiKeyInstaller.js +37 -0
- package/features/installer/ApiKeyInstaller.js.map +1 -0
- package/features/installer/feature.d.ts +1 -0
- package/features/installer/feature.js +10 -0
- package/features/installer/feature.js.map +1 -0
- package/features/nextjs/MarkdownContentBuilder.d.ts +31 -0
- package/features/nextjs/MarkdownContentBuilder.js +86 -0
- package/features/nextjs/MarkdownContentBuilder.js.map +1 -0
- package/features/nextjs/MarkdownContentBuilder.test.d.ts +1 -0
- package/features/nextjs/MarkdownContentBuilder.test.js +278 -0
- package/features/nextjs/MarkdownContentBuilder.test.js.map +1 -0
- package/features/nextjs/NextjsConfig.d.ts +14 -0
- package/features/nextjs/NextjsConfig.js +58 -0
- package/features/nextjs/NextjsConfig.js.map +1 -0
- package/features/nextjs/abstractions.d.ts +9 -0
- package/features/nextjs/abstractions.js +4 -0
- package/features/nextjs/abstractions.js.map +1 -0
- package/features/nextjs/feature.d.ts +1 -0
- package/features/nextjs/feature.js +10 -0
- package/features/nextjs/feature.js.map +1 -0
- package/features/nextjs/index.d.ts +1 -0
- package/features/nextjs/index.js +3 -0
- package/features/nextjs/index.js.map +1 -0
- package/features/pages/CreatePage/CreatePageRepository.d.ts +13 -0
- package/features/pages/CreatePage/CreatePageRepository.js +36 -0
- package/features/pages/CreatePage/CreatePageRepository.js.map +1 -0
- package/features/pages/CreatePage/CreatePageUseCase.d.ts +12 -0
- package/features/pages/CreatePage/CreatePageUseCase.js +37 -0
- package/features/pages/CreatePage/CreatePageUseCase.js.map +1 -0
- package/features/pages/CreatePage/abstractions.d.ts +55 -0
- package/features/pages/CreatePage/abstractions.js +30 -0
- package/features/pages/CreatePage/abstractions.js.map +1 -0
- package/features/pages/CreatePage/events.d.ts +10 -0
- package/features/pages/CreatePage/events.js +19 -0
- package/features/pages/CreatePage/events.js.map +1 -0
- package/features/pages/CreatePage/feature.d.ts +1 -0
- package/features/pages/CreatePage/feature.js +12 -0
- package/features/pages/CreatePage/feature.js.map +1 -0
- package/features/pages/CreatePage/index.d.ts +1 -15
- package/features/pages/CreatePage/index.js +1 -16
- package/features/pages/CreatePage/index.js.map +1 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.d.ts +15 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js +49 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +12 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js +37 -0
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.d.ts +60 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js +30 -0
- package/features/pages/CreatePageRevisionFrom/abstractions.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/events.d.ts +10 -0
- package/features/pages/CreatePageRevisionFrom/events.js +19 -0
- package/features/pages/CreatePageRevisionFrom/events.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/feature.d.ts +1 -0
- package/features/pages/CreatePageRevisionFrom/feature.js +12 -0
- package/features/pages/CreatePageRevisionFrom/feature.js.map +1 -0
- package/features/pages/CreatePageRevisionFrom/index.d.ts +1 -16
- package/features/pages/CreatePageRevisionFrom/index.js +1 -16
- package/features/pages/CreatePageRevisionFrom/index.js.map +1 -1
- package/features/pages/DeletePage/DeletePageRepository.d.ts +15 -0
- package/features/pages/DeletePage/DeletePageRepository.js +39 -0
- package/features/pages/DeletePage/DeletePageRepository.js.map +1 -0
- package/features/pages/DeletePage/DeletePageUseCase.d.ts +14 -0
- package/features/pages/DeletePage/DeletePageUseCase.js +45 -0
- package/features/pages/DeletePage/DeletePageUseCase.js.map +1 -0
- package/features/pages/DeletePage/abstractions.d.ts +57 -0
- package/features/pages/DeletePage/abstractions.js +30 -0
- package/features/pages/DeletePage/abstractions.js.map +1 -0
- package/features/pages/DeletePage/events.d.ts +10 -0
- package/features/pages/DeletePage/events.js +19 -0
- package/features/pages/DeletePage/events.js.map +1 -0
- package/features/pages/DeletePage/feature.d.ts +1 -0
- package/features/pages/DeletePage/feature.js +12 -0
- package/features/pages/DeletePage/feature.js.map +1 -0
- package/features/pages/DeletePage/index.d.ts +1 -16
- package/features/pages/DeletePage/index.js +1 -16
- package/features/pages/DeletePage/index.js.map +1 -1
- package/features/pages/DuplicatePage/DuplicatePageRepository.d.ts +15 -0
- package/features/pages/DuplicatePage/DuplicatePageRepository.js +59 -0
- package/features/pages/DuplicatePage/DuplicatePageRepository.js.map +1 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.d.ts +12 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js +47 -0
- package/features/pages/DuplicatePage/DuplicatePageUseCase.js.map +1 -0
- package/features/pages/DuplicatePage/abstractions.d.ts +61 -0
- package/features/pages/DuplicatePage/abstractions.js +30 -0
- package/features/pages/DuplicatePage/abstractions.js.map +1 -0
- package/features/pages/DuplicatePage/events.d.ts +10 -0
- package/features/pages/DuplicatePage/events.js +19 -0
- package/features/pages/DuplicatePage/events.js.map +1 -0
- package/features/pages/DuplicatePage/feature.d.ts +1 -0
- package/features/pages/DuplicatePage/feature.js +12 -0
- package/features/pages/DuplicatePage/feature.js.map +1 -0
- package/features/pages/DuplicatePage/index.d.ts +1 -16
- package/features/pages/DuplicatePage/index.js +1 -16
- package/features/pages/DuplicatePage/index.js.map +1 -1
- package/features/pages/GetPageById/GetPageByIdRepository.d.ts +13 -0
- package/features/pages/GetPageById/GetPageByIdRepository.js +29 -0
- package/features/pages/GetPageById/GetPageByIdRepository.js.map +1 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.d.ts +10 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.js +15 -0
- package/features/pages/GetPageById/GetPageByIdUseCase.js.map +1 -0
- package/features/pages/GetPageById/abstractions.d.ts +39 -0
- package/features/pages/GetPageById/abstractions.js +15 -0
- package/features/pages/GetPageById/abstractions.js.map +1 -0
- package/features/pages/GetPageById/feature.d.ts +1 -0
- package/features/pages/GetPageById/feature.js +12 -0
- package/features/pages/GetPageById/feature.js.map +1 -0
- package/features/pages/GetPageById/index.d.ts +1 -9
- package/features/pages/GetPageById/index.js +1 -14
- package/features/pages/GetPageById/index.js.map +1 -1
- package/features/pages/GetPageByPath/GetPageByPathRepository.d.ts +13 -0
- package/features/pages/GetPageByPath/GetPageByPathRepository.js +38 -0
- package/features/pages/GetPageByPath/GetPageByPathRepository.js.map +1 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.d.ts +10 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js +15 -0
- package/features/pages/GetPageByPath/GetPageByPathUseCase.js.map +1 -0
- package/features/pages/GetPageByPath/abstractions.d.ts +39 -0
- package/features/pages/GetPageByPath/abstractions.js +15 -0
- package/features/pages/GetPageByPath/abstractions.js.map +1 -0
- package/features/pages/GetPageByPath/feature.d.ts +1 -0
- package/features/pages/GetPageByPath/feature.js +12 -0
- package/features/pages/GetPageByPath/feature.js.map +1 -0
- package/features/pages/GetPageByPath/index.d.ts +1 -9
- package/features/pages/GetPageByPath/index.js +1 -14
- package/features/pages/GetPageByPath/index.js.map +1 -1
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.d.ts +13 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js +26 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsRepository.js.map +1 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.d.ts +10 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js +15 -0
- package/features/pages/GetPageRevisions/GetPageRevisionsUseCase.js.map +1 -0
- package/features/pages/GetPageRevisions/abstractions.d.ts +37 -0
- package/features/pages/GetPageRevisions/abstractions.js +15 -0
- package/features/pages/GetPageRevisions/abstractions.js.map +1 -0
- package/features/pages/GetPageRevisions/feature.d.ts +1 -0
- package/features/pages/GetPageRevisions/feature.js +12 -0
- package/features/pages/GetPageRevisions/feature.js.map +1 -0
- package/features/pages/GetPageRevisions/index.d.ts +1 -9
- package/features/pages/GetPageRevisions/index.js +1 -14
- package/features/pages/GetPageRevisions/index.js.map +1 -1
- package/features/pages/ListPages/ListPagesRepository.d.ts +13 -0
- package/features/pages/ListPages/ListPagesRepository.js +39 -0
- package/features/pages/ListPages/ListPagesRepository.js.map +1 -0
- package/features/pages/ListPages/ListPagesUseCase.d.ts +10 -0
- package/features/pages/ListPages/ListPagesUseCase.js +15 -0
- package/features/pages/ListPages/ListPagesUseCase.js.map +1 -0
- package/features/pages/ListPages/abstractions.d.ts +55 -0
- package/features/pages/ListPages/abstractions.js +15 -0
- package/features/pages/ListPages/abstractions.js.map +1 -0
- package/features/pages/ListPages/feature.d.ts +1 -0
- package/features/pages/ListPages/feature.js +12 -0
- package/features/pages/ListPages/feature.js.map +1 -0
- package/features/pages/ListPages/index.d.ts +1 -9
- package/features/pages/ListPages/index.js +1 -14
- package/features/pages/ListPages/index.js.map +1 -1
- package/features/pages/MovePage/MovePageRepository.d.ts +15 -0
- package/features/pages/MovePage/MovePageRepository.js +39 -0
- package/features/pages/MovePage/MovePageRepository.js.map +1 -0
- package/features/pages/MovePage/MovePageUseCase.d.ts +12 -0
- package/features/pages/MovePage/MovePageUseCase.js +49 -0
- package/features/pages/MovePage/MovePageUseCase.js.map +1 -0
- package/features/pages/MovePage/abstractions.d.ts +62 -0
- package/features/pages/MovePage/abstractions.js +30 -0
- package/features/pages/MovePage/abstractions.js.map +1 -0
- package/features/pages/MovePage/events.d.ts +10 -0
- package/features/pages/MovePage/events.js +19 -0
- package/features/pages/MovePage/events.js.map +1 -0
- package/features/pages/MovePage/feature.d.ts +1 -0
- package/features/pages/MovePage/feature.js +12 -0
- package/features/pages/MovePage/feature.js.map +1 -0
- package/features/pages/MovePage/index.d.ts +1 -16
- package/features/pages/MovePage/index.js +1 -16
- package/features/pages/MovePage/index.js.map +1 -1
- package/features/pages/PagePermissions/feature.d.ts +1 -0
- package/features/pages/PagePermissions/feature.js +53 -0
- package/features/pages/PagePermissions/feature.js.map +1 -0
- package/features/pages/PublishPage/PublishPageRepository.d.ts +15 -0
- package/features/pages/PublishPage/PublishPageRepository.js +41 -0
- package/features/pages/PublishPage/PublishPageRepository.js.map +1 -0
- package/features/pages/PublishPage/PublishPageUseCase.d.ts +12 -0
- package/features/pages/PublishPage/PublishPageUseCase.js +46 -0
- package/features/pages/PublishPage/PublishPageUseCase.js.map +1 -0
- package/features/pages/PublishPage/abstractions.d.ts +58 -0
- package/features/pages/PublishPage/abstractions.js +30 -0
- package/features/pages/PublishPage/abstractions.js.map +1 -0
- package/features/pages/PublishPage/events.d.ts +10 -0
- package/features/pages/PublishPage/events.js +19 -0
- package/features/pages/PublishPage/events.js.map +1 -0
- package/features/pages/PublishPage/feature.d.ts +1 -0
- package/features/pages/PublishPage/feature.js +12 -0
- package/features/pages/PublishPage/feature.js.map +1 -0
- package/features/pages/PublishPage/index.d.ts +1 -16
- package/features/pages/PublishPage/index.js +1 -16
- package/features/pages/PublishPage/index.js.map +1 -1
- package/features/pages/UnpublishPage/UnpublishPageRepository.d.ts +15 -0
- package/features/pages/UnpublishPage/UnpublishPageRepository.js +41 -0
- package/features/pages/UnpublishPage/UnpublishPageRepository.js.map +1 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.d.ts +14 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js +45 -0
- package/features/pages/UnpublishPage/UnpublishPageUseCase.js.map +1 -0
- package/features/pages/UnpublishPage/abstractions.d.ts +58 -0
- package/features/pages/UnpublishPage/abstractions.js +30 -0
- package/features/pages/UnpublishPage/abstractions.js.map +1 -0
- package/features/pages/UnpublishPage/events.d.ts +10 -0
- package/features/pages/UnpublishPage/events.js +19 -0
- package/features/pages/UnpublishPage/events.js.map +1 -0
- package/features/pages/UnpublishPage/feature.d.ts +1 -0
- package/features/pages/UnpublishPage/feature.js +12 -0
- package/features/pages/UnpublishPage/feature.js.map +1 -0
- package/features/pages/UnpublishPage/index.d.ts +1 -16
- package/features/pages/UnpublishPage/index.js +1 -16
- package/features/pages/UnpublishPage/index.js.map +1 -1
- package/features/pages/UpdatePage/UpdatePageRepository.d.ts +15 -0
- package/features/pages/UpdatePage/UpdatePageRepository.js +47 -0
- package/features/pages/UpdatePage/UpdatePageRepository.js.map +1 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.d.ts +14 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.js +54 -0
- package/features/pages/UpdatePage/UpdatePageUseCase.js.map +1 -0
- package/features/pages/UpdatePage/abstractions.d.ts +76 -0
- package/features/pages/UpdatePage/abstractions.js +30 -0
- package/features/pages/UpdatePage/abstractions.js.map +1 -0
- package/features/pages/UpdatePage/events.d.ts +10 -0
- package/features/pages/UpdatePage/events.js +19 -0
- package/features/pages/UpdatePage/events.js.map +1 -0
- package/features/pages/UpdatePage/feature.d.ts +1 -0
- package/features/pages/UpdatePage/feature.js +12 -0
- package/features/pages/UpdatePage/feature.js.map +1 -0
- package/features/pages/UpdatePage/index.d.ts +1 -16
- package/features/pages/UpdatePage/index.js +1 -16
- package/features/pages/UpdatePage/index.js.map +1 -1
- package/features/redirects/CreateRedirect/CreateRedirectRepository.d.ts +13 -0
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js +32 -0
- package/features/redirects/CreateRedirect/CreateRedirectRepository.js.map +1 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.d.ts +10 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js +37 -0
- package/features/redirects/CreateRedirect/CreateRedirectUseCase.js.map +1 -0
- package/features/redirects/CreateRedirect/abstractions.d.ts +57 -0
- package/features/redirects/CreateRedirect/abstractions.js +30 -0
- package/features/redirects/CreateRedirect/abstractions.js.map +1 -0
- package/features/redirects/CreateRedirect/events.d.ts +10 -0
- package/features/redirects/CreateRedirect/events.js +19 -0
- package/features/redirects/CreateRedirect/events.js.map +1 -0
- package/features/redirects/CreateRedirect/feature.d.ts +1 -0
- package/features/redirects/CreateRedirect/feature.js +12 -0
- package/features/redirects/CreateRedirect/feature.js.map +1 -0
- package/features/redirects/CreateRedirect/index.d.ts +1 -15
- package/features/redirects/CreateRedirect/index.js +1 -16
- package/features/redirects/CreateRedirect/index.js.map +1 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.d.ts +13 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js +27 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectRepository.js.map +1 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.d.ts +12 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js +46 -0
- package/features/redirects/DeleteRedirect/DeleteRedirectUseCase.js.map +1 -0
- package/features/redirects/DeleteRedirect/abstractions.d.ts +57 -0
- package/features/redirects/DeleteRedirect/abstractions.js +30 -0
- package/features/redirects/DeleteRedirect/abstractions.js.map +1 -0
- package/features/redirects/DeleteRedirect/events.d.ts +10 -0
- package/features/redirects/DeleteRedirect/events.js +19 -0
- package/features/redirects/DeleteRedirect/events.js.map +1 -0
- package/features/redirects/DeleteRedirect/feature.d.ts +1 -0
- package/features/redirects/DeleteRedirect/feature.js +12 -0
- package/features/redirects/DeleteRedirect/feature.js.map +1 -0
- package/features/redirects/DeleteRedirect/index.d.ts +1 -16
- package/features/redirects/DeleteRedirect/index.js +1 -16
- package/features/redirects/DeleteRedirect/index.js.map +1 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.d.ts +11 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js +30 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsRepository.js.map +1 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.d.ts +8 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js +17 -0
- package/features/redirects/GetActiveRedirects/GetActiveRedirectsUseCase.js.map +1 -0
- package/features/redirects/GetActiveRedirects/abstractions.d.ts +38 -0
- package/features/redirects/GetActiveRedirects/abstractions.js +15 -0
- package/features/redirects/GetActiveRedirects/abstractions.js.map +1 -0
- package/features/redirects/GetActiveRedirects/feature.d.ts +1 -0
- package/features/redirects/GetActiveRedirects/feature.js +12 -0
- package/features/redirects/GetActiveRedirects/feature.js.map +1 -0
- package/features/redirects/GetActiveRedirects/index.d.ts +1 -7
- package/features/redirects/GetActiveRedirects/index.js +1 -11
- package/features/redirects/GetActiveRedirects/index.js.map +1 -1
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.d.ts +13 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js +29 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdRepository.js.map +1 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.d.ts +8 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js +17 -0
- package/features/redirects/GetRedirectById/GetRedirectByIdUseCase.js.map +1 -0
- package/features/redirects/GetRedirectById/abstractions.d.ts +40 -0
- package/features/redirects/GetRedirectById/abstractions.js +15 -0
- package/features/redirects/GetRedirectById/abstractions.js.map +1 -0
- package/features/redirects/GetRedirectById/feature.d.ts +1 -0
- package/features/redirects/GetRedirectById/feature.js +12 -0
- package/features/redirects/GetRedirectById/feature.js.map +1 -0
- package/features/redirects/GetRedirectById/index.d.ts +1 -9
- package/features/redirects/GetRedirectById/index.js +1 -14
- package/features/redirects/GetRedirectById/index.js.map +1 -1
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.d.ts +12 -0
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js +28 -0
- package/features/redirects/InvalidateRedirectsCache/InvalidateRedirectsCacheUseCase.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js +25 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterCreateHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js +25 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterDeleteHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.d.ts +9 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js +26 -0
- package/features/redirects/InvalidateRedirectsCache/RedirectAfterUpdateHandler.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.d.ts +15 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js +9 -0
- package/features/redirects/InvalidateRedirectsCache/abstractions.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/feature.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/feature.js +16 -0
- package/features/redirects/InvalidateRedirectsCache/feature.js.map +1 -0
- package/features/redirects/InvalidateRedirectsCache/index.d.ts +1 -0
- package/features/redirects/InvalidateRedirectsCache/index.js +3 -0
- package/features/redirects/InvalidateRedirectsCache/index.js.map +1 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.d.ts +16 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.js +46 -0
- package/features/redirects/ListRedirects/ListRedirectsRepository.js.map +1 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.d.ts +8 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js +17 -0
- package/features/redirects/ListRedirects/ListRedirectsUseCase.js.map +1 -0
- package/features/redirects/ListRedirects/abstractions.d.ts +67 -0
- package/features/redirects/ListRedirects/abstractions.js +19 -0
- package/features/redirects/ListRedirects/abstractions.js.map +1 -0
- package/features/redirects/ListRedirects/feature.d.ts +1 -0
- package/features/redirects/ListRedirects/feature.js +12 -0
- package/features/redirects/ListRedirects/feature.js.map +1 -0
- package/features/redirects/ListRedirects/index.d.ts +1 -9
- package/features/redirects/ListRedirects/index.js +1 -14
- package/features/redirects/ListRedirects/index.js.map +1 -1
- package/features/redirects/MoveRedirect/MoveRedirectRepository.d.ts +15 -0
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js +39 -0
- package/features/redirects/MoveRedirect/MoveRedirectRepository.js.map +1 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.d.ts +12 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js +49 -0
- package/features/redirects/MoveRedirect/MoveRedirectUseCase.js.map +1 -0
- package/features/redirects/MoveRedirect/abstractions.d.ts +63 -0
- package/features/redirects/MoveRedirect/abstractions.js +30 -0
- package/features/redirects/MoveRedirect/abstractions.js.map +1 -0
- package/features/redirects/MoveRedirect/events.d.ts +10 -0
- package/features/redirects/MoveRedirect/events.js +19 -0
- package/features/redirects/MoveRedirect/events.js.map +1 -0
- package/features/redirects/MoveRedirect/feature.d.ts +1 -0
- package/features/redirects/MoveRedirect/feature.js +12 -0
- package/features/redirects/MoveRedirect/feature.js.map +1 -0
- package/features/redirects/MoveRedirect/index.d.ts +1 -16
- package/features/redirects/MoveRedirect/index.js +1 -16
- package/features/redirects/MoveRedirect/index.js.map +1 -1
- package/features/redirects/RedirectPermissions/feature.d.ts +1 -0
- package/features/redirects/RedirectPermissions/feature.js +45 -0
- package/features/redirects/RedirectPermissions/feature.js.map +1 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.d.ts +15 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js +47 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectRepository.js.map +1 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.d.ts +14 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js +54 -0
- package/features/redirects/UpdateRedirect/UpdateRedirectUseCase.js.map +1 -0
- package/features/redirects/UpdateRedirect/abstractions.d.ts +75 -0
- package/features/redirects/UpdateRedirect/abstractions.js +30 -0
- package/features/redirects/UpdateRedirect/abstractions.js.map +1 -0
- package/features/redirects/UpdateRedirect/events.d.ts +10 -0
- package/features/redirects/UpdateRedirect/events.js +19 -0
- package/features/redirects/UpdateRedirect/events.js.map +1 -0
- package/features/redirects/UpdateRedirect/feature.d.ts +1 -0
- package/features/redirects/UpdateRedirect/feature.js +12 -0
- package/features/redirects/UpdateRedirect/feature.js.map +1 -0
- package/features/redirects/UpdateRedirect/index.d.ts +1 -16
- package/features/redirects/UpdateRedirect/index.js +1 -16
- package/features/redirects/UpdateRedirect/index.js.map +1 -1
- package/features/tenantManager/TenantModelExtension.d.ts +8 -0
- package/features/tenantManager/TenantModelExtension.js +36 -0
- package/features/tenantManager/TenantModelExtension.js.map +1 -0
- package/features/tenantManager/feature.d.ts +1 -0
- package/features/tenantManager/feature.js +10 -0
- package/features/tenantManager/feature.js.map +1 -0
- package/graphql/createGraphQL.d.ts +1 -1
- package/graphql/createGraphQL.js +6 -13
- package/graphql/createGraphQL.js.map +1 -1
- package/graphql/nextjs/NextjsGraphQLSchema.d.ts +9 -0
- package/graphql/nextjs/NextjsGraphQLSchema.js +48 -0
- package/graphql/nextjs/NextjsGraphQLSchema.js.map +1 -0
- package/graphql/pages/pages.gql.d.ts +2 -2
- package/graphql/pages/pages.gql.js +164 -85
- package/graphql/pages/pages.gql.js.map +1 -1
- package/graphql/pages/pages.typeDefs.d.ts +1 -1
- package/graphql/pages/pages.typeDefs.js +4 -10
- package/graphql/pages/pages.typeDefs.js.map +1 -1
- package/graphql/redirects/redirects.gql.d.ts +2 -2
- package/graphql/redirects/redirects.gql.js +61 -51
- package/graphql/redirects/redirects.gql.js.map +1 -1
- package/graphql/redirects/redirects.typeDefs.js +5 -24
- package/graphql/redirects/redirects.typeDefs.js.map +1 -1
- package/index.d.ts +1 -3
- package/index.js +81 -13
- package/index.js.map +1 -1
- package/package.json +25 -31
- package/{graphql/redirects/ActiveRedirectGqlDto.d.ts → rest/ActiveRedirectDto.d.ts} +1 -1
- package/rest/ActiveRedirectDto.js +3 -0
- package/rest/ActiveRedirectDto.js.map +1 -0
- package/rest/ActiveRedirectRestMapper.d.ts +5 -0
- package/rest/ActiveRedirectRestMapper.js +12 -0
- package/rest/ActiveRedirectRestMapper.js.map +1 -0
- package/rest/getRedirects.d.ts +2 -0
- package/rest/getRedirects.js +33 -0
- package/rest/getRedirects.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +6 -2
- package/utils/ensureAuthentication.js +10 -12
- package/utils/ensureAuthentication.js.map +1 -1
- package/utils/resolve.d.ts +2 -3
- package/utils/resolve.js +4 -20
- package/utils/resolve.js.map +1 -1
- package/context/BaseContext.d.ts +0 -11
- package/context/BaseContext.js +0 -41
- package/context/BaseContext.js.map +0 -1
- package/context/WebsiteBuilder.d.ts +0 -13
- package/context/WebsiteBuilder.js +0 -35
- package/context/WebsiteBuilder.js.map +0 -1
- package/context/pages/PagesStorage.d.ts +0 -33
- package/context/pages/PagesStorage.js +0 -123
- package/context/pages/PagesStorage.js.map +0 -1
- package/context/pages/pages.context.d.ts +0 -11
- package/context/pages/pages.context.js +0 -82
- package/context/pages/pages.context.js.map +0 -1
- package/context/pages/pages.crud.d.ts +0 -3
- package/context/pages/pages.crud.js +0 -208
- package/context/pages/pages.crud.js.map +0 -1
- package/context/pages/pages.types.d.ts +0 -247
- package/context/pages/pages.types.js +0 -7
- package/context/pages/pages.types.js.map +0 -1
- package/context/redirects/RedirectsStorage.d.ts +0 -21
- package/context/redirects/RedirectsStorage.js +0 -88
- package/context/redirects/RedirectsStorage.js.map +0 -1
- package/context/redirects/redirects.context.d.ts +0 -11
- package/context/redirects/redirects.context.js +0 -80
- package/context/redirects/redirects.context.js.map +0 -1
- package/context/redirects/redirects.crud.d.ts +0 -3
- package/context/redirects/redirects.crud.js +0 -116
- package/context/redirects/redirects.crud.js.map +0 -1
- package/context/redirects/redirects.types.d.ts +0 -147
- package/context/redirects/redirects.types.js +0 -7
- package/context/redirects/redirects.types.js.map +0 -1
- package/context/types.d.ts +0 -28
- package/context/types.js +0 -7
- package/context/types.js.map +0 -1
- package/features/pages/CreatePage/CreatePage.d.ts +0 -7
- package/features/pages/CreatePage/CreatePage.js +0 -19
- package/features/pages/CreatePage/CreatePage.js.map +0 -1
- package/features/pages/CreatePage/CreatePageWithEvents.d.ts +0 -9
- package/features/pages/CreatePage/CreatePageWithEvents.js +0 -25
- package/features/pages/CreatePage/CreatePageWithEvents.js.map +0 -1
- package/features/pages/CreatePage/ICreatePage.d.ts +0 -4
- package/features/pages/CreatePage/ICreatePage.js +0 -7
- package/features/pages/CreatePage/ICreatePage.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.d.ts +0 -7
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.js +0 -17
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFrom.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.d.ts +0 -10
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js +0 -32
- package/features/pages/CreatePageRevisionFrom/CreatePageRevisionFromWithEvents.js.map +0 -1
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.d.ts +0 -4
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.js +0 -7
- package/features/pages/CreatePageRevisionFrom/ICreatePageRevisionFrom.js.map +0 -1
- package/features/pages/DeletePage/DeletePage.d.ts +0 -7
- package/features/pages/DeletePage/DeletePage.js +0 -17
- package/features/pages/DeletePage/DeletePage.js.map +0 -1
- package/features/pages/DeletePage/DeletePageWithEvents.d.ts +0 -10
- package/features/pages/DeletePage/DeletePageWithEvents.js +0 -30
- package/features/pages/DeletePage/DeletePageWithEvents.js.map +0 -1
- package/features/pages/DeletePage/IDeletePage.d.ts +0 -4
- package/features/pages/DeletePage/IDeletePage.js +0 -7
- package/features/pages/DeletePage/IDeletePage.js.map +0 -1
- package/features/pages/DuplicatePage/DuplicatePage.d.ts +0 -9
- package/features/pages/DuplicatePage/DuplicatePage.js +0 -39
- package/features/pages/DuplicatePage/DuplicatePage.js.map +0 -1
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.d.ts +0 -10
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.js +0 -32
- package/features/pages/DuplicatePage/DuplicatePageWithEvents.js.map +0 -1
- package/features/pages/DuplicatePage/IDuplicatePage.d.ts +0 -4
- package/features/pages/DuplicatePage/IDuplicatePage.js +0 -7
- package/features/pages/DuplicatePage/IDuplicatePage.js.map +0 -1
- package/features/pages/GetPageById/GetPageById.d.ts +0 -7
- package/features/pages/GetPageById/GetPageById.js +0 -17
- package/features/pages/GetPageById/GetPageById.js.map +0 -1
- package/features/pages/GetPageById/IGetPageById.d.ts +0 -4
- package/features/pages/GetPageById/IGetPageById.js +0 -7
- package/features/pages/GetPageById/IGetPageById.js.map +0 -1
- package/features/pages/GetPageByPath/GetPageByPath.d.ts +0 -11
- package/features/pages/GetPageByPath/GetPageByPath.js +0 -28
- package/features/pages/GetPageByPath/GetPageByPath.js.map +0 -1
- package/features/pages/GetPageByPath/IGetPageByPath.d.ts +0 -4
- package/features/pages/GetPageByPath/IGetPageByPath.js +0 -7
- package/features/pages/GetPageByPath/IGetPageByPath.js.map +0 -1
- package/features/pages/GetPageRevisions/GetPageRevisions.d.ts +0 -7
- package/features/pages/GetPageRevisions/GetPageRevisions.js +0 -17
- package/features/pages/GetPageRevisions/GetPageRevisions.js.map +0 -1
- package/features/pages/GetPageRevisions/IGetPageById.d.ts +0 -4
- package/features/pages/GetPageRevisions/IGetPageById.js +0 -7
- package/features/pages/GetPageRevisions/IGetPageById.js.map +0 -1
- package/features/pages/ListPages/IListPages.d.ts +0 -17
- package/features/pages/ListPages/IListPages.js +0 -7
- package/features/pages/ListPages/IListPages.js.map +0 -1
- package/features/pages/ListPages/ListPages.d.ts +0 -7
- package/features/pages/ListPages/ListPages.js +0 -17
- package/features/pages/ListPages/ListPages.js.map +0 -1
- package/features/pages/MovePage/IMovePage.d.ts +0 -4
- package/features/pages/MovePage/IMovePage.js +0 -7
- package/features/pages/MovePage/IMovePage.js.map +0 -1
- package/features/pages/MovePage/MovePage.d.ts +0 -7
- package/features/pages/MovePage/MovePage.js +0 -17
- package/features/pages/MovePage/MovePage.js.map +0 -1
- package/features/pages/MovePage/MovePageWithEvents.d.ts +0 -10
- package/features/pages/MovePage/MovePageWithEvents.js +0 -32
- package/features/pages/MovePage/MovePageWithEvents.js.map +0 -1
- package/features/pages/PublishPage/IPublishPage.d.ts +0 -4
- package/features/pages/PublishPage/IPublishPage.js +0 -7
- package/features/pages/PublishPage/IPublishPage.js.map +0 -1
- package/features/pages/PublishPage/PublishPage.d.ts +0 -7
- package/features/pages/PublishPage/PublishPage.js +0 -17
- package/features/pages/PublishPage/PublishPage.js.map +0 -1
- package/features/pages/PublishPage/PublishPageWithEvents.d.ts +0 -10
- package/features/pages/PublishPage/PublishPageWithEvents.js +0 -31
- package/features/pages/PublishPage/PublishPageWithEvents.js.map +0 -1
- package/features/pages/UnpublishPage/IUnpublishPage.d.ts +0 -4
- package/features/pages/UnpublishPage/IUnpublishPage.js +0 -7
- package/features/pages/UnpublishPage/IUnpublishPage.js.map +0 -1
- package/features/pages/UnpublishPage/UnpublishPage.d.ts +0 -7
- package/features/pages/UnpublishPage/UnpublishPage.js +0 -17
- package/features/pages/UnpublishPage/UnpublishPage.js.map +0 -1
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.d.ts +0 -10
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.js +0 -31
- package/features/pages/UnpublishPage/UnpublishPageWithEvents.js.map +0 -1
- package/features/pages/UpdatePage/IUpdatePage.d.ts +0 -4
- package/features/pages/UpdatePage/IUpdatePage.js +0 -7
- package/features/pages/UpdatePage/IUpdatePage.js.map +0 -1
- package/features/pages/UpdatePage/UpdatePage.d.ts +0 -7
- package/features/pages/UpdatePage/UpdatePage.js +0 -20
- package/features/pages/UpdatePage/UpdatePage.js.map +0 -1
- package/features/pages/UpdatePage/UpdatePageWithEvents.d.ts +0 -10
- package/features/pages/UpdatePage/UpdatePageWithEvents.js +0 -40
- package/features/pages/UpdatePage/UpdatePageWithEvents.js.map +0 -1
- package/features/pages/index.d.ts +0 -9
- package/features/pages/index.js +0 -106
- package/features/pages/index.js.map +0 -1
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.d.ts +0 -9
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.js +0 -25
- package/features/redirects/CreateRedirect/CreateRedirectWithEvents.js.map +0 -1
- package/features/redirects/CreateRedirect/CreateRevision.d.ts +0 -7
- package/features/redirects/CreateRedirect/CreateRevision.js +0 -19
- package/features/redirects/CreateRedirect/CreateRevision.js.map +0 -1
- package/features/redirects/CreateRedirect/ICreateRedirect.d.ts +0 -4
- package/features/redirects/CreateRedirect/ICreateRedirect.js +0 -7
- package/features/redirects/CreateRedirect/ICreateRedirect.js.map +0 -1
- package/features/redirects/DeleteRedirect/DeleteRedirect.d.ts +0 -7
- package/features/redirects/DeleteRedirect/DeleteRedirect.js +0 -17
- package/features/redirects/DeleteRedirect/DeleteRedirect.js.map +0 -1
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.d.ts +0 -10
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.js +0 -30
- package/features/redirects/DeleteRedirect/DeleteRedirectWithEvents.js.map +0 -1
- package/features/redirects/DeleteRedirect/IDeleteRedirect.d.ts +0 -4
- package/features/redirects/DeleteRedirect/IDeleteRedirect.js +0 -7
- package/features/redirects/DeleteRedirect/IDeleteRedirect.js.map +0 -1
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.d.ts +0 -7
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.js +0 -26
- package/features/redirects/GetActiveRedirects/GetActiveRedirects.js.map +0 -1
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.d.ts +0 -4
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.js +0 -7
- package/features/redirects/GetActiveRedirects/IGetActiveRedirects.js.map +0 -1
- package/features/redirects/GetRedirectById/GetRedirectById.d.ts +0 -7
- package/features/redirects/GetRedirectById/GetRedirectById.js +0 -17
- package/features/redirects/GetRedirectById/GetRedirectById.js.map +0 -1
- package/features/redirects/GetRedirectById/IGetRedirectById.d.ts +0 -4
- package/features/redirects/GetRedirectById/IGetRedirectById.js +0 -7
- package/features/redirects/GetRedirectById/IGetRedirectById.js.map +0 -1
- package/features/redirects/ListRedirects/IListRedirects.d.ts +0 -17
- package/features/redirects/ListRedirects/IListRedirects.js +0 -7
- package/features/redirects/ListRedirects/IListRedirects.js.map +0 -1
- package/features/redirects/ListRedirects/ListRedirects.d.ts +0 -7
- package/features/redirects/ListRedirects/ListRedirects.js +0 -17
- package/features/redirects/ListRedirects/ListRedirects.js.map +0 -1
- package/features/redirects/MoveRedirect/IMoveRedirect.d.ts +0 -4
- package/features/redirects/MoveRedirect/IMoveRedirect.js +0 -7
- package/features/redirects/MoveRedirect/IMoveRedirect.js.map +0 -1
- package/features/redirects/MoveRedirect/MoveRedirect.d.ts +0 -7
- package/features/redirects/MoveRedirect/MoveRedirect.js +0 -17
- package/features/redirects/MoveRedirect/MoveRedirect.js.map +0 -1
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.d.ts +0 -10
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.js +0 -32
- package/features/redirects/MoveRedirect/MoveRedirectWithEvents.js.map +0 -1
- package/features/redirects/UpdateRedirect/IUpdateRedirect.d.ts +0 -4
- package/features/redirects/UpdateRedirect/IUpdateRedirect.js +0 -7
- package/features/redirects/UpdateRedirect/IUpdateRedirect.js.map +0 -1
- package/features/redirects/UpdateRedirect/UpdateRedirect.d.ts +0 -7
- package/features/redirects/UpdateRedirect/UpdateRedirect.js +0 -20
- package/features/redirects/UpdateRedirect/UpdateRedirect.js.map +0 -1
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.d.ts +0 -10
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.js +0 -40
- package/features/redirects/UpdateRedirect/UpdateRedirectWithEvents.js.map +0 -1
- package/features/redirects/index.d.ts +0 -6
- package/features/redirects/index.js +0 -73
- package/features/redirects/index.js.map +0 -1
- package/graphql/redirects/ActiveRedirectGqlDto.js +0 -7
- package/graphql/redirects/ActiveRedirectGqlDto.js.map +0 -1
- package/graphql/redirects/ActiveRedirectGqlMapper.d.ts +0 -5
- package/graphql/redirects/ActiveRedirectGqlMapper.js +0 -19
- package/graphql/redirects/ActiveRedirectGqlMapper.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from "./abstractions.js";
|
|
4
|
+
import { PageBeforeMoveEvent, PageAfterMoveEvent } from "./events.js";
|
|
5
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
class MovePageUseCaseImpl {
|
|
7
|
+
constructor(eventPublisher, getPageById, repository) {
|
|
8
|
+
this.eventPublisher = eventPublisher;
|
|
9
|
+
this.getPageById = getPageById;
|
|
10
|
+
this.repository = repository;
|
|
11
|
+
}
|
|
12
|
+
async execute(params) {
|
|
13
|
+
// Get the original page for events
|
|
14
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
15
|
+
if (getResult.isFail()) {
|
|
16
|
+
return getResult;
|
|
17
|
+
}
|
|
18
|
+
const original = getResult.value;
|
|
19
|
+
|
|
20
|
+
// Publish before move event
|
|
21
|
+
const beforeEvent = new PageBeforeMoveEvent({
|
|
22
|
+
original,
|
|
23
|
+
input: params
|
|
24
|
+
});
|
|
25
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
26
|
+
|
|
27
|
+
// Execute the move operation
|
|
28
|
+
const result = await this.repository.execute(params);
|
|
29
|
+
if (result.isFail()) {
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Publish after move event
|
|
34
|
+
const afterEvent = new PageAfterMoveEvent({
|
|
35
|
+
original,
|
|
36
|
+
input: params,
|
|
37
|
+
page: result.value
|
|
38
|
+
});
|
|
39
|
+
await this.eventPublisher.publish(afterEvent);
|
|
40
|
+
return Result.ok(result.value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export const MovePageUseCase = createImplementation({
|
|
44
|
+
abstraction: UseCaseAbstraction,
|
|
45
|
+
implementation: MovePageUseCaseImpl,
|
|
46
|
+
dependencies: [EventPublisher, GetPageByIdUseCase, MovePageRepository]
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=MovePageUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","createImplementation","EventPublisher","MovePageUseCase","UseCaseAbstraction","MovePageRepository","PageBeforeMoveEvent","PageAfterMoveEvent","GetPageByIdUseCase","MovePageUseCaseImpl","constructor","eventPublisher","getPageById","repository","execute","params","getResult","id","isFail","original","value","beforeEvent","input","publish","result","afterEvent","page","ok","abstraction","implementation","dependencies"],"sources":["MovePageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { MovePageUseCase as UseCaseAbstraction, MovePageRepository } from \"./abstractions.js\";\nimport { PageBeforeMoveEvent, PageAfterMoveEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\n\nclass MovePageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: MovePageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the original page for events\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const original = getResult.value;\n\n // Publish before move event\n const beforeEvent = new PageBeforeMoveEvent({\n original,\n input: params\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the move operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after move event\n const afterEvent = new PageAfterMoveEvent({\n original,\n input: params,\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const MovePageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: MovePageUseCaseImpl,\n dependencies: [EventPublisher, GetPageByIdUseCase, MovePageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,eAAe,IAAIC,kBAAkB,EAAEC,kBAAkB;AAClE,SAASC,mBAAmB,EAAEC,kBAAkB;AAChD,SAASC,kBAAkB;AAE3B,MAAMC,mBAAmB,CAAyC;EAC9DC,WAAWA,CACCC,cAAmD,EACnDC,WAAyC,EACzCC,UAAwC,EAClD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAAwC,GAAxCA,UAAwC;EACjD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,QAAQ,GAAGH,SAAS,CAACI,KAAK;;IAEhC;IACA,MAAMC,WAAW,GAAG,IAAIf,mBAAmB,CAAC;MACxCa,QAAQ;MACRG,KAAK,EAAEP;IACX,CAAC,CAAC;IAEF,MAAM,IAAI,CAACJ,cAAc,CAACY,OAAO,CAACF,WAAW,CAAC;;IAE9C;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIS,MAAM,CAACN,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOM,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIlB,kBAAkB,CAAC;MACtCY,QAAQ;MACRG,KAAK,EAAEP,MAAM;MACbW,IAAI,EAAEF,MAAM,CAACJ;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACT,cAAc,CAACY,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOzB,MAAM,CAAC2B,EAAE,CAACH,MAAM,CAACJ,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMjB,eAAe,GAAGF,oBAAoB,CAAC;EAChD2B,WAAW,EAAExB,kBAAkB;EAC/ByB,cAAc,EAAEpB,mBAAmB;EACnCqB,YAAY,EAAE,CAAC5B,cAAc,EAAEM,kBAAkB,EAAEH,kBAAkB;AACzE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
6
|
+
export interface IMoveWbPageParams {
|
|
7
|
+
id: string;
|
|
8
|
+
folderId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IMovePageRepository {
|
|
11
|
+
execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;
|
|
12
|
+
}
|
|
13
|
+
export interface IMovePageRepositoryErrors {
|
|
14
|
+
notFound: PageNotFoundError;
|
|
15
|
+
persistence: PagePersistenceError;
|
|
16
|
+
}
|
|
17
|
+
type RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];
|
|
18
|
+
export declare const MovePageRepository: import("@webiny/di").Abstraction<IMovePageRepository>;
|
|
19
|
+
export declare namespace MovePageRepository {
|
|
20
|
+
type Interface = IMovePageRepository;
|
|
21
|
+
type Params = IMoveWbPageParams;
|
|
22
|
+
type Return = Promise<Result<WbPage, RepositoryError>>;
|
|
23
|
+
type Error = RepositoryError;
|
|
24
|
+
}
|
|
25
|
+
export interface IMovePageUseCase {
|
|
26
|
+
execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;
|
|
27
|
+
}
|
|
28
|
+
export interface IMovePageUseCaseErrors {
|
|
29
|
+
notFound: PageNotFoundError;
|
|
30
|
+
persistence: PagePersistenceError;
|
|
31
|
+
}
|
|
32
|
+
type UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];
|
|
33
|
+
export declare const MovePageUseCase: import("@webiny/di").Abstraction<IMovePageUseCase>;
|
|
34
|
+
export declare namespace MovePageUseCase {
|
|
35
|
+
type Interface = IMovePageUseCase;
|
|
36
|
+
type Params = IMoveWbPageParams;
|
|
37
|
+
type Return = Promise<Result<WbPage, UseCaseError>>;
|
|
38
|
+
type Error = UseCaseError;
|
|
39
|
+
type Page = WbPage;
|
|
40
|
+
}
|
|
41
|
+
export interface PageBeforeMovePayload {
|
|
42
|
+
original: WbPage;
|
|
43
|
+
input: IMoveWbPageParams;
|
|
44
|
+
}
|
|
45
|
+
export interface PageAfterMovePayload {
|
|
46
|
+
original: WbPage;
|
|
47
|
+
input: IMoveWbPageParams;
|
|
48
|
+
page: WbPage;
|
|
49
|
+
}
|
|
50
|
+
export declare const PageBeforeMoveHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforeMovePayload>>>;
|
|
51
|
+
export declare namespace PageBeforeMoveHandler {
|
|
52
|
+
type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;
|
|
53
|
+
type Event = DomainEvent<PageBeforeMovePayload>;
|
|
54
|
+
type Page = WbPage;
|
|
55
|
+
}
|
|
56
|
+
export declare const PageAfterMoveHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterMovePayload>>>;
|
|
57
|
+
export declare namespace PageAfterMoveHandler {
|
|
58
|
+
type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;
|
|
59
|
+
type Event = DomainEvent<PageAfterMovePayload>;
|
|
60
|
+
type Page = WbPage;
|
|
61
|
+
}
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Type Definitions
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Repository Abstraction
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const MovePageRepository = createAbstraction("Wb/MovePageRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const MovePageUseCase = createAbstraction("Wb/MovePageUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforeMoveHandler = createAbstraction("Wb/PageBeforeMoveHandler");
|
|
28
|
+
export const PageAfterMoveHandler = createAbstraction("Wb/PageAfterMoveHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","MovePageRepository","MovePageUseCase","PageBeforeMoveHandler","PageAfterMoveHandler"],"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 { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IMoveWbPageParams {\n id: string;\n folderId: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IMovePageRepository {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IMovePageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IMovePageRepositoryErrors[keyof IMovePageRepositoryErrors];\n\nexport const MovePageRepository = createAbstraction<IMovePageRepository>(\"Wb/MovePageRepository\");\n\nexport namespace MovePageRepository {\n export type Interface = IMovePageRepository;\n export type Params = IMoveWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IMovePageUseCase {\n execute(params: IMoveWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IMovePageUseCaseErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IMovePageUseCaseErrors[keyof IMovePageUseCaseErrors];\n\nexport const MovePageUseCase = createAbstraction<IMovePageUseCase>(\"Wb/MovePageUseCase\");\n\nexport namespace MovePageUseCase {\n export type Interface = IMovePageUseCase;\n export type Params = IMoveWbPageParams;\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 PageBeforeMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n}\n\nexport interface PageAfterMovePayload {\n original: WbPage;\n input: IMoveWbPageParams;\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforeMoveHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforeMovePayload>>\n>(\"Wb/PageBeforeMoveHandler\");\n\nexport namespace PageBeforeMoveHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforeMovePayload>>;\n export type Event = DomainEvent<PageBeforeMovePayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterMoveHandler =\n createAbstraction<IEventHandler<DomainEvent<PageAfterMovePayload>>>(\"Wb/PageAfterMoveHandler\");\n\nexport namespace PageAfterMoveHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterMovePayload>>;\n export type Event = DomainEvent<PageAfterMovePayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAMpE;AACA;AACA;;AAOA;AACA;AACA;;AAaA,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,uBAAuB,CAAC;;AASjG;AACA;AACA;;AAaA,OAAO,MAAME,eAAe,GAAGF,iBAAiB,CAAmB,oBAAoB,CAAC;;AAUxF;AACA;AACA;;AAaA;AACA;AACA;;AAEA,OAAO,MAAMG,qBAAqB,GAAGH,iBAAiB,CAEpD,0BAA0B,CAAC;AAQ7B,OAAO,MAAMI,oBAAoB,GAC7BJ,iBAAiB,CAAmD,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import type { PageBeforeMovePayload, PageAfterMovePayload } from "./abstractions.js";
|
|
3
|
+
export declare class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {
|
|
4
|
+
eventType: "page.beforeMove";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforeMovePayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {
|
|
8
|
+
eventType: "page.afterMove";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterMovePayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { PageBeforeMoveHandler, PageAfterMoveHandler } from "./abstractions.js";
|
|
3
|
+
// PageBeforeMove Event
|
|
4
|
+
export class PageBeforeMoveEvent extends DomainEvent {
|
|
5
|
+
eventType = "page.beforeMove";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return PageBeforeMoveHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// PageAfterMove Event
|
|
12
|
+
export class PageAfterMoveEvent extends DomainEvent {
|
|
13
|
+
eventType = "page.afterMove";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return PageAfterMoveHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DomainEvent","PageBeforeMoveHandler","PageAfterMoveHandler","PageBeforeMoveEvent","eventType","getHandlerAbstraction","PageAfterMoveEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { PageBeforeMoveHandler, PageAfterMoveHandler } from \"./abstractions.js\";\nimport type { PageBeforeMovePayload, PageAfterMovePayload } from \"./abstractions.js\";\n\n// PageBeforeMove Event\nexport class PageBeforeMoveEvent extends DomainEvent<PageBeforeMovePayload> {\n eventType = \"page.beforeMove\" as const;\n\n getHandlerAbstraction() {\n return PageBeforeMoveHandler;\n }\n}\n\n// PageAfterMove Event\nexport class PageAfterMoveEvent extends DomainEvent<PageAfterMovePayload> {\n eventType = \"page.afterMove\" as const;\n\n getHandlerAbstraction() {\n return PageAfterMoveHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,qBAAqB,EAAEC,oBAAoB;AAGpD;AACA,OAAO,MAAMC,mBAAmB,SAASH,WAAW,CAAwB;EACxEI,SAAS,GAAG,iBAAiB;EAE7BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,qBAAqB;EAChC;AACJ;;AAEA;AACA,OAAO,MAAMK,kBAAkB,SAASN,WAAW,CAAuB;EACtEI,SAAS,GAAG,gBAAgB;EAE5BC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,oBAAoB;EAC/B;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MovePageFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { MovePageRepository } from "./MovePageRepository.js";
|
|
3
|
+
import { MovePageUseCase } from "./MovePageUseCase.js";
|
|
4
|
+
export const MovePageFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/MovePage",
|
|
6
|
+
register(container) {
|
|
7
|
+
container.register(MovePageRepository).inSingletonScope();
|
|
8
|
+
container.register(MovePageUseCase);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","MovePageRepository","MovePageUseCase","MovePageFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MovePageRepository } from \"./MovePageRepository.js\";\nimport { MovePageUseCase } from \"./MovePageUseCase.js\";\n\nexport const MovePageFeature = createFeature({\n name: \"WebsiteBuilder/MovePage\",\n register(container) {\n container.register(MovePageRepository).inSingletonScope();\n container.register(MovePageUseCase);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AAExB,OAAO,MAAMC,eAAe,GAAGH,aAAa,CAAC;EACzCI,IAAI,EAAE,yBAAyB;EAC/BC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACJ,kBAAkB,CAAC,CAACM,gBAAgB,CAAC,CAAC;IACzDD,SAAS,CAACD,QAAQ,CAACH,eAAe,CAAC;EACvC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { MovePageWithEvents } from "./MovePageWithEvents";
|
|
3
|
-
import type { OnPageAfterMoveTopicParams, OnPageBeforeMoveTopicParams, WbPagesStorageOperations } from "../../../context/pages/pages.types";
|
|
4
|
-
export interface MovePageUseCasesTopics {
|
|
5
|
-
onPageBeforeMove: Topic<OnPageBeforeMoveTopicParams>;
|
|
6
|
-
onPageAfterMove: Topic<OnPageAfterMoveTopicParams>;
|
|
7
|
-
}
|
|
8
|
-
interface MovePageUseCasesParams {
|
|
9
|
-
moveOperation: WbPagesStorageOperations["move"];
|
|
10
|
-
getOperation: WbPagesStorageOperations["getById"];
|
|
11
|
-
topics: MovePageUseCasesTopics;
|
|
12
|
-
}
|
|
13
|
-
export declare const getMovePageUseCase: (params: MovePageUseCasesParams) => {
|
|
14
|
-
movePageUseCase: MovePageWithEvents;
|
|
15
|
-
};
|
|
16
|
-
export {};
|
|
1
|
+
export { PageAfterMoveHandler, PageBeforeMoveHandler, MovePageUseCase } from "./abstractions.js";
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getMovePageUseCase = void 0;
|
|
7
|
-
var _MovePage = require("./MovePage");
|
|
8
|
-
var _MovePageWithEvents = require("./MovePageWithEvents");
|
|
9
|
-
const getMovePageUseCase = params => {
|
|
10
|
-
const movePage = new _MovePage.MovePage(params.moveOperation);
|
|
11
|
-
const movePageUseCase = new _MovePageWithEvents.MovePageWithEvents(params.topics, params.getOperation, movePage);
|
|
12
|
-
return {
|
|
13
|
-
movePageUseCase
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
exports.getMovePageUseCase = getMovePageUseCase;
|
|
1
|
+
export { PageAfterMoveHandler, PageBeforeMoveHandler, MovePageUseCase } from "./abstractions.js";
|
|
17
2
|
|
|
18
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PageAfterMoveHandler","PageBeforeMoveHandler","MovePageUseCase"],"sources":["index.ts"],"sourcesContent":["export { PageAfterMoveHandler, PageBeforeMoveHandler, MovePageUseCase } from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,oBAAoB,EAAEC,qBAAqB,EAAEC,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PagePermissionsFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createFeature, Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreatePageUseCase } from "../CreatePage/index.js";
|
|
3
|
+
import { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/index.js";
|
|
4
|
+
import { PageNotAuthorizedError } from "../../../domain/page/errors.js";
|
|
5
|
+
import { CreatePageRevisionFromUseCase } from "../CreatePageRevisionFrom/index.js";
|
|
6
|
+
import { DeletePageUseCase } from "../DeletePage/index.js";
|
|
7
|
+
import { DuplicatePageUseCase } from "../DuplicatePage/index.js";
|
|
8
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
9
|
+
import { GetPageByPathUseCase } from "../GetPageByPath/index.js";
|
|
10
|
+
import { GetPageRevisionsUseCase } from "../GetPageRevisions/index.js";
|
|
11
|
+
import { ListPagesUseCase } from "../ListPages/index.js";
|
|
12
|
+
import { MovePageUseCase } from "../MovePage/index.js";
|
|
13
|
+
import { PublishPageUseCase } from "../PublishPage/index.js";
|
|
14
|
+
import { UnpublishPageUseCase } from "../UnpublishPage/index.js";
|
|
15
|
+
import { UpdatePageUseCase } from "../UpdatePage/index.js";
|
|
16
|
+
const createDecorator = abstraction => {
|
|
17
|
+
class PageUseCaseDecorator {
|
|
18
|
+
constructor(identityContext, decoratee) {
|
|
19
|
+
this.identityContext = identityContext;
|
|
20
|
+
this.decoratee = decoratee;
|
|
21
|
+
}
|
|
22
|
+
async execute(...args) {
|
|
23
|
+
const hasPermission = await this.identityContext.getPermission("wb.page");
|
|
24
|
+
if (!hasPermission) {
|
|
25
|
+
return Result.fail(new PageNotAuthorizedError());
|
|
26
|
+
}
|
|
27
|
+
return this.decoratee.execute(...args);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return abstraction.createDecorator({
|
|
31
|
+
decorator: PageUseCaseDecorator,
|
|
32
|
+
dependencies: [IdentityContext]
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
export const PagePermissionsFeature = createFeature({
|
|
36
|
+
name: "WebsiteBuilder/Page/Permissions",
|
|
37
|
+
register(container) {
|
|
38
|
+
container.registerDecorator(createDecorator(CreatePageUseCase));
|
|
39
|
+
container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));
|
|
40
|
+
container.registerDecorator(createDecorator(UpdatePageUseCase));
|
|
41
|
+
container.registerDecorator(createDecorator(DeletePageUseCase));
|
|
42
|
+
container.registerDecorator(createDecorator(DuplicatePageUseCase));
|
|
43
|
+
container.registerDecorator(createDecorator(GetPageByIdUseCase));
|
|
44
|
+
container.registerDecorator(createDecorator(GetPageByPathUseCase));
|
|
45
|
+
container.registerDecorator(createDecorator(GetPageRevisionsUseCase));
|
|
46
|
+
container.registerDecorator(createDecorator(ListPagesUseCase));
|
|
47
|
+
container.registerDecorator(createDecorator(MovePageUseCase));
|
|
48
|
+
container.registerDecorator(createDecorator(PublishPageUseCase));
|
|
49
|
+
container.registerDecorator(createDecorator(UnpublishPageUseCase));
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","Result","CreatePageUseCase","IdentityContext","PageNotAuthorizedError","CreatePageRevisionFromUseCase","DeletePageUseCase","DuplicatePageUseCase","GetPageByIdUseCase","GetPageByPathUseCase","GetPageRevisionsUseCase","ListPagesUseCase","MovePageUseCase","PublishPageUseCase","UnpublishPageUseCase","UpdatePageUseCase","createDecorator","abstraction","PageUseCaseDecorator","constructor","identityContext","decoratee","execute","args","hasPermission","getPermission","fail","decorator","dependencies","PagePermissionsFeature","name","register","container","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { Abstraction } from \"@webiny/di\";\nimport { createFeature, Result } from \"@webiny/feature/api\";\nimport { CreatePageUseCase } from \"~/features/pages/CreatePage/index.js\";\nimport { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/index.js\";\nimport { PageNotAuthorizedError } from \"~/domain/page/errors.js\";\nimport { CreatePageRevisionFromUseCase } from \"~/features/pages/CreatePageRevisionFrom/index.js\";\nimport { DeletePageUseCase } from \"~/features/pages/DeletePage/index.js\";\nimport { DuplicatePageUseCase } from \"~/features/pages/DuplicatePage/index.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\nimport { GetPageByPathUseCase } from \"~/features/pages/GetPageByPath/index.js\";\nimport { GetPageRevisionsUseCase } from \"~/features/pages/GetPageRevisions/index.js\";\nimport { ListPagesUseCase } from \"~/features/pages/ListPages/index.js\";\nimport { MovePageUseCase } from \"~/features/pages/MovePage/index.js\";\nimport { PublishPageUseCase } from \"~/features/pages/PublishPage/index.js\";\nimport { UnpublishPageUseCase } from \"~/features/pages/UnpublishPage/index.js\";\nimport { UpdatePageUseCase } from \"~/features/pages/UpdatePage/index.js\";\n\nconst createDecorator = (abstraction: Abstraction<any>) => {\n class PageUseCaseDecorator {\n constructor(\n private identityContext: IdentityContext.Interface,\n private decoratee: any\n ) {}\n\n async execute(...args: any[]) {\n const hasPermission = await this.identityContext.getPermission(\"wb.page\");\n\n if (!hasPermission) {\n return Result.fail(new PageNotAuthorizedError());\n }\n\n return this.decoratee.execute(...args);\n }\n }\n\n return abstraction.createDecorator({\n decorator: PageUseCaseDecorator,\n dependencies: [IdentityContext]\n });\n};\n\nexport const PagePermissionsFeature = createFeature({\n name: \"WebsiteBuilder/Page/Permissions\",\n register(container) {\n container.registerDecorator(createDecorator(CreatePageUseCase));\n container.registerDecorator(createDecorator(CreatePageRevisionFromUseCase));\n container.registerDecorator(createDecorator(UpdatePageUseCase));\n container.registerDecorator(createDecorator(DeletePageUseCase));\n container.registerDecorator(createDecorator(DuplicatePageUseCase));\n container.registerDecorator(createDecorator(GetPageByIdUseCase));\n container.registerDecorator(createDecorator(GetPageByPathUseCase));\n container.registerDecorator(createDecorator(GetPageRevisionsUseCase));\n container.registerDecorator(createDecorator(ListPagesUseCase));\n container.registerDecorator(createDecorator(MovePageUseCase));\n container.registerDecorator(createDecorator(PublishPageUseCase));\n container.registerDecorator(createDecorator(UnpublishPageUseCase));\n }\n});\n"],"mappings":"AACA,SAASA,aAAa,EAAEC,MAAM,QAAQ,qBAAqB;AAC3D,SAASC,iBAAiB;AAC1B,SAASC,eAAe,QAAQ,6DAA6D;AAC7F,SAASC,sBAAsB;AAC/B,SAASC,6BAA6B;AACtC,SAASC,iBAAiB;AAC1B,SAASC,oBAAoB;AAC7B,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,kBAAkB;AAC3B,SAASC,oBAAoB;AAC7B,SAASC,iBAAiB;AAE1B,MAAMC,eAAe,GAAIC,WAA6B,IAAK;EACvD,MAAMC,oBAAoB,CAAC;IACvBC,WAAWA,CACCC,eAA0C,EAC1CC,SAAc,EACxB;MAAA,KAFUD,eAA0C,GAA1CA,eAA0C;MAAA,KAC1CC,SAAc,GAAdA,SAAc;IACvB;IAEH,MAAMC,OAAOA,CAAC,GAAGC,IAAW,EAAE;MAC1B,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACJ,eAAe,CAACK,aAAa,CAAC,SAAS,CAAC;MAEzE,IAAI,CAACD,aAAa,EAAE;QAChB,OAAOvB,MAAM,CAACyB,IAAI,CAAC,IAAItB,sBAAsB,CAAC,CAAC,CAAC;MACpD;MAEA,OAAO,IAAI,CAACiB,SAAS,CAACC,OAAO,CAAC,GAAGC,IAAI,CAAC;IAC1C;EACJ;EAEA,OAAON,WAAW,CAACD,eAAe,CAAC;IAC/BW,SAAS,EAAET,oBAAoB;IAC/BU,YAAY,EAAE,CAACzB,eAAe;EAClC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,MAAM0B,sBAAsB,GAAG7B,aAAa,CAAC;EAChD8B,IAAI,EAAE,iCAAiC;EACvCC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACd,iBAAiB,CAAC,CAAC;IAC/D8B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACX,6BAA6B,CAAC,CAAC;IAC3E2B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACD,iBAAiB,CAAC,CAAC;IAC/DiB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACV,iBAAiB,CAAC,CAAC;IAC/D0B,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACT,oBAAoB,CAAC,CAAC;IAClEyB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACR,kBAAkB,CAAC,CAAC;IAChEwB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACP,oBAAoB,CAAC,CAAC;IAClEuB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACN,uBAAuB,CAAC,CAAC;IACrEsB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACL,gBAAgB,CAAC,CAAC;IAC9DqB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACJ,eAAe,CAAC,CAAC;IAC7DoB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACH,kBAAkB,CAAC,CAAC;IAChEmB,SAAS,CAACC,iBAAiB,CAACjB,eAAe,CAACF,oBAAoB,CAAC,CAAC;EACtE;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PublishPageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
2
|
+
import { PublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry";
|
|
3
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
4
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
5
|
+
declare class PublishPageRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
6
|
+
private publishEntry;
|
|
7
|
+
private getEntryById;
|
|
8
|
+
private pageModel;
|
|
9
|
+
constructor(publishEntry: PublishEntryUseCase.Interface, getEntryById: GetEntryByIdUseCase.Interface, pageModel: PageModel.Interface);
|
|
10
|
+
execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return;
|
|
11
|
+
}
|
|
12
|
+
export declare const PublishPageRepository: typeof PublishPageRepositoryImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IPublishPageRepository>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { PublishPageRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
3
|
+
import { PublishEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/PublishEntry";
|
|
4
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById";
|
|
5
|
+
import { PageModel } from "../../../domain/page/abstractions.js";
|
|
6
|
+
import { EntryToPageMapper } from "../../../domain/page/EntryToPageMapper.js";
|
|
7
|
+
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
8
|
+
class PublishPageRepositoryImpl {
|
|
9
|
+
constructor(publishEntry, getEntryById, pageModel) {
|
|
10
|
+
this.publishEntry = publishEntry;
|
|
11
|
+
this.getEntryById = getEntryById;
|
|
12
|
+
this.pageModel = pageModel;
|
|
13
|
+
}
|
|
14
|
+
async execute(params) {
|
|
15
|
+
// First, validate the page exists
|
|
16
|
+
const getResult = await this.getEntryById.execute(this.pageModel, params.id);
|
|
17
|
+
if (getResult.isFail()) {
|
|
18
|
+
if (getResult.error.code === "Cms/Entry/NotFound") {
|
|
19
|
+
return Result.fail(new PageNotFoundError(params.id));
|
|
20
|
+
}
|
|
21
|
+
return Result.fail(new PagePersistenceError(getResult.error));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Publish the entry
|
|
25
|
+
const result = await this.publishEntry.execute(this.pageModel, params.id);
|
|
26
|
+
if (result.isFail()) {
|
|
27
|
+
if (result.error.code === "Cms/Entry/NotFound") {
|
|
28
|
+
return Result.fail(new PageNotFoundError(params.id));
|
|
29
|
+
}
|
|
30
|
+
return Result.fail(new PagePersistenceError(result.error));
|
|
31
|
+
}
|
|
32
|
+
const page = EntryToPageMapper.toPage(result.value);
|
|
33
|
+
return Result.ok(page);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const PublishPageRepository = RepositoryAbstraction.createImplementation({
|
|
37
|
+
implementation: PublishPageRepositoryImpl,
|
|
38
|
+
dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=PublishPageRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","PublishPageRepository","RepositoryAbstraction","PublishEntryUseCase","GetEntryByIdUseCase","PageModel","EntryToPageMapper","PageNotFoundError","PagePersistenceError","PublishPageRepositoryImpl","constructor","publishEntry","getEntryById","pageModel","execute","params","getResult","id","isFail","error","code","fail","result","page","toPage","value","ok","createImplementation","implementation","dependencies"],"sources":["PublishPageRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { PublishPageRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { PublishEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/PublishEntry\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById\";\nimport { PageModel } from \"~/domain/page/abstractions.js\";\nimport { EntryToPageMapper } from \"~/domain/page/EntryToPageMapper.js\";\nimport { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\nclass PublishPageRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private publishEntry: PublishEntryUseCase.Interface,\n private getEntryById: GetEntryByIdUseCase.Interface,\n private pageModel: PageModel.Interface\n ) {}\n\n async execute(params: RepositoryAbstraction.Params): RepositoryAbstraction.Return {\n // First, validate the page exists\n const getResult = await this.getEntryById.execute(this.pageModel, params.id);\n\n if (getResult.isFail()) {\n if (getResult.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(getResult.error));\n }\n\n // Publish the entry\n const result = await this.publishEntry.execute(this.pageModel, params.id);\n\n if (result.isFail()) {\n if (result.error.code === \"Cms/Entry/NotFound\") {\n return Result.fail(new PageNotFoundError(params.id));\n }\n return Result.fail(new PagePersistenceError(result.error));\n }\n\n const page = EntryToPageMapper.toPage(result.value);\n return Result.ok(page);\n }\n}\n\nexport const PublishPageRepository = RepositoryAbstraction.createImplementation({\n implementation: PublishPageRepositoryImpl,\n dependencies: [PublishEntryUseCase, GetEntryByIdUseCase, PageModel]\n});\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,qBAAqB,IAAIC,qBAAqB;AACvD,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,mBAAmB,QAAQ,6DAA6D;AACjG,SAASC,SAAS;AAClB,SAASC,iBAAiB;AAC1B,SAASC,iBAAiB,EAAEC,oBAAoB;AAEhD,MAAMC,yBAAyB,CAA4C;EACvEC,WAAWA,CACCC,YAA2C,EAC3CC,YAA2C,EAC3CC,SAA8B,EACxC;IAAA,KAHUF,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAACC,MAAoC,EAAgC;IAC9E;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACE,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAE5E,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,IAAIF,SAAS,CAACG,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC/C,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOjB,MAAM,CAACqB,IAAI,CAAC,IAAIb,oBAAoB,CAACQ,SAAS,CAACG,KAAK,CAAC,CAAC;IACjE;;IAEA;IACA,MAAMG,MAAM,GAAG,MAAM,IAAI,CAACX,YAAY,CAACG,OAAO,CAAC,IAAI,CAACD,SAAS,EAAEE,MAAM,CAACE,EAAE,CAAC;IAEzE,IAAIK,MAAM,CAACJ,MAAM,CAAC,CAAC,EAAE;MACjB,IAAII,MAAM,CAACH,KAAK,CAACC,IAAI,KAAK,oBAAoB,EAAE;QAC5C,OAAOpB,MAAM,CAACqB,IAAI,CAAC,IAAId,iBAAiB,CAACQ,MAAM,CAACE,EAAE,CAAC,CAAC;MACxD;MACA,OAAOjB,MAAM,CAACqB,IAAI,CAAC,IAAIb,oBAAoB,CAACc,MAAM,CAACH,KAAK,CAAC,CAAC;IAC9D;IAEA,MAAMI,IAAI,GAAGjB,iBAAiB,CAACkB,MAAM,CAACF,MAAM,CAACG,KAAK,CAAC;IACnD,OAAOzB,MAAM,CAAC0B,EAAE,CAACH,IAAI,CAAC;EAC1B;AACJ;AAEA,OAAO,MAAMtB,qBAAqB,GAAGC,qBAAqB,CAACyB,oBAAoB,CAAC;EAC5EC,cAAc,EAAEnB,yBAAyB;EACzCoB,YAAY,EAAE,CAAC1B,mBAAmB,EAAEC,mBAAmB,EAAEC,SAAS;AACtE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EventPublisher as EventPublisherAbstraction } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from "./abstractions.js";
|
|
3
|
+
import { GetPageByIdUseCase } from "../../../features/pages/GetPageById/index.js";
|
|
4
|
+
declare class PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
5
|
+
private eventPublisher;
|
|
6
|
+
private getPageById;
|
|
7
|
+
private repository;
|
|
8
|
+
constructor(eventPublisher: EventPublisherAbstraction.Interface, getPageById: GetPageByIdUseCase.Interface, repository: PublishPageRepository.Interface);
|
|
9
|
+
execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return;
|
|
10
|
+
}
|
|
11
|
+
export declare const PublishPageUseCase: import("@webiny/di").Implementation<typeof PublishPageUseCaseImpl>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Result, createImplementation } from "@webiny/feature/api";
|
|
2
|
+
import { EventPublisher } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from "./abstractions.js";
|
|
4
|
+
import { PageBeforePublishEvent, PageAfterPublishEvent } from "./events.js";
|
|
5
|
+
import { GetPageByIdUseCase } from "../GetPageById/index.js";
|
|
6
|
+
class PublishPageUseCaseImpl {
|
|
7
|
+
constructor(eventPublisher, getPageById, repository) {
|
|
8
|
+
this.eventPublisher = eventPublisher;
|
|
9
|
+
this.getPageById = getPageById;
|
|
10
|
+
this.repository = repository;
|
|
11
|
+
}
|
|
12
|
+
async execute(params) {
|
|
13
|
+
// Get the page first for the before event
|
|
14
|
+
const getResult = await this.getPageById.execute(params.id);
|
|
15
|
+
if (getResult.isFail()) {
|
|
16
|
+
return getResult;
|
|
17
|
+
}
|
|
18
|
+
const page = getResult.value;
|
|
19
|
+
|
|
20
|
+
// Publish before publish event
|
|
21
|
+
const beforeEvent = new PageBeforePublishEvent({
|
|
22
|
+
page
|
|
23
|
+
});
|
|
24
|
+
await this.eventPublisher.publish(beforeEvent);
|
|
25
|
+
|
|
26
|
+
// Execute the publish operation
|
|
27
|
+
const result = await this.repository.execute(params);
|
|
28
|
+
if (result.isFail()) {
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Publish after publish event
|
|
33
|
+
const afterEvent = new PageAfterPublishEvent({
|
|
34
|
+
page: result.value
|
|
35
|
+
});
|
|
36
|
+
await this.eventPublisher.publish(afterEvent);
|
|
37
|
+
return Result.ok(result.value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export const PublishPageUseCase = createImplementation({
|
|
41
|
+
abstraction: UseCaseAbstraction,
|
|
42
|
+
implementation: PublishPageUseCaseImpl,
|
|
43
|
+
dependencies: [EventPublisher, GetPageByIdUseCase, PublishPageRepository]
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=PublishPageUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Result","createImplementation","EventPublisher","PublishPageUseCase","UseCaseAbstraction","PublishPageRepository","PageBeforePublishEvent","PageAfterPublishEvent","GetPageByIdUseCase","PublishPageUseCaseImpl","constructor","eventPublisher","getPageById","repository","execute","params","getResult","id","isFail","page","value","beforeEvent","publish","result","afterEvent","ok","abstraction","implementation","dependencies"],"sources":["PublishPageUseCase.ts"],"sourcesContent":["import { Result, createImplementation } from \"@webiny/feature/api\";\nimport {\n EventPublisher,\n EventPublisher as EventPublisherAbstraction\n} from \"@webiny/api-core/features/EventPublisher\";\nimport { PublishPageUseCase as UseCaseAbstraction, PublishPageRepository } from \"./abstractions.js\";\nimport { PageBeforePublishEvent, PageAfterPublishEvent } from \"./events.js\";\nimport { GetPageByIdUseCase } from \"~/features/pages/GetPageById/index.js\";\n\nclass PublishPageUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private eventPublisher: EventPublisherAbstraction.Interface,\n private getPageById: GetPageByIdUseCase.Interface,\n private repository: PublishPageRepository.Interface\n ) {}\n\n async execute(params: UseCaseAbstraction.Params): UseCaseAbstraction.Return {\n // Get the page first for the before event\n const getResult = await this.getPageById.execute(params.id);\n\n if (getResult.isFail()) {\n return getResult;\n }\n\n const page = getResult.value;\n\n // Publish before publish event\n const beforeEvent = new PageBeforePublishEvent({\n page\n });\n\n await this.eventPublisher.publish(beforeEvent);\n\n // Execute the publish operation\n const result = await this.repository.execute(params);\n\n if (result.isFail()) {\n return result;\n }\n\n // Publish after publish event\n const afterEvent = new PageAfterPublishEvent({\n page: result.value\n });\n\n await this.eventPublisher.publish(afterEvent);\n\n return Result.ok(result.value);\n }\n}\n\nexport const PublishPageUseCase = createImplementation({\n abstraction: UseCaseAbstraction,\n implementation: PublishPageUseCaseImpl,\n dependencies: [EventPublisher, GetPageByIdUseCase, PublishPageRepository]\n});\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,oBAAoB,QAAQ,qBAAqB;AAClE,SACIC,cAAc,QAEX,0CAA0C;AACjD,SAASC,kBAAkB,IAAIC,kBAAkB,EAAEC,qBAAqB;AACxE,SAASC,sBAAsB,EAAEC,qBAAqB;AACtD,SAASC,kBAAkB;AAE3B,MAAMC,sBAAsB,CAAyC;EACjEC,WAAWA,CACCC,cAAmD,EACnDC,WAAyC,EACzCC,UAA2C,EACrD;IAAA,KAHUF,cAAmD,GAAnDA,cAAmD;IAAA,KACnDC,WAAyC,GAAzCA,WAAyC;IAAA,KACzCC,UAA2C,GAA3CA,UAA2C;EACpD;EAEH,MAAMC,OAAOA,CAACC,MAAiC,EAA6B;IACxE;IACA,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACJ,WAAW,CAACE,OAAO,CAACC,MAAM,CAACE,EAAE,CAAC;IAE3D,IAAID,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE;MACpB,OAAOF,SAAS;IACpB;IAEA,MAAMG,IAAI,GAAGH,SAAS,CAACI,KAAK;;IAE5B;IACA,MAAMC,WAAW,GAAG,IAAIf,sBAAsB,CAAC;MAC3Ca;IACJ,CAAC,CAAC;IAEF,MAAM,IAAI,CAACR,cAAc,CAACW,OAAO,CAACD,WAAW,CAAC;;IAE9C;IACA,MAAME,MAAM,GAAG,MAAM,IAAI,CAACV,UAAU,CAACC,OAAO,CAACC,MAAM,CAAC;IAEpD,IAAIQ,MAAM,CAACL,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOK,MAAM;IACjB;;IAEA;IACA,MAAMC,UAAU,GAAG,IAAIjB,qBAAqB,CAAC;MACzCY,IAAI,EAAEI,MAAM,CAACH;IACjB,CAAC,CAAC;IAEF,MAAM,IAAI,CAACT,cAAc,CAACW,OAAO,CAACE,UAAU,CAAC;IAE7C,OAAOxB,MAAM,CAACyB,EAAE,CAACF,MAAM,CAACH,KAAK,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMjB,kBAAkB,GAAGF,oBAAoB,CAAC;EACnDyB,WAAW,EAAEtB,kBAAkB;EAC/BuB,cAAc,EAAElB,sBAAsB;EACtCmB,YAAY,EAAE,CAAC1B,cAAc,EAAEM,kBAAkB,EAAEH,qBAAqB;AAC5E,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { IEventHandler } from "@webiny/api-core/features/EventPublisher";
|
|
3
|
+
import type { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
4
|
+
import type { WbPage } from "../../../domain/page/abstractions.js";
|
|
5
|
+
import { PageNotFoundError, PagePersistenceError } from "../../../domain/page/errors.js";
|
|
6
|
+
export interface IPublishWbPageParams {
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IPublishPageRepository {
|
|
10
|
+
execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;
|
|
11
|
+
}
|
|
12
|
+
export interface IPublishPageRepositoryErrors {
|
|
13
|
+
notFound: PageNotFoundError;
|
|
14
|
+
persistence: PagePersistenceError;
|
|
15
|
+
}
|
|
16
|
+
type RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];
|
|
17
|
+
export declare const PublishPageRepository: import("@webiny/di").Abstraction<IPublishPageRepository>;
|
|
18
|
+
export declare namespace PublishPageRepository {
|
|
19
|
+
type Interface = IPublishPageRepository;
|
|
20
|
+
type Params = IPublishWbPageParams;
|
|
21
|
+
type Return = Promise<Result<WbPage, RepositoryError>>;
|
|
22
|
+
type Error = RepositoryError;
|
|
23
|
+
}
|
|
24
|
+
export interface IPublishPageUseCase {
|
|
25
|
+
execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;
|
|
26
|
+
}
|
|
27
|
+
export interface IPublishPageUseCaseErrors {
|
|
28
|
+
notFound: PageNotFoundError;
|
|
29
|
+
persistence: PagePersistenceError;
|
|
30
|
+
}
|
|
31
|
+
type UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];
|
|
32
|
+
export declare const PublishPageUseCase: import("@webiny/di").Abstraction<IPublishPageUseCase>;
|
|
33
|
+
export declare namespace PublishPageUseCase {
|
|
34
|
+
type Interface = IPublishPageUseCase;
|
|
35
|
+
type Params = IPublishWbPageParams;
|
|
36
|
+
type Return = Promise<Result<WbPage, UseCaseError>>;
|
|
37
|
+
type Error = UseCaseError;
|
|
38
|
+
type Page = WbPage;
|
|
39
|
+
}
|
|
40
|
+
export interface PageBeforePublishPayload {
|
|
41
|
+
page: WbPage;
|
|
42
|
+
}
|
|
43
|
+
export interface PageAfterPublishPayload {
|
|
44
|
+
page: WbPage;
|
|
45
|
+
}
|
|
46
|
+
export declare const PageBeforePublishHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageBeforePublishPayload>>>;
|
|
47
|
+
export declare namespace PageBeforePublishHandler {
|
|
48
|
+
type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;
|
|
49
|
+
type Event = DomainEvent<PageBeforePublishPayload>;
|
|
50
|
+
type Page = WbPage;
|
|
51
|
+
}
|
|
52
|
+
export declare const PageAfterPublishHandler: import("@webiny/di").Abstraction<IEventHandler<DomainEvent<PageAfterPublishPayload>>>;
|
|
53
|
+
export declare namespace PageAfterPublishHandler {
|
|
54
|
+
type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;
|
|
55
|
+
type Event = DomainEvent<PageAfterPublishPayload>;
|
|
56
|
+
type Page = WbPage;
|
|
57
|
+
}
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
|
|
3
|
+
// ============================================================================
|
|
4
|
+
// Type Definitions
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Repository Abstraction
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const PublishPageRepository = createAbstraction("Wb/PublishPageRepository");
|
|
12
|
+
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Use Case Abstraction
|
|
15
|
+
// ============================================================================
|
|
16
|
+
|
|
17
|
+
export const PublishPageUseCase = createAbstraction("Wb/PublishPageUseCase");
|
|
18
|
+
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Event Payload Types
|
|
21
|
+
// ============================================================================
|
|
22
|
+
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Event Handler Abstractions
|
|
25
|
+
// ============================================================================
|
|
26
|
+
|
|
27
|
+
export const PageBeforePublishHandler = createAbstraction("Wb/PageBeforePublishHandler");
|
|
28
|
+
export const PageAfterPublishHandler = createAbstraction("Wb/PageAfterPublishHandler");
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","PublishPageRepository","PublishPageUseCase","PageBeforePublishHandler","PageAfterPublishHandler"],"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 { PageNotFoundError, PagePersistenceError } from \"~/domain/page/errors.js\";\n\n// ============================================================================\n// Type Definitions\n// ============================================================================\n\nexport interface IPublishWbPageParams {\n id: string;\n}\n\n// ============================================================================\n// Repository Abstraction\n// ============================================================================\n\nexport interface IPublishPageRepository {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, RepositoryError>>;\n}\n\nexport interface IPublishPageRepositoryErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype RepositoryError = IPublishPageRepositoryErrors[keyof IPublishPageRepositoryErrors];\n\nexport const PublishPageRepository = createAbstraction<IPublishPageRepository>(\n \"Wb/PublishPageRepository\"\n);\n\nexport namespace PublishPageRepository {\n export type Interface = IPublishPageRepository;\n export type Params = IPublishWbPageParams;\n export type Return = Promise<Result<WbPage, RepositoryError>>;\n export type Error = RepositoryError;\n}\n\n// ============================================================================\n// Use Case Abstraction\n// ============================================================================\n\nexport interface IPublishPageUseCase {\n execute(params: IPublishWbPageParams): Promise<Result<WbPage, UseCaseError>>;\n}\n\nexport interface IPublishPageUseCaseErrors {\n notFound: PageNotFoundError;\n persistence: PagePersistenceError;\n}\n\ntype UseCaseError = IPublishPageUseCaseErrors[keyof IPublishPageUseCaseErrors];\n\nexport const PublishPageUseCase = createAbstraction<IPublishPageUseCase>(\"Wb/PublishPageUseCase\");\n\nexport namespace PublishPageUseCase {\n export type Interface = IPublishPageUseCase;\n export type Params = IPublishWbPageParams;\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 PageBeforePublishPayload {\n page: WbPage;\n}\n\nexport interface PageAfterPublishPayload {\n page: WbPage;\n}\n\n// ============================================================================\n// Event Handler Abstractions\n// ============================================================================\n\nexport const PageBeforePublishHandler = createAbstraction<\n IEventHandler<DomainEvent<PageBeforePublishPayload>>\n>(\"Wb/PageBeforePublishHandler\");\n\nexport namespace PageBeforePublishHandler {\n export type Interface = IEventHandler<DomainEvent<PageBeforePublishPayload>>;\n export type Event = DomainEvent<PageBeforePublishPayload>;\n export type Page = WbPage;\n}\n\nexport const PageAfterPublishHandler = createAbstraction<\n IEventHandler<DomainEvent<PageAfterPublishPayload>>\n>(\"Wb/PageAfterPublishHandler\");\n\nexport namespace PageAfterPublishHandler {\n export type Interface = IEventHandler<DomainEvent<PageAfterPublishPayload>>;\n export type Event = DomainEvent<PageAfterPublishPayload>;\n export type Page = WbPage;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAqB,qBAAqB;;AAMpE;AACA;AACA;;AAMA;AACA;AACA;;AAaA,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,0BACJ,CAAC;;AASD;AACA;AACA;;AAaA,OAAO,MAAME,kBAAkB,GAAGF,iBAAiB,CAAsB,uBAAuB,CAAC;;AAUjG;AACA;AACA;;AAUA;AACA;AACA;;AAEA,OAAO,MAAMG,wBAAwB,GAAGH,iBAAiB,CAEvD,6BAA6B,CAAC;AAQhC,OAAO,MAAMI,uBAAuB,GAAGJ,iBAAiB,CAEtD,4BAA4B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import type { PageBeforePublishPayload, PageAfterPublishPayload } from "./abstractions.js";
|
|
3
|
+
export declare class PageBeforePublishEvent extends DomainEvent<PageBeforePublishPayload> {
|
|
4
|
+
eventType: "page.beforePublish";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageBeforePublishPayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class PageAfterPublishEvent extends DomainEvent<PageAfterPublishPayload> {
|
|
8
|
+
eventType: "page.afterPublish";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<PageAfterPublishPayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { PageBeforePublishHandler, PageAfterPublishHandler } from "./abstractions.js";
|
|
3
|
+
// PageBeforePublish Event
|
|
4
|
+
export class PageBeforePublishEvent extends DomainEvent {
|
|
5
|
+
eventType = "page.beforePublish";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return PageBeforePublishHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// PageAfterPublish Event
|
|
12
|
+
export class PageAfterPublishEvent extends DomainEvent {
|
|
13
|
+
eventType = "page.afterPublish";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return PageAfterPublishHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|