61 lines
1.9 KiB
Rust
61 lines
1.9 KiB
Rust
use std::sync::Arc;
|
|
|
|
use application::{
|
|
catalog::{GetAssetHandler, GetTimelineHandler, ReadAssetFileHandler, UpdateMetadataHandler},
|
|
identity::{GetProfileHandler, LoginUserHandler, RegisterUserHandler},
|
|
organization::{CreateAlbumHandler, GetAlbumHandler, ManageAlbumEntriesHandler},
|
|
sharing::{
|
|
AccessSharedResourceHandler, GenerateShareLinkHandler, RevokeShareHandler,
|
|
ShareResourceHandler,
|
|
},
|
|
storage::{IngestAssetHandler, RegisterLibraryPathHandler, RegisterVolumeHandler},
|
|
};
|
|
use domain::ports::TokenIssuer;
|
|
|
|
#[derive(Clone)]
|
|
pub struct IdentityHandlers {
|
|
pub register: Arc<RegisterUserHandler>,
|
|
pub login: Arc<LoginUserHandler>,
|
|
pub get_profile: Arc<GetProfileHandler>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct CatalogHandlers {
|
|
pub ingest_asset: Arc<IngestAssetHandler>,
|
|
pub get_asset: Arc<GetAssetHandler>,
|
|
pub get_timeline: Arc<GetTimelineHandler>,
|
|
pub update_metadata: Arc<UpdateMetadataHandler>,
|
|
pub read_asset_file: Arc<ReadAssetFileHandler>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct OrganizationHandlers {
|
|
pub create_album: Arc<CreateAlbumHandler>,
|
|
pub get_album: Arc<GetAlbumHandler>,
|
|
pub manage_album_entries: Arc<ManageAlbumEntriesHandler>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct StorageHandlers {
|
|
pub register_volume: Arc<RegisterVolumeHandler>,
|
|
pub register_library_path: Arc<RegisterLibraryPathHandler>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct SharingHandlers {
|
|
pub share_resource: Arc<ShareResourceHandler>,
|
|
pub generate_link: Arc<GenerateShareLinkHandler>,
|
|
pub revoke: Arc<RevokeShareHandler>,
|
|
pub access: Arc<AccessSharedResourceHandler>,
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct AppState {
|
|
pub identity: IdentityHandlers,
|
|
pub catalog: CatalogHandlers,
|
|
pub organization: OrganizationHandlers,
|
|
pub storage: StorageHandlers,
|
|
pub sharing: SharingHandlers,
|
|
pub token_issuer: Arc<dyn TokenIssuer>,
|
|
}
|