refactor: introduce IngestTransaction port to reduce IngestAssetHandler from 7 to 4 ports
This commit is contained in:
@@ -2,7 +2,7 @@ use std::sync::Arc;
|
||||
|
||||
use adapters_postgres::{
|
||||
PgPool, PostgresAssetMetadataRepository, PostgresAssetRepository,
|
||||
PostgresDuplicateRepository,
|
||||
PostgresDuplicateRepository, PostgresIngestTransaction,
|
||||
};
|
||||
use adapters_storage::LocalFileStorage;
|
||||
use application::catalog::{
|
||||
@@ -24,13 +24,11 @@ pub fn build(
|
||||
let asset_repo = Arc::new(PostgresAssetRepository::new(pool.clone()));
|
||||
let metadata_repo = Arc::new(PostgresAssetMetadataRepository::new(pool.clone()));
|
||||
let duplicate_repo = Arc::new(PostgresDuplicateRepository::new(pool.clone()));
|
||||
let ingest_tx = Arc::new(PostgresIngestTransaction::new(pool.clone()));
|
||||
|
||||
let ingest_asset = Arc::new(IngestAssetHandler::new(
|
||||
storage_repos.session_repo.clone(),
|
||||
ingest_tx,
|
||||
storage_repos.path_repo.clone(),
|
||||
storage_repos.quota_repo.clone(),
|
||||
storage_repos.ledger_repo.clone(),
|
||||
asset_repo.clone(),
|
||||
file_storage.clone(),
|
||||
event_publisher.clone(),
|
||||
));
|
||||
|
||||
@@ -1,32 +1,27 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use adapters_postgres::{
|
||||
PgPool, PostgresIngestSessionRepository, PostgresLibraryPathRepository,
|
||||
PostgresQuotaRepository, PostgresStorageVolumeRepository, PostgresUsageLedgerRepository,
|
||||
PgPool, PostgresLibraryPathRepository, PostgresQuotaRepository,
|
||||
PostgresStorageVolumeRepository, PostgresUsageLedgerRepository,
|
||||
};
|
||||
use application::storage::{CheckQuotaHandler, RegisterLibraryPathHandler, RegisterVolumeHandler};
|
||||
use presentation::state::StorageHandlers;
|
||||
|
||||
/// Shared storage repos needed by other bounded contexts (catalog ingest, etc.).
|
||||
pub struct StorageRepos {
|
||||
pub volume_repo: Arc<PostgresStorageVolumeRepository>,
|
||||
pub path_repo: Arc<PostgresLibraryPathRepository>,
|
||||
pub session_repo: Arc<PostgresIngestSessionRepository>,
|
||||
pub quota_repo: Arc<PostgresQuotaRepository>,
|
||||
pub ledger_repo: Arc<PostgresUsageLedgerRepository>,
|
||||
}
|
||||
|
||||
pub fn build(pool: &PgPool) -> (StorageRepos, StorageHandlers) {
|
||||
let volume_repo = Arc::new(PostgresStorageVolumeRepository::new(pool.clone()));
|
||||
let path_repo = Arc::new(PostgresLibraryPathRepository::new(pool.clone()));
|
||||
let session_repo = Arc::new(PostgresIngestSessionRepository::new(pool.clone()));
|
||||
let quota_repo = Arc::new(PostgresQuotaRepository::new(pool.clone()));
|
||||
let ledger_repo = Arc::new(PostgresUsageLedgerRepository::new(pool.clone()));
|
||||
|
||||
let register_volume = Arc::new(RegisterVolumeHandler::new(volume_repo.clone()));
|
||||
let register_library_path =
|
||||
Arc::new(RegisterLibraryPathHandler::new(volume_repo.clone(), path_repo.clone()));
|
||||
let check_quota = Arc::new(CheckQuotaHandler::new(quota_repo.clone(), ledger_repo.clone()));
|
||||
Arc::new(RegisterLibraryPathHandler::new(volume_repo, path_repo.clone()));
|
||||
let check_quota = Arc::new(CheckQuotaHandler::new(quota_repo, ledger_repo));
|
||||
|
||||
let handlers = StorageHandlers {
|
||||
register_volume,
|
||||
@@ -34,13 +29,7 @@ pub fn build(pool: &PgPool) -> (StorageRepos, StorageHandlers) {
|
||||
check_quota,
|
||||
};
|
||||
|
||||
let repos = StorageRepos {
|
||||
volume_repo,
|
||||
path_repo,
|
||||
session_repo,
|
||||
quota_repo,
|
||||
ledger_repo,
|
||||
};
|
||||
let repos = StorageRepos { path_repo };
|
||||
|
||||
(repos, handlers)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user