refactor: split bootstrap factory into per-context service builders

This commit is contained in:
2026-05-31 18:28:57 +02:00
parent c16c9d4581
commit 5a4eb1e4f8
11 changed files with 345 additions and 248 deletions

View 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,
}
}