@webiny/api-aco 0.0.0-unstable.496cf268ac → 0.0.0-unstable.5387e5f7c8
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/AcoFeature.d.ts +5 -0
- package/AcoFeature.js +134 -0
- package/AcoFeature.js.map +1 -0
- package/AcoFolderSchemaFactory.d.ts +32 -0
- package/AcoFolderSchemaFactory.js +82 -0
- package/AcoFolderSchemaFactory.js.map +1 -0
- package/README.md +6 -28
- package/constants.d.ts +2 -0
- package/constants.js +5 -0
- package/constants.js.map +1 -0
- package/createAcoGraphQL.d.ts +8 -3
- package/createAcoGraphQL.js +59 -81
- package/createAcoGraphQL.js.map +1 -1
- package/domain/folder/abstractions.d.ts +16 -0
- package/domain/folder/abstractions.js +5 -0
- package/domain/folder/abstractions.js.map +1 -0
- package/domain/folder/errors.d.ts +29 -0
- package/domain/folder/errors.js +51 -0
- package/domain/folder/errors.js.map +1 -0
- package/domain/folder/folder.model.d.ts +9 -0
- package/domain/folder/folder.model.js +59 -0
- package/domain/folder/folder.model.js.map +1 -0
- package/exports/api/aco/flp.d.ts +7 -0
- package/exports/api/aco/flp.js +7 -0
- package/exports/api/aco/folder.d.ts +11 -0
- package/exports/api/aco/folder.js +10 -0
- package/features/ai/CreateFolderTool.d.ts +49 -0
- package/features/ai/CreateFolderTool.js +58 -0
- package/features/ai/CreateFolderTool.js.map +1 -0
- package/features/ai/CreateTeamTool.d.ts +48 -0
- package/features/ai/CreateTeamTool.js +56 -0
- package/features/ai/CreateTeamTool.js.map +1 -0
- package/features/ai/DeleteFolderTool.d.ts +48 -0
- package/features/ai/DeleteFolderTool.js +55 -0
- package/features/ai/DeleteFolderTool.js.map +1 -0
- package/features/ai/GrantFolderAccessTool.d.ts +77 -0
- package/features/ai/GrantFolderAccessTool.js +80 -0
- package/features/ai/GrantFolderAccessTool.js.map +1 -0
- package/features/ai/ListFoldersTool.d.ts +47 -0
- package/features/ai/ListFoldersTool.js +57 -0
- package/features/ai/ListFoldersTool.js.map +1 -0
- package/features/ai/ListRolesTool.d.ts +39 -0
- package/features/ai/ListRolesTool.js +48 -0
- package/features/ai/ListRolesTool.js.map +1 -0
- package/features/ai/ListTeamsTool.d.ts +39 -0
- package/features/ai/ListTeamsTool.js +48 -0
- package/features/ai/ListTeamsTool.js.map +1 -0
- package/features/ai/RevokeFolderAccessTool.d.ts +63 -0
- package/features/ai/RevokeFolderAccessTool.js +69 -0
- package/features/ai/RevokeFolderAccessTool.js.map +1 -0
- package/features/ai/assertTargetIsUsable.d.ts +10 -0
- package/features/ai/assertTargetIsUsable.js +14 -0
- package/features/ai/assertTargetIsUsable.js.map +1 -0
- package/features/ai/feature.d.ts +12 -0
- package/features/ai/feature.js +25 -0
- package/features/ai/feature.js.map +1 -0
- package/features/ai/index.d.ts +9 -0
- package/features/ai/index.js +9 -0
- package/features/ai/loadFolderPermissions.d.ts +16 -0
- package/features/ai/loadFolderPermissions.js +14 -0
- package/features/ai/loadFolderPermissions.js.map +1 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.d.ts +13 -0
- package/features/cms/decorators/CreateEntryRevisionFromWithFlpDecorator.js +39 -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 +33 -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 +39 -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 +41 -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 +36 -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 +36 -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 +41 -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 +41 -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 +36 -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 +49 -0
- package/features/cms/decorators/MoveEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.d.ts +14 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js +39 -0
- package/features/cms/decorators/UpdateEntryWithFlpDecorator.js.map +1 -0
- package/features/cms/feature.d.ts +4 -0
- package/features/cms/feature.js +37 -0
- package/features/cms/feature.js.map +1 -0
- package/features/cms/index.d.ts +1 -0
- package/features/cms/index.js +1 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.d.ts +8 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js +34 -0
- package/features/flp/CreateFlp/CreateFlpUseCase.js.map +1 -0
- package/features/flp/CreateFlp/abstractions.d.ts +9 -0
- package/features/flp/CreateFlp/abstractions.js +5 -0
- package/features/flp/CreateFlp/abstractions.js.map +1 -0
- package/features/flp/CreateFlp/feature.d.ts +5 -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 +2 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.d.ts +17 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js +44 -0
- package/features/flp/CreateFlpOnFolderCreated/CreateFlpOnFolderCreatedHandler.js.map +1 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.d.ts +4 -0
- package/features/flp/CreateFlpOnFolderCreated/feature.js +11 -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 +1 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.d.ts +8 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js +22 -0
- package/features/flp/DeleteFlp/DeleteFlpUseCase.js.map +1 -0
- package/features/flp/DeleteFlp/abstractions.d.ts +9 -0
- package/features/flp/DeleteFlp/abstractions.js +5 -0
- package/features/flp/DeleteFlp/abstractions.js.map +1 -0
- package/features/flp/DeleteFlp/feature.d.ts +5 -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 +2 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.d.ts +15 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js +40 -0
- package/features/flp/DeleteFlpOnFolderDeleted/DeleteFlpOnFolderDeletedHandler.js.map +1 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.d.ts +4 -0
- package/features/flp/DeleteFlpOnFolderDeleted/feature.js +11 -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 +1 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.d.ts +35 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js +112 -0
- package/features/flp/FolderLevelPermissions/FolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.d.ts +25 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js +48 -0
- package/features/flp/FolderLevelPermissions/NoopFolderLevelPermissions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/abstractions.d.ts +26 -0
- package/features/flp/FolderLevelPermissions/abstractions.js +5 -0
- package/features/flp/FolderLevelPermissions/abstractions.js.map +1 -0
- package/features/flp/FolderLevelPermissions/feature.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/feature.js +11 -0
- package/features/flp/FolderLevelPermissions/feature.js.map +1 -0
- package/features/flp/FolderLevelPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/index.js +3 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/CanAccessFolder.js +19 -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 +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolder/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.d.ts +7 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/CanAccessFolderContent.js +17 -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 +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanAccessFolderContent/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.d.ts +4 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/CanCreateFolderInRoot.js +8 -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 +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CanCreateFolderInRoot/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/CheckNotInheritedPermissions.js +8 -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 +0 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.d.ts +2 -0
- package/features/flp/FolderLevelPermissions/useCases/CheckNotInheritedPermissions/index.js +1 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/DefaultPermissionsMerger.js +47 -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 +14 -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 +27 -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 +0 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.d.ts +3 -0
- package/features/flp/FolderLevelPermissions/useCases/GetDefaultPermissions/index.js +2 -0
- package/features/flp/FolderLevelPermissions/useCases/index.d.ts +5 -0
- package/features/flp/FolderLevelPermissions/useCases/index.js +5 -0
- package/features/flp/GetFlp/GetFlpUseCase.d.ts +7 -0
- package/features/flp/GetFlp/GetFlpUseCase.js +11 -0
- package/features/flp/GetFlp/GetFlpUseCase.js.map +1 -0
- package/features/flp/GetFlp/abstractions.d.ts +9 -0
- package/features/flp/GetFlp/abstractions.js +5 -0
- package/features/flp/GetFlp/abstractions.js.map +1 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.d.ts +13 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js +26 -0
- package/features/flp/GetFlp/decorators/GetFlpWithCodeFlps.js.map +1 -0
- package/features/flp/GetFlp/feature.d.ts +4 -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 +1 -0
- package/features/flp/ListFlps/ListFlpsUseCase.d.ts +7 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js +11 -0
- package/features/flp/ListFlps/ListFlpsUseCase.js.map +1 -0
- package/features/flp/ListFlps/abstractions.d.ts +17 -0
- package/features/flp/ListFlps/abstractions.js +5 -0
- package/features/flp/ListFlps/abstractions.js.map +1 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.d.ts +13 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js +27 -0
- package/features/flp/ListFlps/decorators/ListFlpsWithCodeFlps.js.map +1 -0
- package/features/flp/ListFlps/feature.d.ts +4 -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 +1 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.d.ts +26 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js +147 -0
- package/features/flp/UpdateFlp/UpdateFlpUseCase.js.map +1 -0
- package/features/flp/UpdateFlp/abstractions.d.ts +19 -0
- package/features/flp/UpdateFlp/abstractions.js +5 -0
- package/features/flp/UpdateFlp/abstractions.js.map +1 -0
- package/features/flp/UpdateFlp/feature.d.ts +5 -0
- package/features/flp/UpdateFlp/feature.js +17 -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 +2 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.d.ts +17 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js +44 -0
- package/features/flp/UpdateFlpOnFolderUpdated/UpdateFlpOnFolderUpdatedHandler.js.map +1 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.d.ts +4 -0
- package/features/flp/UpdateFlpOnFolderUpdated/feature.js +11 -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 +1 -0
- package/features/flp/shared/CodeFlpMerger.d.ts +26 -0
- package/features/flp/shared/CodeFlpMerger.js +20 -0
- package/features/flp/shared/CodeFlpMerger.js.map +1 -0
- package/features/flp/shared/CodeFlpPath.d.ts +15 -0
- package/features/flp/shared/CodeFlpPath.js +29 -0
- package/features/flp/shared/CodeFlpPath.js.map +1 -0
- package/features/flp/shared/CodeFlpTarget.d.ts +10 -0
- package/features/flp/shared/CodeFlpTarget.js +26 -0
- package/features/flp/shared/CodeFlpTarget.js.map +1 -0
- package/features/flp/shared/CodeFlpsProvider.d.ts +14 -0
- package/features/flp/shared/CodeFlpsProvider.js +33 -0
- package/features/flp/shared/CodeFlpsProvider.js.map +1 -0
- package/features/flp/shared/abstractions.d.ts +77 -0
- package/features/flp/shared/abstractions.js +19 -0
- package/features/flp/shared/abstractions.js.map +1 -0
- package/features/flp/shared/feature.d.ts +5 -0
- package/features/flp/shared/feature.js +17 -0
- package/features/flp/shared/feature.js.map +1 -0
- package/features/flp/shared/index.d.ts +4 -0
- package/features/flp/shared/index.js +4 -0
- package/features/folder/CreateFolder/CreateFolderRepository.d.ts +21 -0
- package/features/folder/CreateFolder/CreateFolderRepository.js +88 -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 +36 -0
- package/features/folder/CreateFolder/CreateFolderUseCase.js.map +1 -0
- package/features/folder/CreateFolder/abstractions.d.ts +59 -0
- package/features/folder/CreateFolder/abstractions.js +8 -0
- package/features/folder/CreateFolder/abstractions.js.map +1 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.d.ts +19 -0
- package/features/folder/CreateFolder/decorators/CreateFolderWithFolderLevelPermissions.js +56 -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 +21 -0
- package/features/folder/CreateFolder/events.js.map +1 -0
- package/features/folder/CreateFolder/feature.d.ts +5 -0
- package/features/folder/CreateFolder/feature.js +15 -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 +2 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.d.ts +15 -0
- package/features/folder/DeleteFolder/DeleteFolderRepository.js +33 -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 +47 -0
- package/features/folder/DeleteFolder/DeleteFolderUseCase.js.map +1 -0
- package/features/folder/DeleteFolder/abstractions.d.ts +59 -0
- package/features/folder/DeleteFolder/abstractions.js +8 -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 +29 -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 +21 -0
- package/features/folder/DeleteFolder/events.js.map +1 -0
- package/features/folder/DeleteFolder/feature.d.ts +5 -0
- package/features/folder/DeleteFolder/feature.js +15 -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 +2 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.d.ts +15 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js +59 -0
- package/features/folder/EnsureFolderIsEmpty/EnsureFolderIsEmpty.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.d.ts +21 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js +5 -0
- package/features/folder/EnsureFolderIsEmpty/abstractions.js.map +1 -0
- package/features/folder/EnsureFolderIsEmpty/feature.d.ts +4 -0
- package/features/folder/EnsureFolderIsEmpty/feature.js +11 -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 +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.d.ts +12 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js +25 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/GenericFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.d.ts +10 -0
- package/features/folder/EnsureFolderIsEmptyOnDelete/feature.js +11 -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 +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.d.ts +16 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js +52 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/ModelFolderBeforeDeleteHandler.js.map +1 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.d.ts +4 -0
- package/features/folder/EnsureHcmsFolderIsEmptyOnDelete/feature.js +11 -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 +1 -0
- package/features/folder/FolderModelProvider.d.ts +26 -0
- package/features/folder/FolderModelProvider.js +22 -0
- package/features/folder/FolderModelProvider.js.map +1 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.d.ts +15 -0
- package/features/folder/GetAncestors/GetAncestorsRepository.js +59 -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 +20 -0
- package/features/folder/GetAncestors/GetAncestorsUseCase.js.map +1 -0
- package/features/folder/GetAncestors/abstractions.d.ts +40 -0
- package/features/folder/GetAncestors/abstractions.js +6 -0
- package/features/folder/GetAncestors/abstractions.js.map +1 -0
- package/features/folder/GetAncestors/feature.d.ts +5 -0
- package/features/folder/GetAncestors/feature.js +13 -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 +2 -0
- package/features/folder/GetFolder/GetFolderRepository.d.ts +15 -0
- package/features/folder/GetFolder/GetFolderRepository.js +34 -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 +20 -0
- package/features/folder/GetFolder/GetFolderUseCase.js.map +1 -0
- package/features/folder/GetFolder/abstractions.d.ts +57 -0
- package/features/folder/GetFolder/abstractions.js +8 -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 +34 -0
- package/features/folder/GetFolder/decorators/GetFolderWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolder/feature.d.ts +5 -0
- package/features/folder/GetFolder/feature.js +15 -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 +2 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.d.ts +18 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyRepository.js +86 -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 +20 -0
- package/features/folder/GetFolderHierarchy/GetFolderHierarchyUseCase.js.map +1 -0
- package/features/folder/GetFolderHierarchy/abstractions.d.ts +38 -0
- package/features/folder/GetFolderHierarchy/abstractions.js +6 -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 +63 -0
- package/features/folder/GetFolderHierarchy/decorators/GetFolderHierarchyWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/GetFolderHierarchy/feature.d.ts +5 -0
- package/features/folder/GetFolderHierarchy/feature.js +15 -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 +2 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.d.ts +13 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js +75 -0
- package/features/folder/ListFolderLevelPermissionsTargets/ListFolderLevelPermissionsTargetsUseCase.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.d.ts +11 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js +5 -0
- package/features/folder/ListFolderLevelPermissionsTargets/abstractions.js.map +1 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.d.ts +4 -0
- package/features/folder/ListFolderLevelPermissionsTargets/feature.js +11 -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 +1 -0
- package/features/folder/ListFolders/ListFoldersRepository.d.ts +17 -0
- package/features/folder/ListFolders/ListFoldersRepository.js +53 -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 +20 -0
- package/features/folder/ListFolders/ListFoldersUseCase.js.map +1 -0
- package/features/folder/ListFolders/abstractions.d.ts +44 -0
- package/features/folder/ListFolders/abstractions.js +6 -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 +65 -0
- package/features/folder/ListFolders/decorators/ListFoldersWithFolderLevelPermissions.js.map +1 -0
- package/features/folder/ListFolders/feature.d.ts +5 -0
- package/features/folder/ListFolders/feature.js +15 -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 +2 -0
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.d.ts +11 -0
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.js +38 -0
- package/features/folder/NotifyFolderChange/NotifyFolderChangeUseCase.js.map +1 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.d.ts +12 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.js +24 -0
- package/features/folder/NotifyFolderChange/NotifyOnFolderDeletedHandler.js.map +1 -0
- package/features/folder/NotifyFolderChange/abstractions.d.ts +28 -0
- package/features/folder/NotifyFolderChange/abstractions.js +8 -0
- package/features/folder/NotifyFolderChange/abstractions.js.map +1 -0
- package/features/folder/NotifyFolderChange/feature.d.ts +9 -0
- package/features/folder/NotifyFolderChange/feature.js +13 -0
- package/features/folder/NotifyFolderChange/feature.js.map +1 -0
- package/features/folder/NotifyFolderChange/index.d.ts +2 -0
- package/features/folder/NotifyFolderChange/index.js +2 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.d.ts +21 -0
- package/features/folder/UpdateFolder/UpdateFolderRepository.js +87 -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 +48 -0
- package/features/folder/UpdateFolder/UpdateFolderUseCase.js.map +1 -0
- package/features/folder/UpdateFolder/abstractions.d.ts +64 -0
- package/features/folder/UpdateFolder/abstractions.js +8 -0
- package/features/folder/UpdateFolder/abstractions.js.map +1 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.d.ts +26 -0
- package/features/folder/UpdateFolder/decorators/UpdateFolderWithFolderLevelPermissions.js +106 -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 +21 -0
- package/features/folder/UpdateFolder/events.js.map +1 -0
- package/features/folder/UpdateFolder/feature.d.ts +5 -0
- package/features/folder/UpdateFolder/feature.js +15 -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 +2 -0
- package/features/folder/shared/EntryToFolderMapper.d.ts +5 -0
- package/features/folder/shared/EntryToFolderMapper.js +23 -0
- package/features/folder/shared/EntryToFolderMapper.js.map +1 -0
- package/features/folder/shared/abstractions.d.ts +20 -0
- package/features/folder/shared/abstractions.js +8 -0
- package/features/folder/shared/abstractions.js.map +1 -0
- package/filter/filter.crud.d.ts +3 -0
- package/filter/filter.crud.js +30 -0
- package/filter/filter.crud.js.map +1 -0
- package/filter/filter.gql.d.ts +2 -0
- package/filter/filter.gql.js +164 -0
- package/filter/filter.gql.js.map +1 -0
- package/filter/filter.model.d.ts +9 -0
- package/filter/filter.model.js +51 -0
- package/filter/filter.model.js.map +1 -0
- package/filter/filter.so.d.ts +9 -0
- package/filter/filter.so.js +96 -0
- package/filter/filter.so.js.map +1 -0
- package/filter/filter.types.d.ts +67 -0
- package/filter/filter.types.js +8 -0
- package/filter/filter.types.js.map +1 -0
- package/flp/flp.crud.d.ts +7 -0
- package/flp/flp.crud.js +74 -0
- package/flp/flp.crud.js.map +1 -0
- package/flp/flp.types.d.ts +98 -0
- package/flp/flp.types.js +0 -0
- package/flp/index.d.ts +2 -0
- package/flp/index.js +2 -0
- package/flp/tasks/createFlp.task.d.ts +25 -0
- package/flp/tasks/createFlp.task.js +53 -0
- package/flp/tasks/createFlp.task.js.map +1 -0
- package/flp/tasks/deleteFlp.task.d.ts +23 -0
- package/flp/tasks/deleteFlp.task.js +45 -0
- package/flp/tasks/deleteFlp.task.js.map +1 -0
- package/flp/tasks/index.d.ts +4 -0
- package/flp/tasks/index.js +7 -0
- package/flp/tasks/index.js.map +1 -0
- package/flp/tasks/syncFlp.task.d.ts +27 -0
- package/flp/tasks/syncFlp.task.js +121 -0
- package/flp/tasks/syncFlp.task.js.map +1 -0
- package/flp/tasks/updateFlp.task.d.ts +25 -0
- package/flp/tasks/updateFlp.task.js +64 -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 +8 -0
- package/folder/createFolderTypeDefs.js +178 -0
- package/folder/createFolderTypeDefs.js.map +1 -0
- package/folder/folder.gql.d.ts +4 -3
- package/folder/folder.gql.js +123 -101
- package/folder/folder.gql.js.map +1 -1
- package/folder/folder.types.d.ts +51 -58
- package/folder/folder.types.js +0 -5
- package/index.d.ts +3 -1
- package/index.js +3 -14
- package/package.json +36 -39
- package/types.d.ts +26 -16
- package/types.js +8 -11
- package/types.js.map +1 -1
- package/utils/FoldersCacheFactory.d.ts +10 -0
- package/utils/FoldersCacheFactory.js +25 -0
- package/utils/FoldersCacheFactory.js.map +1 -0
- package/utils/ListCache.d.ts +23 -0
- package/utils/ListCache.js +24 -0
- package/utils/ListCache.js.map +1 -0
- package/utils/Path.d.ts +3 -0
- package/utils/Path.js +10 -0
- package/utils/Path.js.map +1 -0
- package/utils/compress.d.ts +4 -0
- package/utils/compress.js +13 -0
- package/utils/compress.js.map +1 -0
- package/utils/createListSort.d.ts +3 -2
- package/utils/createListSort.js +6 -12
- package/utils/createListSort.js.map +1 -1
- package/utils/createOperationsWrapper.d.ts +6 -3
- package/utils/createOperationsWrapper.js +14 -28
- package/utils/createOperationsWrapper.js.map +1 -1
- package/utils/decorators/CmsEntriesCrudDecorators.d.ts +11 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js +179 -0
- package/utils/decorators/CmsEntriesCrudDecorators.js.map +1 -0
- package/utils/decorators/FilterEntriesByFolderFactory.d.ts +7 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js +22 -0
- package/utils/decorators/FilterEntriesByFolderFactory.js.map +1 -0
- package/utils/decorators/ListEntriesFactory.d.ts +17 -0
- package/utils/decorators/ListEntriesFactory.js +73 -0
- package/utils/decorators/ListEntriesFactory.js.map +1 -0
- package/utils/decorators/hasRootFolderId.d.ts +7 -0
- package/utils/decorators/hasRootFolderId.js +13 -0
- package/utils/decorators/hasRootFolderId.js.map +1 -0
- package/utils/decorators/isPageModel.d.ts +5 -0
- package/utils/decorators/isPageModel.js +8 -0
- package/utils/decorators/isPageModel.js.map +1 -0
- package/utils/ensureAuthentication.d.ts +2 -0
- package/utils/ensureAuthentication.js +11 -0
- package/utils/ensureAuthentication.js.map +1 -0
- package/utils/pickEntryFieldValues.d.ts +3 -0
- package/utils/pickEntryFieldValues.js +29 -0
- package/utils/pickEntryFieldValues.js.map +1 -0
- package/utils/resolve.d.ts +2 -2
- package/utils/resolve.js +10 -14
- package/utils/resolve.js.map +1 -1
- package/context/folders.d.ts +0 -2
- package/context/folders.js +0 -261
- package/context/folders.js.map +0 -1
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -22
- package/context/index.js.map +0 -1
- package/context/links.d.ts +0 -2
- package/context/links.js +0 -270
- package/context/links.js.map +0 -1
- package/createAcoContext.d.ts +0 -3
- package/createAcoContext.js +0 -63
- package/createAcoContext.js.map +0 -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 -67
- package/createAcoModels.js.map +0 -1
- package/createAcoStorageOperations.d.ts +0 -10
- package/createAcoStorageOperations.js +0 -19
- package/createAcoStorageOperations.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 -6
- package/folder/folder.model.js +0 -79
- 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/folder.types.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/graphql/base.gql.d.ts +0 -3
- package/graphql/base.gql.js +0 -63
- package/graphql/base.gql.js.map +0 -1
- package/graphql/folders.gql.d.ts +0 -3
- package/graphql/folders.gql.js +0 -126
- package/graphql/folders.gql.js.map +0 -1
- package/graphql/index.d.ts +0 -1
- package/graphql/index.js +0 -15
- package/graphql/index.js.map +0 -1
- package/graphql/links.gql.d.ts +0 -3
- package/graphql/links.gql.js +0 -123
- package/graphql/links.gql.js.map +0 -1
- package/index.js.map +0 -1
- package/record/record.crud.d.ts +0 -3
- package/record/record.crud.js +0 -92
- package/record/record.crud.js.map +0 -1
- package/record/record.gql.d.ts +0 -3
- package/record/record.gql.js +0 -117
- package/record/record.gql.js.map +0 -1
- package/record/record.model.d.ts +0 -6
- package/record/record.model.js +0 -63
- package/record/record.model.js.map +0 -1
- package/record/record.so.d.ts +0 -3
- package/record/record.so.js +0 -98
- package/record/record.so.js.map +0 -1
- package/record/record.types.d.ts +0 -91
- package/record/record.types.js +0 -5
- package/record/record.types.js.map +0 -1
- package/subscriptions/afterFolderDelete.d.ts +0 -3
- package/subscriptions/afterFolderDelete.js +0 -62
- package/subscriptions/afterFolderDelete.js.map +0 -1
- package/subscriptions/index.d.ts +0 -3
- package/subscriptions/index.js +0 -14
- package/subscriptions/index.js.map +0 -1
- package/utils/createModelField.d.ts +0 -6
- package/utils/createModelField.js +0 -39
- 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 -2
- package/utils/getFieldValues.js +0 -19
- 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 -17
- package/utils/modelFactory.js +0 -23
- package/utils/modelFactory.js.map +0 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { ErrorResponse, ListResponse } from "@webiny/api-graphql/responses.js";
|
|
2
|
+
import { ensureAuthentication } from "../utils/ensureAuthentication.js";
|
|
3
|
+
import { resolve } from "../utils/resolve.js";
|
|
4
|
+
import { AcoFilterCrud } from "../features/folder/shared/abstractions.js";
|
|
5
|
+
const addFilterSchema = (builder)=>{
|
|
6
|
+
builder.addTypeDefs(`
|
|
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
|
+
builder.addResolver({
|
|
97
|
+
path: "AcoQuery.getFilter",
|
|
98
|
+
dependencies: [
|
|
99
|
+
AcoFilterCrud
|
|
100
|
+
],
|
|
101
|
+
resolver (filterCrud) {
|
|
102
|
+
return ({ args, context })=>resolve(()=>{
|
|
103
|
+
ensureAuthentication(context);
|
|
104
|
+
return filterCrud.get(args.id);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
builder.addResolver({
|
|
109
|
+
path: "AcoQuery.listFilters",
|
|
110
|
+
dependencies: [
|
|
111
|
+
AcoFilterCrud
|
|
112
|
+
],
|
|
113
|
+
resolver (filterCrud) {
|
|
114
|
+
return async ({ args, context })=>{
|
|
115
|
+
try {
|
|
116
|
+
ensureAuthentication(context);
|
|
117
|
+
const [entries, meta] = await filterCrud.list(args);
|
|
118
|
+
return new ListResponse(entries, meta);
|
|
119
|
+
} catch (e) {
|
|
120
|
+
return new ErrorResponse(e);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
builder.addResolver({
|
|
126
|
+
path: "AcoMutation.createFilter",
|
|
127
|
+
dependencies: [
|
|
128
|
+
AcoFilterCrud
|
|
129
|
+
],
|
|
130
|
+
resolver (filterCrud) {
|
|
131
|
+
return ({ args, context })=>resolve(()=>{
|
|
132
|
+
ensureAuthentication(context);
|
|
133
|
+
return filterCrud.create(args.data);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
builder.addResolver({
|
|
138
|
+
path: "AcoMutation.updateFilter",
|
|
139
|
+
dependencies: [
|
|
140
|
+
AcoFilterCrud
|
|
141
|
+
],
|
|
142
|
+
resolver (filterCrud) {
|
|
143
|
+
return ({ args, context })=>resolve(()=>{
|
|
144
|
+
ensureAuthentication(context);
|
|
145
|
+
return filterCrud.update(args.id, args.data);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
builder.addResolver({
|
|
150
|
+
path: "AcoMutation.deleteFilter",
|
|
151
|
+
dependencies: [
|
|
152
|
+
AcoFilterCrud
|
|
153
|
+
],
|
|
154
|
+
resolver (filterCrud) {
|
|
155
|
+
return ({ args, context })=>resolve(()=>{
|
|
156
|
+
ensureAuthentication(context);
|
|
157
|
+
return filterCrud.delete(args.id);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
export { addFilterSchema };
|
|
163
|
+
|
|
164
|
+
//# sourceMappingURL=filter.gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter/filter.gql.js","sources":["../../src/filter/filter.gql.ts"],"sourcesContent":["import { ErrorResponse, ListResponse } from \"@webiny/api-graphql/responses.js\";\nimport type { IGraphQLSchemaBuilder } from \"@webiny/api-graphql/features/GraphQLSchemaBuilder/abstractions.js\";\nimport { ensureAuthentication } from \"~/utils/ensureAuthentication.js\";\nimport { resolve } from \"~/utils/resolve.js\";\nimport { AcoFilterCrud } from \"~/features/folder/shared/abstractions.js\";\n\nexport const addFilterSchema = (builder: IGraphQLSchemaBuilder): void => {\n builder.addTypeDefs(/* 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\n builder.addResolver({\n path: \"AcoQuery.getFilter\",\n dependencies: [AcoFilterCrud],\n resolver(filterCrud) {\n return ({ args, context }) =>\n resolve(() => {\n ensureAuthentication(context);\n return filterCrud.get(args.id);\n });\n }\n });\n\n builder.addResolver({\n path: \"AcoQuery.listFilters\",\n dependencies: [AcoFilterCrud],\n resolver(filterCrud) {\n return async ({ args, context }) => {\n try {\n ensureAuthentication(context);\n const [entries, meta] = await filterCrud.list(args);\n return new ListResponse(entries, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n };\n }\n });\n\n builder.addResolver({\n path: \"AcoMutation.createFilter\",\n dependencies: [AcoFilterCrud],\n resolver(filterCrud) {\n return ({ args, context }) =>\n resolve(() => {\n ensureAuthentication(context);\n return filterCrud.create(args.data);\n });\n }\n });\n\n builder.addResolver({\n path: \"AcoMutation.updateFilter\",\n dependencies: [AcoFilterCrud],\n resolver(filterCrud) {\n return ({ args, context }) =>\n resolve(() => {\n ensureAuthentication(context);\n return filterCrud.update(args.id, args.data);\n });\n }\n });\n\n builder.addResolver({\n path: \"AcoMutation.deleteFilter\",\n dependencies: [AcoFilterCrud],\n resolver(filterCrud) {\n return ({ args, context }) =>\n resolve(() => {\n ensureAuthentication(context);\n return filterCrud.delete(args.id);\n });\n }\n });\n};\n"],"names":["addFilterSchema","builder","AcoFilterCrud","filterCrud","args","context","resolve","ensureAuthentication","entries","meta","ListResponse","e","ErrorResponse"],"mappings":";;;;AAMO,MAAMA,kBAAkB,CAACC;IAC5BA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFnC,CAAC;IAEDA,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAc;QAC7B,UAASC,UAAU;YACf,OAAO,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE,GACrBC,QAAQ;oBACJC,qBAAqBF;oBACrB,OAAOF,WAAW,GAAG,CAACC,KAAK,EAAE;gBACjC;QACR;IACJ;IAEAH,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAc;QAC7B,UAASC,UAAU;YACf,OAAO,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAE;gBAC3B,IAAI;oBACAE,qBAAqBF;oBACrB,MAAM,CAACG,SAASC,KAAK,GAAG,MAAMN,WAAW,IAAI,CAACC;oBAC9C,OAAO,IAAIM,aAAaF,SAASC;gBACrC,EAAE,OAAOE,GAAG;oBACR,OAAO,IAAIC,cAAcD;gBAC7B;YACJ;QACJ;IACJ;IAEAV,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAc;QAC7B,UAASC,UAAU;YACf,OAAO,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE,GACrBC,QAAQ;oBACJC,qBAAqBF;oBACrB,OAAOF,WAAW,MAAM,CAACC,KAAK,IAAI;gBACtC;QACR;IACJ;IAEAH,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAc;QAC7B,UAASC,UAAU;YACf,OAAO,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE,GACrBC,QAAQ;oBACJC,qBAAqBF;oBACrB,OAAOF,WAAW,MAAM,CAACC,KAAK,EAAE,EAAEA,KAAK,IAAI;gBAC/C;QACR;IACJ;IAEAH,QAAQ,WAAW,CAAC;QAChB,MAAM;QACN,cAAc;YAACC;SAAc;QAC7B,UAASC,UAAU;YACf,OAAO,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAE,GACrBC,QAAQ;oBACJC,qBAAqBF;oBACrB,OAAOF,WAAW,MAAM,CAACC,KAAK,EAAE;gBACpC;QACR;IACJ;AACJ"}
|
|
@@ -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,51 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
const FILTER_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? "acoFilter" : "wbyAcoFilter";
|
|
3
|
+
class FilterPrivateModelImpl {
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
return [
|
|
6
|
+
builder.private({
|
|
7
|
+
modelId: FILTER_MODEL_ID,
|
|
8
|
+
name: "ACO - Filter",
|
|
9
|
+
lifecycleEvents: false
|
|
10
|
+
}).fields((fields)=>({
|
|
11
|
+
name: fields.text().label("Name").required(),
|
|
12
|
+
description: fields.text().label("Description"),
|
|
13
|
+
namespace: fields.text().label("Model Id").required(),
|
|
14
|
+
operation: fields.text().label("Operation").required().predefinedValues([
|
|
15
|
+
{
|
|
16
|
+
label: "AND",
|
|
17
|
+
value: "AND"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
label: "OR",
|
|
21
|
+
value: "OR"
|
|
22
|
+
}
|
|
23
|
+
]),
|
|
24
|
+
groups: fields.object().label("Groups").list().listMinLength(1, "At least one group is required.").fields((fields)=>({
|
|
25
|
+
operation: fields.text().label("Operation").required().predefinedValues([
|
|
26
|
+
{
|
|
27
|
+
label: "AND",
|
|
28
|
+
value: "AND"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "OR",
|
|
32
|
+
value: "OR"
|
|
33
|
+
}
|
|
34
|
+
]),
|
|
35
|
+
filters: fields.object().label("Filters").list().listMinLength(1, "At least one filter is required.").fields((filterFields)=>({
|
|
36
|
+
field: filterFields.text().label("Field").required(),
|
|
37
|
+
condition: filterFields.text().label("Condition").required(),
|
|
38
|
+
value: filterFields.text().label("Value").required()
|
|
39
|
+
}))
|
|
40
|
+
}))
|
|
41
|
+
}))
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const FilterPrivateModel = ModelFactory.createImplementation({
|
|
46
|
+
implementation: FilterPrivateModelImpl,
|
|
47
|
+
dependencies: []
|
|
48
|
+
});
|
|
49
|
+
export { FILTER_MODEL_ID, FilterPrivateModel };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=filter.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter/filter.model.js","sources":["../../src/filter/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 lifecycleEvents: false\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"],"names":["FILTER_MODEL_ID","process","FilterPrivateModelImpl","builder","fields","filterFields","FilterPrivateModel","ModelFactory"],"mappings":";AAEO,MAAMA,kBAAkBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,cAAc;AAEpF,MAAMC;IACF,MAAa,QAAQC,OAA6B,EAAE;QAChD,OAAO;YACHA,QACK,OAAO,CAAC;gBACL,SAASH;gBACT,MAAM;gBACN,iBAAiB;YACrB,GACC,MAAM,CAACI,CAAAA,SAAW;oBACf,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ;oBAC1C,aAAaA,OAAO,IAAI,GAAG,KAAK,CAAC;oBACjC,WAAWA,OAAO,IAAI,GAAG,KAAK,CAAC,YAAY,QAAQ;oBACnD,WAAWA,OACN,IAAI,GACJ,KAAK,CAAC,aACN,QAAQ,GACR,gBAAgB,CAAC;wBACd;4BACI,OAAO;4BACP,OAAO;wBACX;wBACA;4BACI,OAAO;4BACP,OAAO;wBACX;qBACH;oBACL,QAAQA,OACH,MAAM,GACN,KAAK,CAAC,UACN,IAAI,GACJ,aAAa,CAAC,GAAG,mCACjB,MAAM,CAACA,CAAAA,SAAW;4BACf,WAAWA,OACN,IAAI,GACJ,KAAK,CAAC,aACN,QAAQ,GACR,gBAAgB,CAAC;gCACd;oCACI,OAAO;oCACP,OAAO;gCACX;gCACA;oCACI,OAAO;oCACP,OAAO;gCACX;6BACH;4BACL,SAASA,OACJ,MAAM,GACN,KAAK,CAAC,WACN,IAAI,GACJ,aAAa,CAAC,GAAG,oCACjB,MAAM,CAACC,CAAAA,eAAiB;oCACrB,OAAOA,aAAa,IAAI,GAAG,KAAK,CAAC,SAAS,QAAQ;oCAClD,WAAWA,aAAa,IAAI,GAAG,KAAK,CAAC,aAAa,QAAQ;oCAC1D,OAAOA,aAAa,IAAI,GAAG,KAAK,CAAC,SAAS,QAAQ;gCACtD;wBACR;gBACR;SACP;IACL;AACJ;AAEO,MAAMC,qBAAqBC,aAAa,oBAAoB,CAAC;IAChE,gBAAgBL;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IdentityContext } from "@webiny/api-core/features/security/IdentityContext/abstractions.js";
|
|
2
|
+
import type { Container } from "@webiny/di";
|
|
3
|
+
interface CreateFilterOperationsParams {
|
|
4
|
+
identityContext: IdentityContext.Interface;
|
|
5
|
+
container: Container;
|
|
6
|
+
}
|
|
7
|
+
import type { AcoFilterStorageOperations } from "./filter.types.js";
|
|
8
|
+
export declare const createFilterOperations: (params: CreateFilterOperationsParams) => AcoFilterStorageOperations;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import omit from "lodash/omit.js";
|
|
2
|
+
import error 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
|
+
import { GetEntryByIdUseCase } from "@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js";
|
|
10
|
+
import { ListLatestEntriesUseCase } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
11
|
+
import { CreateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
12
|
+
import { UpdateEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
13
|
+
import { DeleteEntryUseCase } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
14
|
+
const unwrap = (result)=>{
|
|
15
|
+
if (result.isFail()) throw result.error;
|
|
16
|
+
return result.value;
|
|
17
|
+
};
|
|
18
|
+
const createFilterOperations = (params)=>{
|
|
19
|
+
const { identityContext, container } = params;
|
|
20
|
+
const { withModel } = createOperationsWrapper({
|
|
21
|
+
identityContext,
|
|
22
|
+
container,
|
|
23
|
+
modelName: FILTER_MODEL_ID
|
|
24
|
+
});
|
|
25
|
+
const cmsWhereMapper = container.resolve(CmsWhereMapper);
|
|
26
|
+
const cmsSortMapper = container.resolve(CmsSortMapper);
|
|
27
|
+
return {
|
|
28
|
+
getFilter ({ id }) {
|
|
29
|
+
return withModel(async (model)=>{
|
|
30
|
+
const entry = unwrap(await container.resolve(GetEntryByIdUseCase).execute(model, id));
|
|
31
|
+
if (!entry) throw new error("Could not load filter.", "GET_FILTER_ERROR", {
|
|
32
|
+
id
|
|
33
|
+
});
|
|
34
|
+
return pickEntryFieldValues(entry);
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
listFilters (params) {
|
|
38
|
+
return withModel(async (model)=>{
|
|
39
|
+
const { sort, where } = params;
|
|
40
|
+
const createdBy = identityContext.getIdentity().id;
|
|
41
|
+
const result = await container.resolve(ListLatestEntriesUseCase).execute(model, {
|
|
42
|
+
...params,
|
|
43
|
+
sort: cmsSortMapper.map({
|
|
44
|
+
input: createListSort(sort),
|
|
45
|
+
fields: model.fields
|
|
46
|
+
}),
|
|
47
|
+
where: cmsWhereMapper.map({
|
|
48
|
+
input: {
|
|
49
|
+
...where,
|
|
50
|
+
createdBy
|
|
51
|
+
},
|
|
52
|
+
fields: model.fields
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
const { entries, meta } = unwrap(result);
|
|
56
|
+
return [
|
|
57
|
+
entries.map(pickEntryFieldValues),
|
|
58
|
+
meta
|
|
59
|
+
];
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
createFilter ({ data }) {
|
|
63
|
+
return withModel(async (model)=>{
|
|
64
|
+
const result = await container.resolve(CreateEntryUseCase).execute(model, {
|
|
65
|
+
id: data.id,
|
|
66
|
+
values: data
|
|
67
|
+
});
|
|
68
|
+
const entry = unwrap(result);
|
|
69
|
+
return pickEntryFieldValues(entry);
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
updateFilter ({ id, data }) {
|
|
73
|
+
return withModel(async (model)=>{
|
|
74
|
+
const original = unwrap(await container.resolve(GetEntryByIdUseCase).execute(model, id));
|
|
75
|
+
const input = {
|
|
76
|
+
...omit(original, ENTRY_META_FIELDS),
|
|
77
|
+
values: {
|
|
78
|
+
...original.values,
|
|
79
|
+
...data
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const entry = unwrap(await container.resolve(UpdateEntryUseCase).execute(model, original.id, input));
|
|
83
|
+
return pickEntryFieldValues(entry);
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
deleteFilter ({ id }) {
|
|
87
|
+
return withModel(async (model)=>{
|
|
88
|
+
unwrap(await container.resolve(DeleteEntryUseCase).execute(model, id));
|
|
89
|
+
return true;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
export { createFilterOperations };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=filter.so.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter/filter.so.js","sources":["../../src/filter/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 { IdentityContext } from \"@webiny/api-core/features/security/IdentityContext/abstractions.js\";\nimport type { Container } from \"@webiny/di\";\n\ninterface CreateFilterOperationsParams {\n identityContext: IdentityContext.Interface;\n container: Container;\n}\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\";\nimport { GetEntryByIdUseCase } from \"@webiny/api-headless-cms/features/contentEntry/GetEntryById/index.js\";\nimport { ListLatestEntriesUseCase } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { CreateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { UpdateEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { DeleteEntryUseCase } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport type { Result } from \"@webiny/feature/api\";\n\nconst unwrap = <TValue>(result: Result<TValue, Error>): TValue => {\n if (result.isFail()) {\n throw result.error;\n }\n return result.value;\n};\n\nexport const createFilterOperations = (\n params: CreateFilterOperationsParams\n): AcoFilterStorageOperations => {\n const { identityContext, container } = params;\n\n const { withModel } = createOperationsWrapper({\n identityContext,\n container,\n modelName: FILTER_MODEL_ID\n });\n\n /*\n * The CMS use cases are resolved when an operation runs, not here. These operations are built\n * while ACO's storage is being resolved, and resolving the use cases at this point loops back\n * into that same storage until the stack overflows.\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 = unwrap(\n await container.resolve(GetEntryByIdUseCase).execute(model, id)\n );\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 = identityContext.getIdentity().id;\n\n const result = await container.resolve(ListLatestEntriesUseCase).execute(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 const { entries, meta } = unwrap(result);\n\n return [entries.map(pickEntryFieldValues<Filter>), meta];\n });\n },\n createFilter({ data }) {\n return withModel(async model => {\n const result = await container.resolve(CreateEntryUseCase).execute(model, {\n id: data.id,\n values: data\n });\n const entry = unwrap(result);\n return pickEntryFieldValues(entry);\n });\n },\n updateFilter({ id, data }) {\n return withModel(async model => {\n const original = unwrap(\n await container.resolve(GetEntryByIdUseCase).execute(model, id)\n );\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 = unwrap(\n await container.resolve(UpdateEntryUseCase).execute(model, original.id, input)\n );\n return pickEntryFieldValues(entry);\n });\n },\n deleteFilter({ id }) {\n return withModel(async model => {\n unwrap(await container.resolve(DeleteEntryUseCase).execute(model, id));\n return true;\n });\n }\n };\n};\n"],"names":["unwrap","result","createFilterOperations","params","identityContext","container","withModel","createOperationsWrapper","FILTER_MODEL_ID","cmsWhereMapper","CmsWhereMapper","cmsSortMapper","CmsSortMapper","id","model","entry","GetEntryByIdUseCase","WebinyError","pickEntryFieldValues","sort","where","createdBy","ListLatestEntriesUseCase","createListSort","entries","meta","data","CreateEntryUseCase","original","input","omit","ENTRY_META_FIELDS","UpdateEntryUseCase","DeleteEntryUseCase"],"mappings":";;;;;;;;;;;;;AAuBA,MAAMA,SAAS,CAASC;IACpB,IAAIA,OAAO,MAAM,IACb,MAAMA,OAAO,KAAK;IAEtB,OAAOA,OAAO,KAAK;AACvB;AAEO,MAAMC,yBAAyB,CAClCC;IAEA,MAAM,EAAEC,eAAe,EAAEC,SAAS,EAAE,GAAGF;IAEvC,MAAM,EAAEG,SAAS,EAAE,GAAGC,wBAAwB;QAC1CH;QACAC;QACA,WAAWG;IACf;IAQA,MAAMC,iBAAiBJ,UAAU,OAAO,CAACK;IACzC,MAAMC,gBAAgBN,UAAU,OAAO,CAACO;IAExC,OAAO;QACH,WAAU,EAAEC,EAAE,EAAE;YACZ,OAAOP,UAAU,OAAMQ;gBACnB,MAAMC,QAAQf,OACV,MAAMK,UAAU,OAAO,CAACW,qBAAqB,OAAO,CAACF,OAAOD;gBAGhE,IAAI,CAACE,OACD,MAAM,IAAIE,MAAY,0BAA0B,oBAAoB;oBAChEJ;gBACJ;gBAGJ,OAAOK,qBAAqBH;YAChC;QACJ;QACA,aAAYZ,MAAM;YACd,OAAOG,UAAU,OAAMQ;gBACnB,MAAM,EAAEK,IAAI,EAAEC,KAAK,EAAE,GAAGjB;gBACxB,MAAMkB,YAAYjB,gBAAgB,WAAW,GAAG,EAAE;gBAElD,MAAMH,SAAS,MAAMI,UAAU,OAAO,CAACiB,0BAA0B,OAAO,CAACR,OAAO;oBAC5E,GAAGX,MAAM;oBACT,MAAMQ,cAAc,GAAG,CAAC;wBACpB,OAAOY,eAAeJ;wBACtB,QAAQL,MAAM,MAAM;oBACxB;oBACA,OAAOL,eAAe,GAAG,CAAC;wBACtB,OAAO;4BACH,GAAGW,KAAK;4BACRC;wBACJ;wBACA,QAAQP,MAAM,MAAM;oBACxB;gBACJ;gBACA,MAAM,EAAEU,OAAO,EAAEC,IAAI,EAAE,GAAGzB,OAAOC;gBAEjC,OAAO;oBAACuB,QAAQ,GAAG,CAACN;oBAA+BO;iBAAK;YAC5D;QACJ;QACA,cAAa,EAAEC,IAAI,EAAE;YACjB,OAAOpB,UAAU,OAAMQ;gBACnB,MAAMb,SAAS,MAAMI,UAAU,OAAO,CAACsB,oBAAoB,OAAO,CAACb,OAAO;oBACtE,IAAIY,KAAK,EAAE;oBACX,QAAQA;gBACZ;gBACA,MAAMX,QAAQf,OAAOC;gBACrB,OAAOiB,qBAAqBH;YAChC;QACJ;QACA,cAAa,EAAEF,EAAE,EAAEa,IAAI,EAAE;YACrB,OAAOpB,UAAU,OAAMQ;gBACnB,MAAMc,WAAW5B,OACb,MAAMK,UAAU,OAAO,CAACW,qBAAqB,OAAO,CAACF,OAAOD;gBAGhE,MAAMgB,QAAQ;oBAKV,GAAGC,KAAKF,UAAUG,kBAAkB;oBACpC,QAAQ;wBACJ,GAAGH,SAAS,MAAM;wBAClB,GAAGF,IAAI;oBACX;gBACJ;gBAEA,MAAMX,QAAQf,OACV,MAAMK,UAAU,OAAO,CAAC2B,oBAAoB,OAAO,CAAClB,OAAOc,SAAS,EAAE,EAAEC;gBAE5E,OAAOX,qBAAqBH;YAChC;QACJ;QACA,cAAa,EAAEF,EAAE,EAAE;YACf,OAAOP,UAAU,OAAMQ;gBACnBd,OAAO,MAAMK,UAAU,OAAO,CAAC4B,oBAAoB,OAAO,CAACnB,OAAOD;gBAClE,OAAO;YACX;QACJ;IACJ;AACJ"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { AcoBaseFields, ListMeta, ListSort } from "../types.js";
|
|
2
|
+
export declare enum Operation {
|
|
3
|
+
AND = "AND",
|
|
4
|
+
OR = "OR"
|
|
5
|
+
}
|
|
6
|
+
export interface GroupFilter {
|
|
7
|
+
field: string;
|
|
8
|
+
condition: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Group {
|
|
12
|
+
operation: Operation;
|
|
13
|
+
filters: GroupFilter[];
|
|
14
|
+
}
|
|
15
|
+
export interface Filter extends AcoBaseFields {
|
|
16
|
+
name: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
namespace: string;
|
|
19
|
+
operation: Operation;
|
|
20
|
+
groups: Group[];
|
|
21
|
+
}
|
|
22
|
+
export interface ListFiltersWhere {
|
|
23
|
+
namespace: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ListFiltersParams {
|
|
26
|
+
where: ListFiltersWhere;
|
|
27
|
+
sort?: ListSort;
|
|
28
|
+
limit?: number;
|
|
29
|
+
after?: string | null;
|
|
30
|
+
}
|
|
31
|
+
export type CreateFilterParams = Pick<Filter, "id" | "name" | "description" | "namespace" | "operation" | "groups">;
|
|
32
|
+
export interface UpdateFilterParams {
|
|
33
|
+
name?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
namespace?: string;
|
|
36
|
+
operation?: Operation;
|
|
37
|
+
groups?: Group[];
|
|
38
|
+
}
|
|
39
|
+
export interface DeleteFilterParams {
|
|
40
|
+
id: string;
|
|
41
|
+
}
|
|
42
|
+
export interface StorageOperationsGetFilterParams {
|
|
43
|
+
id: string;
|
|
44
|
+
}
|
|
45
|
+
export type StorageOperationsListFiltersParams = ListFiltersParams;
|
|
46
|
+
export interface StorageOperationsCreateFilterParams {
|
|
47
|
+
data: CreateFilterParams;
|
|
48
|
+
}
|
|
49
|
+
export interface StorageOperationsUpdateFilterParams {
|
|
50
|
+
id: string;
|
|
51
|
+
data: UpdateFilterParams;
|
|
52
|
+
}
|
|
53
|
+
export type StorageOperationsDeleteFilterParams = DeleteFilterParams;
|
|
54
|
+
export interface AcoFilterCrud {
|
|
55
|
+
get(id: string): Promise<Filter>;
|
|
56
|
+
list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;
|
|
57
|
+
create(data: CreateFilterParams): Promise<Filter>;
|
|
58
|
+
update(id: string, data: UpdateFilterParams): Promise<Filter>;
|
|
59
|
+
delete(id: string): Promise<boolean>;
|
|
60
|
+
}
|
|
61
|
+
export interface AcoFilterStorageOperations {
|
|
62
|
+
getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;
|
|
63
|
+
listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;
|
|
64
|
+
createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;
|
|
65
|
+
updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;
|
|
66
|
+
deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;
|
|
67
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter/filter.types.js","sources":["../../src/filter/filter.types.ts"],"sourcesContent":["import type { AcoBaseFields, ListMeta, ListSort } from \"~/types.js\";\n\nexport enum Operation {\n AND = \"AND\",\n OR = \"OR\"\n}\n\nexport interface GroupFilter {\n field: string;\n condition: string;\n value: string;\n}\n\nexport interface Group {\n operation: Operation;\n filters: GroupFilter[];\n}\n\nexport interface Filter extends AcoBaseFields {\n name: string;\n description?: string;\n namespace: string;\n operation: Operation;\n groups: Group[];\n}\n\nexport interface ListFiltersWhere {\n namespace: string;\n}\n\nexport interface ListFiltersParams {\n where: ListFiltersWhere;\n sort?: ListSort;\n limit?: number;\n after?: string | null;\n}\n\nexport type CreateFilterParams = Pick<\n Filter,\n \"id\" | \"name\" | \"description\" | \"namespace\" | \"operation\" | \"groups\"\n>;\n\nexport interface UpdateFilterParams {\n name?: string;\n description?: string;\n namespace?: string;\n operation?: Operation;\n groups?: Group[];\n}\n\nexport interface DeleteFilterParams {\n id: string;\n}\n\nexport interface StorageOperationsGetFilterParams {\n id: string;\n}\n\nexport type StorageOperationsListFiltersParams = ListFiltersParams;\n\nexport interface StorageOperationsCreateFilterParams {\n data: CreateFilterParams;\n}\n\nexport interface StorageOperationsUpdateFilterParams {\n id: string;\n data: UpdateFilterParams;\n}\n\nexport type StorageOperationsDeleteFilterParams = DeleteFilterParams;\n\nexport interface AcoFilterCrud {\n get(id: string): Promise<Filter>;\n list(params: ListFiltersParams): Promise<[Filter[], ListMeta]>;\n create(data: CreateFilterParams): Promise<Filter>;\n update(id: string, data: UpdateFilterParams): Promise<Filter>;\n delete(id: string): Promise<boolean>;\n}\n\nexport interface AcoFilterStorageOperations {\n getFilter(params: StorageOperationsGetFilterParams): Promise<Filter>;\n listFilters(params: StorageOperationsListFiltersParams): Promise<[Filter[], ListMeta]>;\n createFilter(params: StorageOperationsCreateFilterParams): Promise<Filter>;\n updateFilter(params: StorageOperationsUpdateFilterParams): Promise<Filter>;\n deleteFilter(params: StorageOperationsDeleteFilterParams): Promise<boolean>;\n}\n"],"names":["Operation"],"mappings":"AAEO,IAAKA,yBAASA,WAAAA,GAAAA,SAATA,SAAS;;;WAATA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type AcoFolderLevelPermissionsCrud, type AcoStorageOperations } from "../types.js";
|
|
2
|
+
import type { Tenant } from "@webiny/api-core/types/tenancy.js";
|
|
3
|
+
export interface CreateFlpCrudMethodsParams {
|
|
4
|
+
getTenant: () => Tenant;
|
|
5
|
+
storageOperations: AcoStorageOperations;
|
|
6
|
+
}
|
|
7
|
+
export declare const createFlpCrudMethods: ({ storageOperations, getTenant }: CreateFlpCrudMethodsParams) => AcoFolderLevelPermissionsCrud;
|
package/flp/flp.crud.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { WebinyError } from "@webiny/error";
|
|
2
|
+
import { EntryId } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
3
|
+
const createFlpCrudMethods = ({ storageOperations, getTenant })=>({
|
|
4
|
+
async create (params) {
|
|
5
|
+
return await storageOperations.flp.create({
|
|
6
|
+
data: {
|
|
7
|
+
...params,
|
|
8
|
+
tenant: getTenant().id
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
},
|
|
12
|
+
async update (id, data) {
|
|
13
|
+
const original = await this.get(id);
|
|
14
|
+
if (!original) throw new WebinyError(`Folder level permission with id "${id}" not found.`, "GET_ITEM_UPDATE_FLP_ERROR", {
|
|
15
|
+
id,
|
|
16
|
+
data
|
|
17
|
+
});
|
|
18
|
+
return await storageOperations.flp.update({
|
|
19
|
+
original,
|
|
20
|
+
data: {
|
|
21
|
+
...data,
|
|
22
|
+
tenant: getTenant().id
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
async batchUpdate (items) {
|
|
27
|
+
const batchItems = (await Promise.all(items.map(async ({ id, data })=>{
|
|
28
|
+
const original = await this.get(id);
|
|
29
|
+
if (!original) return null;
|
|
30
|
+
return {
|
|
31
|
+
original,
|
|
32
|
+
data: {
|
|
33
|
+
...data,
|
|
34
|
+
tenant: getTenant().id
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}))).filter((item)=>null !== item);
|
|
38
|
+
if (0 === batchItems.length) return [];
|
|
39
|
+
return await storageOperations.flp.batchUpdate({
|
|
40
|
+
items: batchItems
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
async delete (id) {
|
|
44
|
+
const flp = await this.get(id);
|
|
45
|
+
if (!flp) throw new WebinyError(`Folder level permission with id "${id}" not found.`, "GET_ITEM_DELETE_FLP_ERROR", {
|
|
46
|
+
id
|
|
47
|
+
});
|
|
48
|
+
await storageOperations.flp.delete({
|
|
49
|
+
flp: {
|
|
50
|
+
...flp,
|
|
51
|
+
tenant: getTenant().id
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return true;
|
|
55
|
+
},
|
|
56
|
+
async get (id) {
|
|
57
|
+
const entryId = EntryId.from(id);
|
|
58
|
+
return await storageOperations.flp.get({
|
|
59
|
+
id: entryId.id,
|
|
60
|
+
tenant: getTenant().id
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
async list ({ where }) {
|
|
64
|
+
return await storageOperations.flp.list({
|
|
65
|
+
where: {
|
|
66
|
+
...where,
|
|
67
|
+
tenant: getTenant().id
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
export { createFlpCrudMethods };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=flp.crud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flp/flp.crud.js","sources":["../../src/flp/flp.crud.ts"],"sourcesContent":["import { WebinyError } from \"@webiny/error\";\nimport {\n type AcoFolderLevelPermissionsCrud,\n type AcoStorageOperations,\n type CreateFlpParams,\n type UpdateFlpParams\n} from \"~/types.js\";\nimport type { Tenant } from \"@webiny/api-core/types/tenancy.js\";\nimport { EntryId } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\n\nexport interface CreateFlpCrudMethodsParams {\n getTenant: () => Tenant;\n storageOperations: AcoStorageOperations;\n}\n\nexport const createFlpCrudMethods = ({\n storageOperations,\n getTenant\n}: CreateFlpCrudMethodsParams): AcoFolderLevelPermissionsCrud => {\n return {\n async create(params: CreateFlpParams) {\n return await storageOperations.flp.create({\n data: { ...params, tenant: getTenant().id }\n });\n },\n async update(id: string, data: UpdateFlpParams) {\n const original = await this.get(id);\n if (!original) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_UPDATE_FLP_ERROR\",\n {\n id,\n data\n }\n );\n }\n\n return await storageOperations.flp.update({\n original,\n data: {\n ...data,\n tenant: getTenant().id\n }\n });\n },\n async batchUpdate(items: Array<{ id: string; data: UpdateFlpParams }>) {\n const batchItems = (\n await Promise.all(\n items.map(async ({ id, data }) => {\n const original = await this.get(id);\n if (!original) {\n return null;\n }\n return {\n original,\n data: {\n ...data,\n tenant: getTenant().id\n }\n };\n })\n )\n ).filter((item): item is NonNullable<typeof item> => item !== null);\n\n if (batchItems.length === 0) {\n return [];\n }\n\n return await storageOperations.flp.batchUpdate({\n items: batchItems\n });\n },\n async delete(id: string) {\n const flp = await this.get(id);\n if (!flp) {\n throw new WebinyError(\n `Folder level permission with id \"${id}\" not found.`,\n \"GET_ITEM_DELETE_FLP_ERROR\",\n {\n id\n }\n );\n }\n\n await storageOperations.flp.delete({\n flp: {\n ...flp,\n tenant: getTenant().id\n }\n });\n\n return true;\n },\n async get(id: string) {\n const entryId = EntryId.from(id);\n return await storageOperations.flp.get({\n id: entryId.id,\n tenant: getTenant().id\n });\n },\n async list({ where }) {\n return await storageOperations.flp.list({\n where: {\n ...where,\n tenant: getTenant().id\n }\n });\n }\n };\n};\n"],"names":["createFlpCrudMethods","storageOperations","getTenant","params","id","data","original","WebinyError","items","batchItems","Promise","item","flp","entryId","EntryId","where"],"mappings":";;AAeO,MAAMA,uBAAuB,CAAC,EACjCC,iBAAiB,EACjBC,SAAS,EACgB,GAClB;QACH,MAAM,QAAOC,MAAuB;YAChC,OAAO,MAAMF,kBAAkB,GAAG,CAAC,MAAM,CAAC;gBACtC,MAAM;oBAAE,GAAGE,MAAM;oBAAE,QAAQD,YAAY,EAAE;gBAAC;YAC9C;QACJ;QACA,MAAM,QAAOE,EAAU,EAAEC,IAAqB;YAC1C,MAAMC,WAAW,MAAM,IAAI,CAAC,GAAG,CAACF;YAChC,IAAI,CAACE,UACD,MAAM,IAAIC,YACN,CAAC,iCAAiC,EAAEH,GAAG,YAAY,CAAC,EACpD,6BACA;gBACIA;gBACAC;YACJ;YAIR,OAAO,MAAMJ,kBAAkB,GAAG,CAAC,MAAM,CAAC;gBACtCK;gBACA,MAAM;oBACF,GAAGD,IAAI;oBACP,QAAQH,YAAY,EAAE;gBAC1B;YACJ;QACJ;QACA,MAAM,aAAYM,KAAmD;YACjE,MAAMC,aACF,OAAMC,QAAQ,GAAG,CACbF,MAAM,GAAG,CAAC,OAAO,EAAEJ,EAAE,EAAEC,IAAI,EAAE;gBACzB,MAAMC,WAAW,MAAM,IAAI,CAAC,GAAG,CAACF;gBAChC,IAAI,CAACE,UACD,OAAO;gBAEX,OAAO;oBACHA;oBACA,MAAM;wBACF,GAAGD,IAAI;wBACP,QAAQH,YAAY,EAAE;oBAC1B;gBACJ;YACJ,GAAE,EAER,MAAM,CAAC,CAACS,OAA2CA,AAAS,SAATA;YAErD,IAAIF,AAAsB,MAAtBA,WAAW,MAAM,EACjB,OAAO,EAAE;YAGb,OAAO,MAAMR,kBAAkB,GAAG,CAAC,WAAW,CAAC;gBAC3C,OAAOQ;YACX;QACJ;QACA,MAAM,QAAOL,EAAU;YACnB,MAAMQ,MAAM,MAAM,IAAI,CAAC,GAAG,CAACR;YAC3B,IAAI,CAACQ,KACD,MAAM,IAAIL,YACN,CAAC,iCAAiC,EAAEH,GAAG,YAAY,CAAC,EACpD,6BACA;gBACIA;YACJ;YAIR,MAAMH,kBAAkB,GAAG,CAAC,MAAM,CAAC;gBAC/B,KAAK;oBACD,GAAGW,GAAG;oBACN,QAAQV,YAAY,EAAE;gBAC1B;YACJ;YAEA,OAAO;QACX;QACA,MAAM,KAAIE,EAAU;YAChB,MAAMS,UAAUC,QAAQ,IAAI,CAACV;YAC7B,OAAO,MAAMH,kBAAkB,GAAG,CAAC,GAAG,CAAC;gBACnC,IAAIY,QAAQ,EAAE;gBACd,QAAQX,YAAY,EAAE;YAC1B;QACJ;QACA,MAAM,MAAK,EAAEa,KAAK,EAAE;YAChB,OAAO,MAAMd,kBAAkB,GAAG,CAAC,IAAI,CAAC;gBACpC,OAAO;oBACH,GAAGc,KAAK;oBACR,QAAQb,YAAY,EAAE;gBAC1B;YACJ;QACJ;IACJ"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { type Folder } from "../types.js";
|
|
2
|
+
import type { FolderLevelPermission, FolderPermission } from "@webiny/shared-aco/flp/flp.types.js";
|
|
3
|
+
export type * from "@webiny/shared-aco/flp/flp.types.js";
|
|
4
|
+
/********
|
|
5
|
+
* CRUD operations
|
|
6
|
+
*******/
|
|
7
|
+
export interface ListFlpsParams {
|
|
8
|
+
where: {
|
|
9
|
+
path_startsWith?: string;
|
|
10
|
+
parentId?: string;
|
|
11
|
+
type: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export type CreateFlpParams = Pick<FolderLevelPermission, "id" | "type" | "permissions" | "path" | "parentId" | "slug">;
|
|
15
|
+
export interface UpdateFlpParams {
|
|
16
|
+
parentId?: string;
|
|
17
|
+
slug?: string;
|
|
18
|
+
path?: string;
|
|
19
|
+
permissions?: FolderPermission[];
|
|
20
|
+
type?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AcoFolderLevelPermissionsCrud {
|
|
23
|
+
list(params: ListFlpsParams): Promise<FolderLevelPermission[]>;
|
|
24
|
+
get(id: string): Promise<FolderLevelPermission | null>;
|
|
25
|
+
create(params: CreateFlpParams): Promise<FolderLevelPermission>;
|
|
26
|
+
update(id: string, data: UpdateFlpParams): Promise<FolderLevelPermission>;
|
|
27
|
+
delete(id: string): Promise<boolean>;
|
|
28
|
+
batchUpdate(items: Array<{
|
|
29
|
+
id: string;
|
|
30
|
+
data: UpdateFlpParams;
|
|
31
|
+
}>): Promise<FolderLevelPermission[]>;
|
|
32
|
+
}
|
|
33
|
+
/********
|
|
34
|
+
* Storage operations
|
|
35
|
+
*******/
|
|
36
|
+
export interface StorageOperationsListFlpsParams {
|
|
37
|
+
where: ListFlpsParams["where"] & {
|
|
38
|
+
tenant: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface StorageOperationsGetFlpParams {
|
|
42
|
+
id: string;
|
|
43
|
+
tenant: string;
|
|
44
|
+
}
|
|
45
|
+
export type StorageOperationsCreateFlpParams = {
|
|
46
|
+
data: FolderLevelPermission & {
|
|
47
|
+
tenant: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export type StorageOperationsUpdateFlpParams = {
|
|
51
|
+
original: FolderLevelPermission;
|
|
52
|
+
data: UpdateFlpParams & {
|
|
53
|
+
tenant: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
export type StorageOperationsDeleteFlpParams = {
|
|
57
|
+
flp: FolderLevelPermission & {
|
|
58
|
+
tenant: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export interface StorageOperationsBatchUpdateFlpParams {
|
|
62
|
+
items: Array<{
|
|
63
|
+
original: FolderLevelPermission;
|
|
64
|
+
data: UpdateFlpParams & {
|
|
65
|
+
tenant: string;
|
|
66
|
+
};
|
|
67
|
+
}>;
|
|
68
|
+
}
|
|
69
|
+
export interface AcoFolderLevelPermissionsStorageOperations {
|
|
70
|
+
list(params: StorageOperationsListFlpsParams): Promise<FolderLevelPermission[]>;
|
|
71
|
+
get(params: StorageOperationsGetFlpParams): Promise<FolderLevelPermission | null>;
|
|
72
|
+
create(params: StorageOperationsCreateFlpParams): Promise<FolderLevelPermission>;
|
|
73
|
+
update(params: StorageOperationsUpdateFlpParams): Promise<FolderLevelPermission>;
|
|
74
|
+
delete(params: StorageOperationsDeleteFlpParams): Promise<void>;
|
|
75
|
+
batchUpdate(params: StorageOperationsBatchUpdateFlpParams): Promise<FolderLevelPermission[]>;
|
|
76
|
+
}
|
|
77
|
+
/********
|
|
78
|
+
* Background Tasks
|
|
79
|
+
*******/
|
|
80
|
+
export interface ICreateFlpTaskInput {
|
|
81
|
+
folder: Folder;
|
|
82
|
+
/** Who created the folder. Their open admin tabs are told once the FLP record exists. */
|
|
83
|
+
notifyIdentityId?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface IUpdateFlpTaskInput {
|
|
86
|
+
folder: Folder;
|
|
87
|
+
/** Folders whose whole subtree an earlier run of this task already wrote. */
|
|
88
|
+
completed?: string[];
|
|
89
|
+
/** Who changed the folder. Their open admin tabs are told once the whole subtree is written. */
|
|
90
|
+
notifyIdentityId?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface IDeleteFlpTaskInput {
|
|
93
|
+
folder: Folder;
|
|
94
|
+
}
|
|
95
|
+
export interface ISyncFlpTaskInput {
|
|
96
|
+
type?: string;
|
|
97
|
+
folderId?: string;
|
|
98
|
+
}
|
package/flp/flp.types.js
ADDED
|
File without changes
|