refactor: split bootstrap factory into per-context service builders
This commit is contained in:
31
crates/bootstrap/src/services/sharing.rs
Normal file
31
crates/bootstrap/src/services/sharing.rs
Normal file
@@ -0,0 +1,31 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use adapters_postgres::{
|
||||
PgPool, PostgresShareRepository, PostgresVisibilityFilterRepository,
|
||||
};
|
||||
use application::sharing::{
|
||||
AccessSharedResourceHandler, GenerateShareLinkHandler, RevokeShareHandler,
|
||||
ShareResourceHandler,
|
||||
};
|
||||
use domain::ports::EventPublisher;
|
||||
use presentation::state::SharingHandlers;
|
||||
|
||||
pub fn build(pool: &PgPool, event_publisher: Arc<dyn EventPublisher>) -> SharingHandlers {
|
||||
let share_repo = Arc::new(PostgresShareRepository::new(pool.clone()));
|
||||
let _visibility_filter_repo = Arc::new(PostgresVisibilityFilterRepository::new(pool.clone()));
|
||||
|
||||
let share_resource = Arc::new(ShareResourceHandler::new(
|
||||
share_repo.clone(),
|
||||
event_publisher.clone(),
|
||||
));
|
||||
let generate_link = Arc::new(GenerateShareLinkHandler::new(share_repo.clone()));
|
||||
let revoke = Arc::new(RevokeShareHandler::new(share_repo.clone(), event_publisher));
|
||||
let access = Arc::new(AccessSharedResourceHandler::new(share_repo));
|
||||
|
||||
SharingHandlers {
|
||||
share_resource,
|
||||
generate_link,
|
||||
revoke,
|
||||
access,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user