@webiny/api-aco 0.0.0-unstable.aa00eecd97 → 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 +6 -28
- package/constants.d.ts +2 -0
- package/constants.js +4 -0
- package/constants.js.map +1 -0
- package/createAcoContext.d.ts +8 -2
- package/createAcoContext.js +128 -50
- package/createAcoContext.js.map +1 -1
- package/createAcoGraphQL.d.ts +3 -2
- package/createAcoGraphQL.js +48 -29
- package/createAcoGraphQL.js.map +1 -1
- package/createAcoStorageOperations.d.ts +8 -6
- package/createAcoStorageOperations.js +9 -18
- package/createAcoStorageOperations.js.map +1 -1
- package/createAcoTasks.d.ts +1 -0
- package/createAcoTasks.js +15 -0
- package/createAcoTasks.js.map +1 -0
- package/domain/folder/abstractions.d.ts +9 -0
- package/domain/folder/abstractions.js +8 -0
- package/domain/folder/abstractions.js.map +1 -0
- package/domain/folder/errors.d.ts +29 -0
- package/domain/folder/errors.js +56 -0
- package/domain/folder/errors.js.map +1 -0
- package/domain/folder/folder.model.d.ts +9 -0
- package/domain/folder/folder.model.js +42 -0
- package/domain/folder/folder.model.js.map +1 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +43 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js +36 -0
- package/features/cms/decorators/CreateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js +43 -0
- package/features/cms/decorators/DeleteEntryRevisionWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js +45 -0
- package/features/cms/decorators/DeleteEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetEntryByIdWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.d.ts +12 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js +41 -0
- package/features/cms/decorators/GetEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js +45 -0
- package/features/cms/decorators/GetLatestEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js +44 -0
- package/features/cms/decorators/GetPublishedEntriesByIdsWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListDeletedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js +35 -0
- package/features/cms/decorators/ListEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListLatestEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.d.ts +11 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js +36 -0
- package/features/cms/decorators/ListPublishedEntriesWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.d.ts +15 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js +63 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +15 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +43 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/feature.d.ts +1 -0
- package/features/cms/feature.js +43 -0
- package/features/cms/feature.js.map +1 -0
- package/features/cms/index.d.ts +1 -0
- package/features/cms/index.js +3 -0
- package/features/cms/index.js.map +1 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js +41 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
- package/features/flp/CreateFlp/abstractions.d.ts +8 -0
- package/features/flp/CreateFlp/abstractions.js +7 -0
- package/features/flp/CreateFlp/abstractions.js.map +1 -0
- package/features/flp/CreateFlp/feature.d.ts +6 -0
- package/features/flp/CreateFlp/feature.js +13 -0
- package/features/flp/CreateFlp/feature.js.map +1 -0
- package/features/flp/CreateFlp/index.d.ts +2 -0
- package/features/flp/CreateFlp/index.js +4 -0
- package/features/flp/CreateFlp/index.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +14 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +37 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js +10 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.d.ts +1 -0
- package/features/flp/CreateFlpOnFolderCreated/index.js +3 -0
- package/features/flp/CreateFlpOnFolderCreated/index.js.map +1 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +23 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
- package/features/flp/DeleteFlp/abstractions.d.ts +8 -0
- package/features/flp/DeleteFlp/abstractions.js +7 -0
- package/features/flp/DeleteFlp/abstractions.js.map +1 -0
- package/features/flp/DeleteFlp/feature.d.ts +6 -0
- package/features/flp/DeleteFlp/feature.js +13 -0
- package/features/flp/DeleteFlp/feature.js.map +1 -0
- package/features/flp/DeleteFlp/index.d.ts +2 -0
- package/features/flp/DeleteFlp/index.js +4 -0
- package/features/flp/DeleteFlp/index.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +14 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +37 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +10 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.d.ts +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.js +3 -0
- package/features/flp/DeleteFlpOnFolderDeleted/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +133 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.d.ts +25 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +4 -0
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/feature.d.ts +1 -0
- package/features/flp/FolderLevelPermissions/feature.js +10 -0
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
- package/features/flp/FolderLevelPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/index.js +4 -0
- package/features/flp/FolderLevelPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +41 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.d.ts +9 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/ICanAccessFolder.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +34 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/ICanAccessFolderContent.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/ICanCreateFolderInRoot.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/ICheckNotInheritedPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +70 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.d.ts +8 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js +13 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.d.ts +11 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js +38 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/GetDefaultPermissionsWithTeams.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/IGetDefaultPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +4 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js.map +1 -0
- package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js +7 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js.map +1 -0
- package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
- package/features/flp/GetFlp/GetFlpUseCase.js +10 -0
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
- package/features/flp/GetFlp/abstractions.d.ts +8 -0
- package/features/flp/GetFlp/abstractions.js +4 -0
- package/features/flp/GetFlp/abstractions.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +1 -0
- package/features/flp/GetFlp/feature.js +13 -0
- package/features/flp/GetFlp/feature.js.map +1 -0
- package/features/flp/GetFlp/index.d.ts +1 -0
- package/features/flp/GetFlp/index.js +3 -0
- package/features/flp/GetFlp/index.js.map +1 -0
- package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js +10 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
- package/features/flp/ListFlps/abstractions.d.ts +16 -0
- package/features/flp/ListFlps/abstractions.js +4 -0
- package/features/flp/ListFlps/abstractions.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +1 -0
- package/features/flp/ListFlps/feature.js +13 -0
- package/features/flp/ListFlps/feature.js.map +1 -0
- package/features/flp/ListFlps/index.d.ts +1 -0
- package/features/flp/ListFlps/index.js +3 -0
- package/features/flp/ListFlps/index.js.map +1 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +19 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +203 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
- package/features/flp/UpdateFlp/abstractions.d.ts +14 -0
- package/features/flp/UpdateFlp/abstractions.js +7 -0
- package/features/flp/UpdateFlp/abstractions.js.map +1 -0
- package/features/flp/UpdateFlp/feature.d.ts +6 -0
- package/features/flp/UpdateFlp/feature.js +13 -0
- package/features/flp/UpdateFlp/feature.js.map +1 -0
- package/features/flp/UpdateFlp/index.d.ts +2 -0
- package/features/flp/UpdateFlp/index.js +4 -0
- package/features/flp/UpdateFlp/index.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +14 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +39 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +10 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.d.ts +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.js +3 -0
- package/features/flp/UpdateFlpOnFolderUpdated/index.js.map +1 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js +108 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js.map +1 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.d.ts +12 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js +39 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
- package/features/folder/CreateFolder/abstractions.d.ts +55 -0
- package/features/folder/CreateFolder/abstractions.js +21 -0
- package/features/folder/CreateFolder/abstractions.js.map +1 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +44 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/CreateFolder/events.d.ts +10 -0
- package/features/folder/CreateFolder/events.js +19 -0
- package/features/folder/CreateFolder/events.js.map +1 -0
- package/features/folder/CreateFolder/feature.d.ts +1 -0
- package/features/folder/CreateFolder/feature.js +14 -0
- package/features/folder/CreateFolder/feature.js.map +1 -0
- package/features/folder/CreateFolder/index.d.ts +2 -0
- package/features/folder/CreateFolder/index.js +4 -0
- package/features/folder/CreateFolder/index.js.map +1 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +30 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js.map +1 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.d.ts +13 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js +55 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
- package/features/folder/DeleteFolder/abstractions.d.ts +55 -0
- package/features/folder/DeleteFolder/abstractions.js +21 -0
- package/features/folder/DeleteFolder/abstractions.js.map +1 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.d.ts +11 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js +28 -0
- package/features/folder/DeleteFolder/decorators/DeleteFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/DeleteFolder/events.d.ts +10 -0
- package/features/folder/DeleteFolder/events.js +19 -0
- package/features/folder/DeleteFolder/events.js.map +1 -0
- package/features/folder/DeleteFolder/feature.d.ts +1 -0
- package/features/folder/DeleteFolder/feature.js +14 -0
- package/features/folder/DeleteFolder/feature.js.map +1 -0
- package/features/folder/DeleteFolder/index.d.ts +2 -0
- package/features/folder/DeleteFolder/index.js +4 -0
- package/features/folder/DeleteFolder/index.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +56 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +20 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +4 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js +10 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmpty/index.js +3 -0
- package/features/folder/EnsureFolderIsEmpty/index.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +29 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +7 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +17 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js +3 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/index.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +56 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +10 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.d.ts +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js +3 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/index.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js +88 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.d.ts +10 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js +17 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
- package/features/folder/GetAncestors/abstractions.d.ts +38 -0
- package/features/folder/GetAncestors/abstractions.js +15 -0
- package/features/folder/GetAncestors/abstractions.js.map +1 -0
- package/features/folder/GetAncestors/feature.d.ts +1 -0
- package/features/folder/GetAncestors/feature.js +12 -0
- package/features/folder/GetAncestors/feature.js.map +1 -0
- package/features/folder/GetAncestors/index.d.ts +2 -0
- package/features/folder/GetAncestors/index.js +4 -0
- package/features/folder/GetAncestors/index.js.map +1 -0
- package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
- package/features/folder/GetFolder/GetFolderRepository.js +31 -0
- package/features/folder/GetFolder/GetFolderRepository.js.map +1 -0
- package/features/folder/GetFolder/GetFolderUseCase.d.ts +10 -0
- package/features/folder/GetFolder/GetFolderUseCase.js +17 -0
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
- package/features/folder/GetFolder/abstractions.d.ts +54 -0
- package/features/folder/GetFolder/abstractions.js +21 -0
- package/features/folder/GetFolder/abstractions.js.map +1 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.d.ts +29 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js +37 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolder/feature.d.ts +1 -0
- package/features/folder/GetFolder/feature.js +14 -0
- package/features/folder/GetFolder/feature.js.map +1 -0
- package/features/folder/GetFolder/index.d.ts +2 -0
- package/features/folder/GetFolder/index.js +4 -0
- package/features/folder/GetFolder/index.js.map +1 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +103 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js.map +1 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.d.ts +10 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js +17 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folder/GetFolderHierarchy/abstractions.d.ts +36 -0
- package/features/folder/GetFolderHierarchy/abstractions.js +15 -0
- package/features/folder/GetFolderHierarchy/abstractions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.d.ts +16 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js +64 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/feature.d.ts +1 -0
- package/features/folder/GetFolderHierarchy/feature.js +14 -0
- package/features/folder/GetFolderHierarchy/feature.js.map +1 -0
- package/features/folder/GetFolderHierarchy/index.d.ts +2 -0
- package/features/folder/GetFolderHierarchy/index.js +4 -0
- package/features/folder/GetFolderHierarchy/index.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +68 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +10 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +7 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +10 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.d.ts +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.js +3 -0
- package/features/folder/ListFolderLevelPermissionsTargets/index.js.map +1 -0
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
- package/features/folder/ListFolders/ListFoldersRepository.js +54 -0
- package/features/folder/ListFolders/ListFoldersRepository.js.map +1 -0
- package/features/folder/ListFolders/ListFoldersUseCase.d.ts +9 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js +17 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
- package/features/folder/ListFolders/abstractions.d.ts +42 -0
- package/features/folder/ListFolders/abstractions.js +15 -0
- package/features/folder/ListFolders/abstractions.js.map +1 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.d.ts +17 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js +77 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/ListFolders/feature.d.ts +1 -0
- package/features/folder/ListFolders/feature.js +14 -0
- package/features/folder/ListFolders/feature.js.map +1 -0
- package/features/folder/ListFolders/index.d.ts +2 -0
- package/features/folder/ListFolders/index.js +4 -0
- package/features/folder/ListFolders/index.js.map +1 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +110 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js.map +1 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.d.ts +14 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js +55 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
- package/features/folder/UpdateFolder/abstractions.d.ts +60 -0
- package/features/folder/UpdateFolder/abstractions.js +21 -0
- package/features/folder/UpdateFolder/abstractions.js.map +1 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +13 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +77 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/UpdateFolder/events.d.ts +10 -0
- package/features/folder/UpdateFolder/events.js +19 -0
- package/features/folder/UpdateFolder/events.js.map +1 -0
- package/features/folder/UpdateFolder/feature.d.ts +1 -0
- package/features/folder/UpdateFolder/feature.js +14 -0
- package/features/folder/UpdateFolder/feature.js.map +1 -0
- package/features/folder/UpdateFolder/index.d.ts +2 -0
- package/features/folder/UpdateFolder/index.js +4 -0
- package/features/folder/UpdateFolder/index.js.map +1 -0
- package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
- package/features/folder/shared/EntryToFolderMapper.js +22 -0
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
- package/features/folder/shared/abstractions.d.ts +5 -0
- package/features/folder/shared/abstractions.js +4 -0
- package/features/folder/shared/abstractions.js.map +1 -0
- package/filter/filter.crud.d.ts +3 -0
- package/filter/filter.crud.js +33 -0
- package/filter/filter.crud.js.map +1 -0
- package/filter/filter.gql.d.ts +3 -0
- package/filter/filter.gql.js +146 -0
- package/filter/filter.gql.js.map +1 -0
- package/filter/filter.model.d.ts +9 -0
- package/filter/filter.model.js +41 -0
- package/filter/filter.model.js.map +1 -0
- package/filter/filter.so.d.ts +3 -0
- package/filter/filter.so.js +104 -0
- package/filter/filter.so.js.map +1 -0
- package/filter/filter.types.d.ts +67 -0
- package/filter/filter.types.js +7 -0
- package/filter/filter.types.js.map +1 -0
- package/flp/flp.crud.d.ts +7 -0
- package/flp/flp.crud.js +91 -0
- package/flp/flp.crud.js.map +1 -0
- package/flp/flp.so.d.ts +20 -0
- package/flp/flp.so.js +220 -0
- package/flp/flp.so.js.map +1 -0
- package/flp/flp.types.d.ts +93 -0
- package/flp/flp.types.js +3 -0
- package/flp/flp.types.js.map +1 -0
- package/flp/index.d.ts +3 -0
- package/flp/index.js +5 -0
- package/flp/index.js.map +1 -0
- package/flp/tasks/createFlp.task.d.ts +16 -0
- package/flp/tasks/createFlp.task.js +35 -0
- package/flp/tasks/createFlp.task.js.map +1 -0
- package/flp/tasks/deleteFlp.task.d.ts +16 -0
- package/flp/tasks/deleteFlp.task.js +35 -0
- package/flp/tasks/deleteFlp.task.js.map +1 -0
- package/flp/tasks/index.d.ts +5 -0
- package/flp/tasks/index.js +19 -0
- package/flp/tasks/index.js.map +1 -0
- package/flp/tasks/syncFlp.task.d.ts +20 -0
- package/flp/tasks/syncFlp.task.js +127 -0
- package/flp/tasks/syncFlp.task.js.map +1 -0
- package/flp/tasks/updateFlp.task.d.ts +16 -0
- package/flp/tasks/updateFlp.task.js +40 -0
- package/flp/tasks/updateFlp.task.js.map +1 -0
- package/folder/createFolderModelModifier.d.ts +36 -0
- package/folder/createFolderModelModifier.js +61 -0
- package/folder/createFolderModelModifier.js.map +1 -0
- package/folder/createFolderTypeDefs.d.ts +7 -0
- package/folder/createFolderTypeDefs.js +186 -0
- package/folder/createFolderTypeDefs.js.map +1 -0
- package/folder/folder.gql.d.ts +4 -3
- package/folder/folder.gql.js +146 -112
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.d.ts +51 -58
- package/folder/folder.types.js +2 -4
- package/folder/folder.types.js.map +1 -1
- package/index.d.ts +8 -3
- package/index.js +9 -27
- package/index.js.map +1 -1
- package/package.json +43 -35
- package/types.d.ts +27 -22
- package/types.js +6 -37
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +10 -0
- package/utils/FoldersCacheFactory.js +24 -0
- package/utils/FoldersCacheFactory.js.map +1 -0
- package/utils/ListCache.d.ts +23 -0
- package/utils/ListCache.js +23 -0
- package/utils/ListCache.js.map +1 -0
- package/utils/Path.d.ts +3 -0
- package/utils/Path.js +11 -0
- package/utils/Path.js.map +1 -0
- package/utils/acoRecordId.js +4 -10
- package/utils/acoRecordId.js.map +1 -1
- package/utils/compress.d.ts +4 -0
- package/utils/compress.js +12 -0
- package/utils/compress.js.map +1 -0
- package/utils/createListSort.d.ts +3 -2
- package/utils/createListSort.js +6 -9
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +2 -2
- package/utils/createOperationsWrapper.js +11 -18
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js +206 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js +23 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
- package/utils/decorators/ListEntriesFactory.d.ts +17 -0
- package/utils/decorators/ListEntriesFactory.js +106 -0
- package/utils/decorators/ListEntriesFactory.js.map +1 -0
- package/utils/decorators/hasRootFolderId.d.ts +7 -0
- package/utils/decorators/hasRootFolderId.js +19 -0
- package/utils/decorators/hasRootFolderId.js.map +1 -0
- package/utils/decorators/isPageModel.d.ts +5 -0
- package/utils/decorators/isPageModel.js +13 -0
- package/utils/decorators/isPageModel.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/ensureAuthentication.js +12 -0
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/pickEntryFieldValues.d.ts +3 -0
- package/utils/pickEntryFieldValues.js +23 -0
- package/utils/pickEntryFieldValues.js.map +1 -0
- package/utils/resolve.d.ts +1 -1
- package/utils/resolve.js +6 -11
- package/utils/resolve.js.map +1 -1
- package/createAcoCrud.d.ts +0 -2
- package/createAcoCrud.js +0 -17
- package/createAcoCrud.js.map +0 -1
- package/createAcoFields.d.ts +0 -2
- package/createAcoFields.js +0 -40
- package/createAcoFields.js.map +0 -1
- package/createAcoHooks.d.ts +0 -2
- package/createAcoHooks.js +0 -11
- package/createAcoHooks.js.map +0 -1
- package/createAcoModels.d.ts +0 -2
- package/createAcoModels.js +0 -57
- package/createAcoModels.js.map +0 -1
- package/folder/folder.crud.d.ts +0 -3
- package/folder/folder.crud.js +0 -92
- package/folder/folder.crud.js.map +0 -1
- package/folder/folder.model.d.ts +0 -4
- package/folder/folder.model.js +0 -75
- package/folder/folder.model.js.map +0 -1
- package/folder/folder.so.d.ts +0 -3
- package/folder/folder.so.js +0 -151
- package/folder/folder.so.js.map +0 -1
- package/folder/onFolderBeforeDelete.hook.d.ts +0 -2
- package/folder/onFolderBeforeDelete.hook.js +0 -53
- package/folder/onFolderBeforeDelete.hook.js.map +0 -1
- package/record/record.crud.d.ts +0 -3
- package/record/record.crud.js +0 -95
- package/record/record.crud.js.map +0 -1
- package/record/record.gql.d.ts +0 -3
- package/record/record.gql.js +0 -187
- package/record/record.gql.js.map +0 -1
- package/record/record.model.d.ts +0 -4
- package/record/record.model.js +0 -62
- package/record/record.model.js.map +0 -1
- package/record/record.so.d.ts +0 -3
- package/record/record.so.js +0 -139
- package/record/record.so.js.map +0 -1
- package/record/record.types.d.ts +0 -109
- package/record/record.types.js +0 -5
- package/record/record.types.js.map +0 -1
- package/utils/checkPermissions.d.ts +0 -2
- package/utils/checkPermissions.js +0 -14
- package/utils/checkPermissions.js.map +0 -1
- package/utils/createModelField.d.ts +0 -5
- package/utils/createModelField.js +0 -37
- package/utils/createModelField.js.map +0 -1
- package/utils/fieldResolver.d.ts +0 -16
- package/utils/fieldResolver.js +0 -44
- package/utils/fieldResolver.js.map +0 -1
- package/utils/getFieldValues.d.ts +0 -5
- package/utils/getFieldValues.js +0 -16
- package/utils/getFieldValues.js.map +0 -1
- package/utils/isInstallationPending.d.ts +0 -4
- package/utils/isInstallationPending.js +0 -21
- package/utils/isInstallationPending.js.map +0 -1
- package/utils/modelFactory.d.ts +0 -15
- package/utils/modelFactory.js +0 -25
- package/utils/modelFactory.js.map +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { createDecorator, Result } from "@webiny/feature/api";
|
|
2
|
+
import { FolderLevelPermissions } from "../../../flp/FolderLevelPermissions/index.js";
|
|
3
|
+
import { UpdateFolderUseCase } from "../abstractions.js";
|
|
4
|
+
import { GetFolderUseCase } from "../../GetFolder/index.js";
|
|
5
|
+
import { FolderCannotMoveToNewParent, FolderValidationError } from "../../../../domain/folder/errors.js";
|
|
6
|
+
class UpdateFolderWithFolderLevelPermissionsImpl {
|
|
7
|
+
constructor(getFolder, folderLevelPermissions, decoretee) {
|
|
8
|
+
this.getFolder = getFolder;
|
|
9
|
+
this.folderLevelPermissions = folderLevelPermissions;
|
|
10
|
+
this.decoretee = decoretee;
|
|
11
|
+
}
|
|
12
|
+
async execute(id, params) {
|
|
13
|
+
const originalResult = await this.getFolder.execute(id);
|
|
14
|
+
if (originalResult.isFail()) {
|
|
15
|
+
return Result.fail(originalResult.error);
|
|
16
|
+
}
|
|
17
|
+
const original = originalResult.value;
|
|
18
|
+
const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);
|
|
19
|
+
|
|
20
|
+
// Let's ensure current identity's permission allows the update operation.
|
|
21
|
+
await this.folderLevelPermissions.ensureCanAccessFolder({
|
|
22
|
+
permissions: originalPermissions,
|
|
23
|
+
rwd: "w"
|
|
24
|
+
});
|
|
25
|
+
const permissions = await this.folderLevelPermissions.getDefaultPermissions(params.permissions ?? []);
|
|
26
|
+
|
|
27
|
+
// Check if the user still has access to the folder with the provided permissions.
|
|
28
|
+
const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({
|
|
29
|
+
permissions,
|
|
30
|
+
rwd: "w"
|
|
31
|
+
});
|
|
32
|
+
if (!stillHasAccess) {
|
|
33
|
+
return Result.fail(new FolderValidationError(`Cannot continue because you would loose access to this folder.`));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Validate data.
|
|
37
|
+
if (Array.isArray(params.permissions)) {
|
|
38
|
+
for (const permission of params.permissions) {
|
|
39
|
+
const targetIsValid = permission.target.startsWith("admin:") || permission.target.startsWith("team:");
|
|
40
|
+
if (!targetIsValid) {
|
|
41
|
+
return Result.fail(new FolderValidationError(`Permission target "${permission.target}" is not valid.`));
|
|
42
|
+
}
|
|
43
|
+
if (permission.inheritedFrom) {
|
|
44
|
+
return Result.fail(new FolderValidationError(`Permission "inheritedFrom" cannot be set manually.`));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Parent change is not allowed if the user doesn't have access to the new parent.
|
|
50
|
+
if (params.parentId && params.parentId !== original.parentId) {
|
|
51
|
+
// Getting the parent folder permissions will throw an error if the user doesn't have access.
|
|
52
|
+
const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(params.parentId);
|
|
53
|
+
const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({
|
|
54
|
+
permissions: parentPermissions,
|
|
55
|
+
rwd: "w"
|
|
56
|
+
});
|
|
57
|
+
if (!canAccessFolder) {
|
|
58
|
+
return Result.fail(new FolderCannotMoveToNewParent());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const result = await this.decoretee.execute(id, params);
|
|
62
|
+
if (result.isFail()) {
|
|
63
|
+
return Result.fail(result.error);
|
|
64
|
+
}
|
|
65
|
+
return Result.ok({
|
|
66
|
+
...result.value,
|
|
67
|
+
permissions
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const UpdateFolderWithFolderLevelPermissions = createDecorator({
|
|
72
|
+
abstraction: UpdateFolderUseCase,
|
|
73
|
+
decorator: UpdateFolderWithFolderLevelPermissionsImpl,
|
|
74
|
+
dependencies: [GetFolderUseCase, FolderLevelPermissions]
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=UpdateFolderWithFolderLevelPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDecorator","Result","FolderLevelPermissions","UpdateFolderUseCase","GetFolderUseCase","FolderCannotMoveToNewParent","FolderValidationError","UpdateFolderWithFolderLevelPermissionsImpl","constructor","getFolder","folderLevelPermissions","decoretee","execute","id","params","originalResult","isFail","fail","error","original","value","originalPermissions","getFolderLevelPermissions","ensureCanAccessFolder","permissions","rwd","getDefaultPermissions","stillHasAccess","canAccessFolder","Array","isArray","permission","targetIsValid","target","startsWith","inheritedFrom","parentId","parentPermissions","result","ok","UpdateFolderWithFolderLevelPermissions","abstraction","decorator","dependencies"],"sources":["UpdateFolderWithFolderLevelPermissions.ts"],"sourcesContent":["import { createDecorator, Result } from \"@webiny/feature/api\";\nimport type { UpdateFolderParams } from \"~/folder/folder.types.js\";\nimport { FolderLevelPermissions } from \"~/features/flp/FolderLevelPermissions/index.js\";\nimport { UpdateFolderUseCase } from \"../abstractions.js\";\nimport { GetFolderUseCase } from \"~/features/folder/GetFolder/index.js\";\nimport { FolderCannotMoveToNewParent, FolderValidationError } from \"~/domain/folder/errors.js\";\n\nclass UpdateFolderWithFolderLevelPermissionsImpl implements UpdateFolderUseCase.Interface {\n private folderLevelPermissions: FolderLevelPermissions.Interface;\n private readonly decoretee: UpdateFolderUseCase.Interface;\n\n constructor(\n private getFolder: GetFolderUseCase.Interface,\n folderLevelPermissions: FolderLevelPermissions.Interface,\n decoretee: UpdateFolderUseCase.Interface\n ) {\n this.folderLevelPermissions = folderLevelPermissions;\n this.decoretee = decoretee;\n }\n\n async execute(id: string, params: UpdateFolderParams): UpdateFolderUseCase.Return {\n const originalResult = await this.getFolder.execute(id);\n\n if (originalResult.isFail()) {\n return Result.fail(originalResult.error);\n }\n\n const original = originalResult.value;\n\n const originalPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(id);\n\n // Let's ensure current identity's permission allows the update operation.\n await this.folderLevelPermissions.ensureCanAccessFolder({\n permissions: originalPermissions,\n rwd: \"w\"\n });\n\n const permissions = await this.folderLevelPermissions.getDefaultPermissions(\n params.permissions ?? []\n );\n\n // Check if the user still has access to the folder with the provided permissions.\n const stillHasAccess = await this.folderLevelPermissions.canAccessFolder({\n permissions,\n rwd: \"w\"\n });\n\n if (!stillHasAccess) {\n return Result.fail(\n new FolderValidationError(\n `Cannot continue because you would loose access to this folder.`\n )\n );\n }\n\n // Validate data.\n if (Array.isArray(params.permissions)) {\n for (const permission of params.permissions) {\n const targetIsValid =\n permission.target.startsWith(\"admin:\") || permission.target.startsWith(\"team:\");\n if (!targetIsValid) {\n return Result.fail(\n new FolderValidationError(\n `Permission target \"${permission.target}\" is not valid.`\n )\n );\n }\n\n if (permission.inheritedFrom) {\n return Result.fail(\n new FolderValidationError(\n `Permission \"inheritedFrom\" cannot be set manually.`\n )\n );\n }\n }\n }\n\n // Parent change is not allowed if the user doesn't have access to the new parent.\n if (params.parentId && params.parentId !== original.parentId) {\n // Getting the parent folder permissions will throw an error if the user doesn't have access.\n const parentPermissions = await this.folderLevelPermissions.getFolderLevelPermissions(\n params.parentId\n );\n\n const canAccessFolder = await this.folderLevelPermissions.canAccessFolder({\n permissions: parentPermissions,\n rwd: \"w\"\n });\n\n if (!canAccessFolder) {\n return Result.fail(new FolderCannotMoveToNewParent());\n }\n }\n\n const result = await this.decoretee.execute(id, params);\n\n if (result.isFail()) {\n return Result.fail(result.error);\n }\n\n return Result.ok({\n ...result.value,\n permissions\n });\n }\n}\n\nexport const UpdateFolderWithFolderLevelPermissions = createDecorator({\n abstraction: UpdateFolderUseCase,\n decorator: UpdateFolderWithFolderLevelPermissionsImpl,\n dependencies: [GetFolderUseCase, FolderLevelPermissions]\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,qBAAqB;AAE7D,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AACzB,SAASC,2BAA2B,EAAEC,qBAAqB;AAE3D,MAAMC,0CAA0C,CAA0C;EAItFC,WAAWA,CACCC,SAAqC,EAC7CC,sBAAwD,EACxDC,SAAwC,EAC1C;IAAA,KAHUF,SAAqC,GAArCA,SAAqC;IAI7C,IAAI,CAACC,sBAAsB,GAAGA,sBAAsB;IACpD,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAEC,MAA0B,EAA8B;IAC9E,MAAMC,cAAc,GAAG,MAAM,IAAI,CAACN,SAAS,CAACG,OAAO,CAACC,EAAE,CAAC;IAEvD,IAAIE,cAAc,CAACC,MAAM,CAAC,CAAC,EAAE;MACzB,OAAOf,MAAM,CAACgB,IAAI,CAACF,cAAc,CAACG,KAAK,CAAC;IAC5C;IAEA,MAAMC,QAAQ,GAAGJ,cAAc,CAACK,KAAK;IAErC,MAAMC,mBAAmB,GAAG,MAAM,IAAI,CAACX,sBAAsB,CAACY,yBAAyB,CAACT,EAAE,CAAC;;IAE3F;IACA,MAAM,IAAI,CAACH,sBAAsB,CAACa,qBAAqB,CAAC;MACpDC,WAAW,EAAEH,mBAAmB;MAChCI,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,MAAMD,WAAW,GAAG,MAAM,IAAI,CAACd,sBAAsB,CAACgB,qBAAqB,CACvEZ,MAAM,CAACU,WAAW,IAAI,EAC1B,CAAC;;IAED;IACA,MAAMG,cAAc,GAAG,MAAM,IAAI,CAACjB,sBAAsB,CAACkB,eAAe,CAAC;MACrEJ,WAAW;MACXC,GAAG,EAAE;IACT,CAAC,CAAC;IAEF,IAAI,CAACE,cAAc,EAAE;MACjB,OAAO1B,MAAM,CAACgB,IAAI,CACd,IAAIX,qBAAqB,CACrB,gEACJ,CACJ,CAAC;IACL;;IAEA;IACA,IAAIuB,KAAK,CAACC,OAAO,CAAChB,MAAM,CAACU,WAAW,CAAC,EAAE;MACnC,KAAK,MAAMO,UAAU,IAAIjB,MAAM,CAACU,WAAW,EAAE;QACzC,MAAMQ,aAAa,GACfD,UAAU,CAACE,MAAM,CAACC,UAAU,CAAC,QAAQ,CAAC,IAAIH,UAAU,CAACE,MAAM,CAACC,UAAU,CAAC,OAAO,CAAC;QACnF,IAAI,CAACF,aAAa,EAAE;UAChB,OAAO/B,MAAM,CAACgB,IAAI,CACd,IAAIX,qBAAqB,CACrB,sBAAsByB,UAAU,CAACE,MAAM,iBAC3C,CACJ,CAAC;QACL;QAEA,IAAIF,UAAU,CAACI,aAAa,EAAE;UAC1B,OAAOlC,MAAM,CAACgB,IAAI,CACd,IAAIX,qBAAqB,CACrB,oDACJ,CACJ,CAAC;QACL;MACJ;IACJ;;IAEA;IACA,IAAIQ,MAAM,CAACsB,QAAQ,IAAItB,MAAM,CAACsB,QAAQ,KAAKjB,QAAQ,CAACiB,QAAQ,EAAE;MAC1D;MACA,MAAMC,iBAAiB,GAAG,MAAM,IAAI,CAAC3B,sBAAsB,CAACY,yBAAyB,CACjFR,MAAM,CAACsB,QACX,CAAC;MAED,MAAMR,eAAe,GAAG,MAAM,IAAI,CAAClB,sBAAsB,CAACkB,eAAe,CAAC;QACtEJ,WAAW,EAAEa,iBAAiB;QAC9BZ,GAAG,EAAE;MACT,CAAC,CAAC;MAEF,IAAI,CAACG,eAAe,EAAE;QAClB,OAAO3B,MAAM,CAACgB,IAAI,CAAC,IAAIZ,2BAA2B,CAAC,CAAC,CAAC;MACzD;IACJ;IAEA,MAAMiC,MAAM,GAAG,MAAM,IAAI,CAAC3B,SAAS,CAACC,OAAO,CAACC,EAAE,EAAEC,MAAM,CAAC;IAEvD,IAAIwB,MAAM,CAACtB,MAAM,CAAC,CAAC,EAAE;MACjB,OAAOf,MAAM,CAACgB,IAAI,CAACqB,MAAM,CAACpB,KAAK,CAAC;IACpC;IAEA,OAAOjB,MAAM,CAACsC,EAAE,CAAC;MACb,GAAGD,MAAM,CAAClB,KAAK;MACfI;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMgB,sCAAsC,GAAGxC,eAAe,CAAC;EAClEyC,WAAW,EAAEtC,mBAAmB;EAChCuC,SAAS,EAAEnC,0CAA0C;EACrDoC,YAAY,EAAE,CAACvC,gBAAgB,EAAEF,sBAAsB;AAC3D,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from "./abstractions.js";
|
|
3
|
+
export declare class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {
|
|
4
|
+
eventType: "folder.beforeUpdate";
|
|
5
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderBeforeUpdatePayload>>>;
|
|
6
|
+
}
|
|
7
|
+
export declare class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {
|
|
8
|
+
eventType: "folder.afterUpdate";
|
|
9
|
+
getHandlerAbstraction(): import("@webiny/di").Abstraction<import("@webiny/api-core/features/EventPublisher").IEventHandler<DomainEvent<FolderAfterUpdatePayload>>>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DomainEvent } from "@webiny/api-core/features/EventPublisher";
|
|
2
|
+
import { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from "./abstractions.js";
|
|
3
|
+
// FolderBeforeUpdate Event
|
|
4
|
+
export class FolderBeforeUpdateEvent extends DomainEvent {
|
|
5
|
+
eventType = "folder.beforeUpdate";
|
|
6
|
+
getHandlerAbstraction() {
|
|
7
|
+
return FolderBeforeUpdateHandler;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// FolderAfterUpdate Event
|
|
12
|
+
export class FolderAfterUpdateEvent extends DomainEvent {
|
|
13
|
+
eventType = "folder.afterUpdate";
|
|
14
|
+
getHandlerAbstraction() {
|
|
15
|
+
return FolderAfterUpdateHandler;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DomainEvent","FolderBeforeUpdateHandler","FolderAfterUpdateHandler","FolderBeforeUpdateEvent","eventType","getHandlerAbstraction","FolderAfterUpdateEvent"],"sources":["events.ts"],"sourcesContent":["import { DomainEvent } from \"@webiny/api-core/features/EventPublisher\";\nimport { FolderBeforeUpdateHandler, FolderAfterUpdateHandler } from \"./abstractions.js\";\nimport type { FolderBeforeUpdatePayload, FolderAfterUpdatePayload } from \"./abstractions.js\";\n\n// FolderBeforeUpdate Event\nexport class FolderBeforeUpdateEvent extends DomainEvent<FolderBeforeUpdatePayload> {\n eventType = \"folder.beforeUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderBeforeUpdateHandler;\n }\n}\n\n// FolderAfterUpdate Event\nexport class FolderAfterUpdateEvent extends DomainEvent<FolderAfterUpdatePayload> {\n eventType = \"folder.afterUpdate\" as const;\n\n getHandlerAbstraction() {\n return FolderAfterUpdateHandler;\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,0CAA0C;AACtE,SAASC,yBAAyB,EAAEC,wBAAwB;AAG5D;AACA,OAAO,MAAMC,uBAAuB,SAASH,WAAW,CAA4B;EAChFI,SAAS,GAAG,qBAAqB;EAEjCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOJ,yBAAyB;EACpC;AACJ;;AAEA;AACA,OAAO,MAAMK,sBAAsB,SAASN,WAAW,CAA2B;EAC9EI,SAAS,GAAG,oBAAoB;EAEhCC,qBAAqBA,CAAA,EAAG;IACpB,OAAOH,wBAAwB;EACnC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UpdateFolderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateFolderRepository } from "./UpdateFolderRepository.js";
|
|
3
|
+
import { UpdateFolderUseCase } from "./UpdateFolderUseCase.js";
|
|
4
|
+
import { UpdateFolderWithFolderLevelPermissions } from "./decorators/UpdateFolderWithFolderLevelPermissions.js";
|
|
5
|
+
export const UpdateFolderFeature = createFeature({
|
|
6
|
+
name: "UpdateFolder",
|
|
7
|
+
register(container) {
|
|
8
|
+
container.register(UpdateFolderRepository).inSingletonScope();
|
|
9
|
+
container.register(UpdateFolderUseCase);
|
|
10
|
+
container.registerDecorator(UpdateFolderWithFolderLevelPermissions);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","UpdateFolderRepository","UpdateFolderUseCase","UpdateFolderWithFolderLevelPermissions","UpdateFolderFeature","name","register","container","inSingletonScope","registerDecorator"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport type { Container } from \"@webiny/di\";\nimport { UpdateFolderRepository } from \"./UpdateFolderRepository.js\";\nimport { UpdateFolderUseCase } from \"./UpdateFolderUseCase.js\";\nimport { UpdateFolderWithFolderLevelPermissions } from \"./decorators/UpdateFolderWithFolderLevelPermissions.js\";\n\nexport const UpdateFolderFeature = createFeature({\n name: \"UpdateFolder\",\n register(container: Container) {\n container.register(UpdateFolderRepository).inSingletonScope();\n container.register(UpdateFolderUseCase);\n container.registerDecorator(UpdateFolderWithFolderLevelPermissions);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AAEnD,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,sCAAsC;AAE/C,OAAO,MAAMC,mBAAmB,GAAGJ,aAAa,CAAC;EAC7CK,IAAI,EAAE,cAAc;EACpBC,QAAQA,CAACC,SAAoB,EAAE;IAC3BA,SAAS,CAACD,QAAQ,CAACL,sBAAsB,CAAC,CAACO,gBAAgB,CAAC,CAAC;IAC7DD,SAAS,CAACD,QAAQ,CAACJ,mBAAmB,CAAC;IACvCK,SAAS,CAACE,iBAAiB,CAACN,sCAAsC,CAAC;EACvE;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UpdateFolderFeature","FolderAfterUpdateHandler","FolderBeforeUpdateHandler","UpdateFolderUseCase"],"sources":["index.ts"],"sourcesContent":["export { UpdateFolderFeature } from \"./feature.js\";\nexport {\n FolderAfterUpdateHandler,\n FolderBeforeUpdateHandler,\n UpdateFolderUseCase\n} from \"./abstractions.js\";\n"],"mappings":"AAAA,SAASA,mBAAmB;AAC5B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export class EntryToFolderMapper {
|
|
2
|
+
static toFolder(entry) {
|
|
3
|
+
return {
|
|
4
|
+
id: entry.entryId,
|
|
5
|
+
createdOn: entry.createdOn,
|
|
6
|
+
modifiedOn: entry.modifiedOn ?? null,
|
|
7
|
+
savedOn: entry.savedOn,
|
|
8
|
+
createdBy: entry.createdBy,
|
|
9
|
+
modifiedBy: entry.modifiedBy ?? null,
|
|
10
|
+
savedBy: entry.savedBy,
|
|
11
|
+
title: entry.values.title,
|
|
12
|
+
slug: entry.values.slug,
|
|
13
|
+
permissions: entry.values.permissions,
|
|
14
|
+
type: entry.values.type,
|
|
15
|
+
parentId: entry.values.parentId ?? null,
|
|
16
|
+
path: entry.values.path,
|
|
17
|
+
extensions: entry.values.extensions
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=EntryToFolderMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EntryToFolderMapper","toFolder","entry","id","entryId","createdOn","modifiedOn","savedOn","createdBy","modifiedBy","savedBy","title","values","slug","permissions","type","parentId","path","extensions"],"sources":["EntryToFolderMapper.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types\";\nimport type { CmsEntryFolder, Folder } from \"~/folder/folder.types.js\";\n\nexport class EntryToFolderMapper {\n static toFolder(entry: CmsEntry<CmsEntryFolder>): Folder {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n modifiedOn: entry.modifiedOn ?? null,\n savedOn: entry.savedOn,\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy ?? null,\n savedBy: entry.savedBy,\n title: entry.values.title,\n slug: entry.values.slug,\n permissions: entry.values.permissions,\n type: entry.values.type,\n parentId: entry.values.parentId ?? null,\n path: entry.values.path,\n extensions: entry.values.extensions\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,mBAAmB,CAAC;EAC7B,OAAOC,QAAQA,CAACC,KAA+B,EAAU;IACrD,OAAO;MACHC,EAAE,EAAED,KAAK,CAACE,OAAO;MACjBC,SAAS,EAAEH,KAAK,CAACG,SAAS;MAC1BC,UAAU,EAAEJ,KAAK,CAACI,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBC,SAAS,EAAEN,KAAK,CAACM,SAAS;MAC1BC,UAAU,EAAEP,KAAK,CAACO,UAAU,IAAI,IAAI;MACpCC,OAAO,EAAER,KAAK,CAACQ,OAAO;MACtBC,KAAK,EAAET,KAAK,CAACU,MAAM,CAACD,KAAK;MACzBE,IAAI,EAAEX,KAAK,CAACU,MAAM,CAACC,IAAI;MACvBC,WAAW,EAAEZ,KAAK,CAACU,MAAM,CAACE,WAAW;MACrCC,IAAI,EAAEb,KAAK,CAACU,MAAM,CAACG,IAAI;MACvBC,QAAQ,EAAEd,KAAK,CAACU,MAAM,CAACI,QAAQ,IAAI,IAAI;MACvCC,IAAI,EAAEf,KAAK,CAACU,MAAM,CAACK,IAAI;MACvBC,UAAU,EAAEhB,KAAK,CAACU,MAAM,CAACM;IAC7B,CAAC;EACL;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AcoStorageOperations as IAcoStorageOperations } from "../../../types.js";
|
|
2
|
+
export declare const FilterStorageOperations: import("@webiny/di").Abstraction<import("~/types.js").AcoFilterStorageOperations>;
|
|
3
|
+
export declare namespace FilterStorageOperations {
|
|
4
|
+
type Interface = IAcoStorageOperations["filter"];
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","FilterStorageOperations"],"sources":["abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { AcoStorageOperations as IAcoStorageOperations } from \"~/types.js\";\n\nexport const FilterStorageOperations =\n createAbstraction<IAcoStorageOperations[\"filter\"]>(\"FilterStorageOperations\");\n\nexport namespace FilterStorageOperations {\n export type Interface = IAcoStorageOperations[\"filter\"];\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAGvD,OAAO,MAAMC,uBAAuB,GAChCD,iBAAiB,CAAkC,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export const createFilterCrudMethods = ({
|
|
2
|
+
storageOperations
|
|
3
|
+
}) => {
|
|
4
|
+
return {
|
|
5
|
+
async get(id) {
|
|
6
|
+
return storageOperations.filter.getFilter({
|
|
7
|
+
id
|
|
8
|
+
});
|
|
9
|
+
},
|
|
10
|
+
async list(params) {
|
|
11
|
+
return storageOperations.filter.listFilters(params);
|
|
12
|
+
},
|
|
13
|
+
async create(data) {
|
|
14
|
+
return storageOperations.filter.createFilter({
|
|
15
|
+
data
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
async update(id, data) {
|
|
19
|
+
return await storageOperations.filter.updateFilter({
|
|
20
|
+
id,
|
|
21
|
+
data
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
async delete(id) {
|
|
25
|
+
await storageOperations.filter.deleteFilter({
|
|
26
|
+
id
|
|
27
|
+
});
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=filter.crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFilterCrudMethods","storageOperations","get","id","filter","getFilter","list","params","listFilters","create","data","createFilter","update","updateFilter","delete","deleteFilter"],"sources":["filter.crud.ts"],"sourcesContent":["import type { CreateAcoParams } from \"~/types.js\";\nimport type { AcoFilterCrud } from \"./filter.types.js\";\n\nexport const createFilterCrudMethods = ({ storageOperations }: CreateAcoParams): AcoFilterCrud => {\n return {\n async get(id) {\n return storageOperations.filter.getFilter({ id });\n },\n async list(params) {\n return storageOperations.filter.listFilters(params);\n },\n async create(data) {\n return storageOperations.filter.createFilter({ data });\n },\n async update(id, data) {\n return await storageOperations.filter.updateFilter({ id, data });\n },\n async delete(id: string) {\n await storageOperations.filter.deleteFilter({ id });\n return true;\n }\n };\n};\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAoB;EAC9F,OAAO;IACH,MAAMC,GAAGA,CAACC,EAAE,EAAE;MACV,OAAOF,iBAAiB,CAACG,MAAM,CAACC,SAAS,CAAC;QAAEF;MAAG,CAAC,CAAC;IACrD,CAAC;IACD,MAAMG,IAAIA,CAACC,MAAM,EAAE;MACf,OAAON,iBAAiB,CAACG,MAAM,CAACI,WAAW,CAACD,MAAM,CAAC;IACvD,CAAC;IACD,MAAME,MAAMA,CAACC,IAAI,EAAE;MACf,OAAOT,iBAAiB,CAACG,MAAM,CAACO,YAAY,CAAC;QAAED;MAAK,CAAC,CAAC;IAC1D,CAAC;IACD,MAAME,MAAMA,CAACT,EAAE,EAAEO,IAAI,EAAE;MACnB,OAAO,MAAMT,iBAAiB,CAACG,MAAM,CAACS,YAAY,CAAC;QAAEV,EAAE;QAAEO;MAAK,CAAC,CAAC;IACpE,CAAC;IACD,MAAMI,MAAMA,CAACX,EAAU,EAAE;MACrB,MAAMF,iBAAiB,CAACG,MAAM,CAACW,YAAY,CAAC;QAAEZ;MAAG,CAAC,CAAC;MACnD,OAAO,IAAI;IACf;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { ErrorResponse, ListResponse } from "@webiny/handler-graphql/responses.js";
|
|
2
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js";
|
|
3
|
+
import { ensureAuthentication } from "../utils/ensureAuthentication.js";
|
|
4
|
+
import { resolve } from "../utils/resolve.js";
|
|
5
|
+
export const filterSchema = new GraphQLSchemaPlugin({
|
|
6
|
+
typeDefs: /* GraphQL */`
|
|
7
|
+
enum OperationEnum {
|
|
8
|
+
AND
|
|
9
|
+
OR
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type GroupFilter {
|
|
13
|
+
field: String!
|
|
14
|
+
condition: String!
|
|
15
|
+
value: String!
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type Group {
|
|
19
|
+
operation: OperationEnum!
|
|
20
|
+
filters: [GroupFilter]!
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type Filter {
|
|
24
|
+
id: ID!
|
|
25
|
+
name: String!
|
|
26
|
+
description: String
|
|
27
|
+
namespace: String!
|
|
28
|
+
operation: OperationEnum!
|
|
29
|
+
groups: [Group]!
|
|
30
|
+
createdOn: DateTime
|
|
31
|
+
modifiedOn: DateTime
|
|
32
|
+
savedOn: DateTime
|
|
33
|
+
createdBy: AcoUser
|
|
34
|
+
modifiedBy: AcoUser
|
|
35
|
+
savedBy: AcoUser
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
input GroupFilterInput {
|
|
39
|
+
field: String!
|
|
40
|
+
condition: String!
|
|
41
|
+
value: String!
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
input GroupInput {
|
|
45
|
+
operation: OperationEnum!
|
|
46
|
+
filters: [GroupFilterInput]!
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
input FilterCreateInput {
|
|
50
|
+
id: ID!
|
|
51
|
+
name: String!
|
|
52
|
+
description: String
|
|
53
|
+
namespace: String!
|
|
54
|
+
operation: OperationEnum!
|
|
55
|
+
groups: [GroupInput]!
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
input FilterUpdateInput {
|
|
59
|
+
name: String
|
|
60
|
+
description: String
|
|
61
|
+
namespace: String
|
|
62
|
+
operation: OperationEnum
|
|
63
|
+
groups: [GroupInput]
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
input FiltersListWhereInput {
|
|
67
|
+
namespace: String
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
type FilterResponse {
|
|
71
|
+
data: Filter
|
|
72
|
+
error: AcoError
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
type FilterListResponse {
|
|
76
|
+
data: [Filter]
|
|
77
|
+
error: AcoError
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
extend type AcoQuery {
|
|
81
|
+
getFilter(id: ID!): FilterResponse
|
|
82
|
+
listFilters(
|
|
83
|
+
where: FiltersListWhereInput!
|
|
84
|
+
limit: Int
|
|
85
|
+
after: String
|
|
86
|
+
sort: AcoSort
|
|
87
|
+
): FilterListResponse
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
extend type AcoMutation {
|
|
91
|
+
createFilter(data: FilterCreateInput!): FilterResponse
|
|
92
|
+
updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse
|
|
93
|
+
deleteFilter(id: ID!): AcoBooleanResponse
|
|
94
|
+
}
|
|
95
|
+
`,
|
|
96
|
+
resolvers: {
|
|
97
|
+
AcoQuery: {
|
|
98
|
+
getFilter: async (_, {
|
|
99
|
+
id
|
|
100
|
+
}, context) => {
|
|
101
|
+
return resolve(() => {
|
|
102
|
+
ensureAuthentication(context);
|
|
103
|
+
return context.aco.filter.get(id);
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
listFilters: async (_, args, context) => {
|
|
107
|
+
try {
|
|
108
|
+
ensureAuthentication(context);
|
|
109
|
+
const [entries, meta] = await context.aco.filter.list(args);
|
|
110
|
+
return new ListResponse(entries, meta);
|
|
111
|
+
} catch (e) {
|
|
112
|
+
return new ErrorResponse(e);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
AcoMutation: {
|
|
117
|
+
createFilter: async (_, {
|
|
118
|
+
data
|
|
119
|
+
}, context) => {
|
|
120
|
+
return resolve(() => {
|
|
121
|
+
ensureAuthentication(context);
|
|
122
|
+
return context.aco.filter.create(data);
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
updateFilter: async (_, {
|
|
126
|
+
id,
|
|
127
|
+
data
|
|
128
|
+
}, context) => {
|
|
129
|
+
return resolve(() => {
|
|
130
|
+
ensureAuthentication(context);
|
|
131
|
+
return context.aco.filter.update(id, data);
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
deleteFilter: async (_, {
|
|
135
|
+
id
|
|
136
|
+
}, context) => {
|
|
137
|
+
return resolve(() => {
|
|
138
|
+
ensureAuthentication(context);
|
|
139
|
+
return context.aco.filter.delete(id);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=filter.gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ErrorResponse","ListResponse","GraphQLSchemaPlugin","ensureAuthentication","resolve","filterSchema","typeDefs","resolvers","AcoQuery","getFilter","_","id","context","aco","filter","get","listFilters","args","entries","meta","list","e","AcoMutation","createFilter","data","create","updateFilter","update","deleteFilter","delete"],"sources":["filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/handler-graphql/responses.js\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin.js\";\n\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication.js\";\nimport { resolve } from \"~/utils/resolve.js\";\n\nimport type { AcoContext } from \"~/types.js\";\n\nexport const filterSchema = new GraphQLSchemaPlugin<AcoContext>({\n typeDefs: /* GraphQL */ `\n enum OperationEnum {\n AND\n OR\n }\n\n type GroupFilter {\n field: String!\n condition: String!\n value: String!\n }\n\n type Group {\n operation: OperationEnum!\n filters: [GroupFilter]!\n }\n\n type Filter {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [Group]!\n createdOn: DateTime\n modifiedOn: DateTime\n savedOn: DateTime\n createdBy: AcoUser\n modifiedBy: AcoUser\n savedBy: AcoUser\n }\n\n input GroupFilterInput {\n field: String!\n condition: String!\n value: String!\n }\n\n input GroupInput {\n operation: OperationEnum!\n filters: [GroupFilterInput]!\n }\n\n input FilterCreateInput {\n id: ID!\n name: String!\n description: String\n namespace: String!\n operation: OperationEnum!\n groups: [GroupInput]!\n }\n\n input FilterUpdateInput {\n name: String\n description: String\n namespace: String\n operation: OperationEnum\n groups: [GroupInput]\n }\n\n input FiltersListWhereInput {\n namespace: String\n }\n\n type FilterResponse {\n data: Filter\n error: AcoError\n }\n\n type FilterListResponse {\n data: [Filter]\n error: AcoError\n }\n\n extend type AcoQuery {\n getFilter(id: ID!): FilterResponse\n listFilters(\n where: FiltersListWhereInput!\n limit: Int\n after: String\n sort: AcoSort\n ): FilterListResponse\n }\n\n extend type AcoMutation {\n createFilter(data: FilterCreateInput!): FilterResponse\n updateFilter(id: ID!, data: FilterUpdateInput!): FilterResponse\n deleteFilter(id: ID!): AcoBooleanResponse\n }\n `,\n resolvers: {\n AcoQuery: {\n getFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.get(id);\n });\n },\n listFilters: async (_, args: any, context) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await context.aco.filter.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n AcoMutation: {\n createFilter: async (_, { data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.create(data);\n });\n },\n updateFilter: async (_, { id, data }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.update(id, data);\n });\n },\n deleteFilter: async (_, { id }, context) => {\n return resolve(() => {\n ensureAuthentication(context);\n return context.aco.filter.delete(id);\n });\n }\n }\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,YAAY,QAAQ,sCAAsC;AAClF,SAASC,mBAAmB,QAAQ,wDAAwD;AAE5F,SAASC,oBAAoB;AAC7B,SAASC,OAAO;AAIhB,OAAO,MAAMC,YAAY,GAAG,IAAIH,mBAAmB,CAAa;EAC5DI,QAAQ,EAAE,aAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,QAAQ,EAAE;MACNC,SAAS,EAAE,MAAAA,CAAOC,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACrC,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACC,GAAG,CAACJ,EAAE,CAAC;QACrC,CAAC,CAAC;MACN,CAAC;MACDK,WAAW,EAAE,MAAAA,CAAON,CAAC,EAAEO,IAAS,EAAEL,OAAO,KAAK;QAC1C,IAAI;UACAT,oBAAoB,CAACS,OAAO,CAAC;UAC7B,MAAM,CAACM,OAAO,EAAEC,IAAI,CAAC,GAAG,MAAMP,OAAO,CAACC,GAAG,CAACC,MAAM,CAACM,IAAI,CAACH,IAAI,CAAC;UAC3D,OAAO,IAAIhB,YAAY,CAACiB,OAAO,EAAEC,IAAI,CAAC;QAC1C,CAAC,CAAC,OAAOE,CAAC,EAAE;UACR,OAAO,IAAIrB,aAAa,CAACqB,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IACDC,WAAW,EAAE;MACTC,YAAY,EAAE,MAAAA,CAAOb,CAAC,EAAE;QAAEc;MAAK,CAAC,EAAEZ,OAAO,KAAK;QAC1C,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACW,MAAM,CAACD,IAAI,CAAC;QAC1C,CAAC,CAAC;MACN,CAAC;MACDE,YAAY,EAAE,MAAAA,CAAOhB,CAAC,EAAE;QAAEC,EAAE;QAAEa;MAAK,CAAC,EAAEZ,OAAO,KAAK;QAC9C,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACa,MAAM,CAAChB,EAAE,EAAEa,IAAI,CAAC;QAC9C,CAAC,CAAC;MACN,CAAC;MACDI,YAAY,EAAE,MAAAA,CAAOlB,CAAC,EAAE;QAAEC;MAAG,CAAC,EAAEC,OAAO,KAAK;QACxC,OAAOR,OAAO,CAAC,MAAM;UACjBD,oBAAoB,CAACS,OAAO,CAAC;UAC7B,OAAOA,OAAO,CAACC,GAAG,CAACC,MAAM,CAACe,MAAM,CAAClB,EAAE,CAAC;QACxC,CAAC,CAAC;MACN;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
export declare const FILTER_MODEL_ID: string;
|
|
3
|
+
declare class FilterPrivateModelImpl implements ModelFactory.Interface {
|
|
4
|
+
execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PrivateModelBuilder[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare const FilterPrivateModel: typeof FilterPrivateModelImpl & {
|
|
7
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
export const FILTER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "acoFilter" : "wbyAcoFilter";
|
|
3
|
+
class FilterPrivateModelImpl {
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
return [builder.private({
|
|
6
|
+
modelId: FILTER_MODEL_ID,
|
|
7
|
+
name: "ACO - Filter"
|
|
8
|
+
}).fields(fields => ({
|
|
9
|
+
name: fields.text().label("Name").required(),
|
|
10
|
+
description: fields.text().label("Description"),
|
|
11
|
+
namespace: fields.text().label("Model Id").required(),
|
|
12
|
+
operation: fields.text().label("Operation").required().predefinedValues([{
|
|
13
|
+
label: "AND",
|
|
14
|
+
value: "AND"
|
|
15
|
+
}, {
|
|
16
|
+
label: "OR",
|
|
17
|
+
value: "OR"
|
|
18
|
+
}]),
|
|
19
|
+
groups: fields.object().label("Groups").list().listMinLength(1, "At least one group is required.").fields(fields => ({
|
|
20
|
+
operation: fields.text().label("Operation").required().predefinedValues([{
|
|
21
|
+
label: "AND",
|
|
22
|
+
value: "AND"
|
|
23
|
+
}, {
|
|
24
|
+
label: "OR",
|
|
25
|
+
value: "OR"
|
|
26
|
+
}]),
|
|
27
|
+
filters: fields.object().label("Filters").list().listMinLength(1, "At least one filter is required.").fields(filterFields => ({
|
|
28
|
+
field: filterFields.text().label("Field").required(),
|
|
29
|
+
condition: filterFields.text().label("Condition").required(),
|
|
30
|
+
value: filterFields.text().label("Value").required()
|
|
31
|
+
}))
|
|
32
|
+
}))
|
|
33
|
+
}))];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const FilterPrivateModel = ModelFactory.createImplementation({
|
|
37
|
+
implementation: FilterPrivateModelImpl,
|
|
38
|
+
dependencies: []
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=filter.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ModelFactory","FILTER_MODEL_ID","process","env","WEBINY_API_LEGACY_MODELS","FilterPrivateModelImpl","execute","builder","private","modelId","name","fields","text","label","required","description","namespace","operation","predefinedValues","value","groups","object","list","listMinLength","filters","filterFields","field","condition","FilterPrivateModel","createImplementation","implementation","dependencies"],"sources":["filter.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\n\nexport const FILTER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"acoFilter\" : \"wbyAcoFilter\";\n\nclass FilterPrivateModelImpl implements ModelFactory.Interface {\n public async execute(builder: ModelFactory.Builder) {\n return [\n builder\n .private({\n modelId: FILTER_MODEL_ID,\n name: \"ACO - Filter\"\n })\n .fields(fields => ({\n name: fields.text().label(\"Name\").required(),\n description: fields.text().label(\"Description\"),\n namespace: fields.text().label(\"Model Id\").required(),\n operation: fields\n .text()\n .label(\"Operation\")\n .required()\n .predefinedValues([\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]),\n groups: fields\n .object()\n .label(\"Groups\")\n .list()\n .listMinLength(1, \"At least one group is required.\")\n .fields(fields => ({\n operation: fields\n .text()\n .label(\"Operation\")\n .required()\n .predefinedValues([\n {\n label: \"AND\",\n value: \"AND\"\n },\n {\n label: \"OR\",\n value: \"OR\"\n }\n ]),\n filters: fields\n .object()\n .label(\"Filters\")\n .list()\n .listMinLength(1, \"At least one filter is required.\")\n .fields(filterFields => ({\n field: filterFields.text().label(\"Field\").required(),\n condition: filterFields.text().label(\"Condition\").required(),\n value: filterFields.text().label(\"Value\").required()\n }))\n }))\n }))\n ];\n }\n}\n\nexport const FilterPrivateModel = ModelFactory.createImplementation({\n implementation: FilterPrivateModelImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,yDAAyD;AAEtF,OAAO,MAAMC,eAAe,GAAGC,OAAO,CAACC,GAAG,CAACC,wBAAwB,GAAG,WAAW,GAAG,cAAc;AAElG,MAAMC,sBAAsB,CAAmC;EAC3D,MAAaC,OAAOA,CAACC,OAA6B,EAAE;IAChD,OAAO,CACHA,OAAO,CACFC,OAAO,CAAC;MACLC,OAAO,EAAER,eAAe;MACxBS,IAAI,EAAE;IACV,CAAC,CAAC,CACDC,MAAM,CAACA,MAAM,KAAK;MACfD,IAAI,EAAEC,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAACC,QAAQ,CAAC,CAAC;MAC5CC,WAAW,EAAEJ,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,aAAa,CAAC;MAC/CG,SAAS,EAAEL,MAAM,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,UAAU,CAAC,CAACC,QAAQ,CAAC,CAAC;MACrDG,SAAS,EAAEN,MAAM,CACZC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,WAAW,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVI,gBAAgB,CAAC,CACd;QACIL,KAAK,EAAE,KAAK;QACZM,KAAK,EAAE;MACX,CAAC,EACD;QACIN,KAAK,EAAE,IAAI;QACXM,KAAK,EAAE;MACX,CAAC,CACJ,CAAC;MACNC,MAAM,EAAET,MAAM,CACTU,MAAM,CAAC,CAAC,CACRR,KAAK,CAAC,QAAQ,CAAC,CACfS,IAAI,CAAC,CAAC,CACNC,aAAa,CAAC,CAAC,EAAE,iCAAiC,CAAC,CACnDZ,MAAM,CAACA,MAAM,KAAK;QACfM,SAAS,EAAEN,MAAM,CACZC,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,WAAW,CAAC,CAClBC,QAAQ,CAAC,CAAC,CACVI,gBAAgB,CAAC,CACd;UACIL,KAAK,EAAE,KAAK;UACZM,KAAK,EAAE;QACX,CAAC,EACD;UACIN,KAAK,EAAE,IAAI;UACXM,KAAK,EAAE;QACX,CAAC,CACJ,CAAC;QACNK,OAAO,EAAEb,MAAM,CACVU,MAAM,CAAC,CAAC,CACRR,KAAK,CAAC,SAAS,CAAC,CAChBS,IAAI,CAAC,CAAC,CACNC,aAAa,CAAC,CAAC,EAAE,kCAAkC,CAAC,CACpDZ,MAAM,CAACc,YAAY,KAAK;UACrBC,KAAK,EAAED,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC,CAAC;UACpDa,SAAS,EAAEF,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,WAAW,CAAC,CAACC,QAAQ,CAAC,CAAC;UAC5DK,KAAK,EAAEM,YAAY,CAACb,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,QAAQ,CAAC;QACvD,CAAC,CAAC;MACV,CAAC,CAAC;IACV,CAAC,CAAC,CAAC,CACV;EACL;AACJ;AAEA,OAAO,MAAMc,kBAAkB,GAAG5B,YAAY,CAAC6B,oBAAoB,CAAC;EAChEC,cAAc,EAAEzB,sBAAsB;EACtC0B,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CreateAcoStorageOperationsParams } from "../createAcoStorageOperations.js";
|
|
2
|
+
import type { AcoFilterStorageOperations } from "./filter.types.js";
|
|
3
|
+
export declare const createFilterOperations: (params: CreateAcoStorageOperationsParams) => AcoFilterStorageOperations;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import omit from "lodash/omit.js";
|
|
2
|
+
import WebinyError from "@webiny/error";
|
|
3
|
+
import { FILTER_MODEL_ID } from "./filter.model.js";
|
|
4
|
+
import { createListSort } from "../utils/createListSort.js";
|
|
5
|
+
import { createOperationsWrapper } from "../utils/createOperationsWrapper.js";
|
|
6
|
+
import { pickEntryFieldValues } from "../utils/pickEntryFieldValues.js";
|
|
7
|
+
import { ENTRY_META_FIELDS } from "@webiny/api-headless-cms/constants.js";
|
|
8
|
+
import { CmsSortMapper, CmsWhereMapper } from "@webiny/api-headless-cms";
|
|
9
|
+
export const createFilterOperations = params => {
|
|
10
|
+
const {
|
|
11
|
+
cms,
|
|
12
|
+
security,
|
|
13
|
+
container
|
|
14
|
+
} = params;
|
|
15
|
+
const {
|
|
16
|
+
withModel
|
|
17
|
+
} = createOperationsWrapper({
|
|
18
|
+
...params,
|
|
19
|
+
modelName: FILTER_MODEL_ID
|
|
20
|
+
});
|
|
21
|
+
const cmsWhereMapper = container.resolve(CmsWhereMapper);
|
|
22
|
+
const cmsSortMapper = container.resolve(CmsSortMapper);
|
|
23
|
+
return {
|
|
24
|
+
getFilter({
|
|
25
|
+
id
|
|
26
|
+
}) {
|
|
27
|
+
return withModel(async model => {
|
|
28
|
+
const entry = await cms.getEntryById(model, id);
|
|
29
|
+
if (!entry) {
|
|
30
|
+
throw new WebinyError("Could not load filter.", "GET_FILTER_ERROR", {
|
|
31
|
+
id
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return pickEntryFieldValues(entry);
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
listFilters(params) {
|
|
38
|
+
return withModel(async model => {
|
|
39
|
+
const {
|
|
40
|
+
sort,
|
|
41
|
+
where
|
|
42
|
+
} = params;
|
|
43
|
+
const createdBy = security.getIdentity().id;
|
|
44
|
+
const [entries, meta] = await cms.listLatestEntries(model, {
|
|
45
|
+
...params,
|
|
46
|
+
sort: cmsSortMapper.map({
|
|
47
|
+
input: createListSort(sort),
|
|
48
|
+
fields: model.fields
|
|
49
|
+
}),
|
|
50
|
+
where: cmsWhereMapper.map({
|
|
51
|
+
input: {
|
|
52
|
+
...where,
|
|
53
|
+
createdBy
|
|
54
|
+
},
|
|
55
|
+
fields: model.fields
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
return [entries.map(pickEntryFieldValues), meta];
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
createFilter({
|
|
62
|
+
data
|
|
63
|
+
}) {
|
|
64
|
+
return withModel(async model => {
|
|
65
|
+
const entry = await cms.createEntry(model, {
|
|
66
|
+
id: data.id,
|
|
67
|
+
values: data
|
|
68
|
+
});
|
|
69
|
+
return pickEntryFieldValues(entry);
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
updateFilter({
|
|
73
|
+
id,
|
|
74
|
+
data
|
|
75
|
+
}) {
|
|
76
|
+
return withModel(async model => {
|
|
77
|
+
const original = await cms.getEntryById(model, id);
|
|
78
|
+
const input = {
|
|
79
|
+
/**
|
|
80
|
+
* We are omitting the standard entry meta fields:
|
|
81
|
+
* we don't want to override them with the ones coming from the `original` entry.
|
|
82
|
+
*/
|
|
83
|
+
...omit(original, ENTRY_META_FIELDS),
|
|
84
|
+
values: {
|
|
85
|
+
...original.values,
|
|
86
|
+
...data
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const entry = await cms.updateEntry(model, original.id, input);
|
|
90
|
+
return pickEntryFieldValues(entry);
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
deleteFilter({
|
|
94
|
+
id
|
|
95
|
+
}) {
|
|
96
|
+
return withModel(async model => {
|
|
97
|
+
await cms.deleteEntry(model, id);
|
|
98
|
+
return true;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=filter.so.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["omit","WebinyError","FILTER_MODEL_ID","createListSort","createOperationsWrapper","pickEntryFieldValues","ENTRY_META_FIELDS","CmsSortMapper","CmsWhereMapper","createFilterOperations","params","cms","security","container","withModel","modelName","cmsWhereMapper","resolve","cmsSortMapper","getFilter","id","model","entry","getEntryById","listFilters","sort","where","createdBy","getIdentity","entries","meta","listLatestEntries","map","input","fields","createFilter","data","createEntry","values","updateFilter","original","updateEntry","deleteFilter","deleteEntry"],"sources":["filter.so.ts"],"sourcesContent":["import omit from \"lodash/omit.js\";\nimport WebinyError from \"@webiny/error\";\nimport { FILTER_MODEL_ID } from \"./filter.model.js\";\nimport type { CreateAcoStorageOperationsParams } from \"~/createAcoStorageOperations.js\";\nimport { createListSort } from \"~/utils/createListSort.js\";\nimport { createOperationsWrapper } from \"~/utils/createOperationsWrapper.js\";\nimport { pickEntryFieldValues } from \"~/utils/pickEntryFieldValues.js\";\nimport type { AcoFilterStorageOperations, Filter } from \"./filter.types.js\";\nimport { ENTRY_META_FIELDS } from \"@webiny/api-headless-cms/constants.js\";\nimport { CmsSortMapper, CmsWhereMapper } from \"@webiny/api-headless-cms\";\n\nexport const createFilterOperations = (\n params: CreateAcoStorageOperationsParams\n): AcoFilterStorageOperations => {\n const { cms, security, container } = params;\n\n const { withModel } = createOperationsWrapper({\n ...params,\n modelName: FILTER_MODEL_ID\n });\n\n const cmsWhereMapper = container.resolve(CmsWhereMapper);\n const cmsSortMapper = container.resolve(CmsSortMapper);\n\n return {\n getFilter({ id }) {\n return withModel(async model => {\n const entry = await cms.getEntryById(model, id);\n\n if (!entry) {\n throw new WebinyError(\"Could not load filter.\", \"GET_FILTER_ERROR\", {\n id\n });\n }\n\n return pickEntryFieldValues(entry);\n });\n },\n listFilters(params) {\n return withModel(async model => {\n const { sort, where } = params;\n const createdBy = security.getIdentity().id;\n\n const [entries, meta] = await cms.listLatestEntries(model, {\n ...params,\n sort: cmsSortMapper.map({\n input: createListSort(sort),\n fields: model.fields\n }),\n where: cmsWhereMapper.map({\n input: {\n ...where,\n createdBy\n },\n fields: model.fields\n })\n });\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const entry = await cms.createEntry(model, {\n id: data.id,\n values: data\n });\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = await cms.getEntryById(model, id);\n\n const input = {\n /**\n * We are omitting the standard entry meta fields:\n * we don't want to override them with the ones coming from the `original` entry.\n */\n ...omit(original, ENTRY_META_FIELDS),\n values: {\n ...original.values,\n ...data\n }\n };\n\n const entry = await cms.updateEntry(model, original.id, input);\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n await cms.deleteEntry(model, id);\n return true;\n });\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|