use axum::Router;
use std::sync::Arc;
use super::{
bank_handler::create_bank_routes,
bank_account_handler::create_bank_account_routes,
bank_clearance_handler::create_bank_clearance_routes,
bank_reconciliation_handler::create_bank_reconciliation_routes,
bank_statement_import_handler::create_bank_statement_import_routes,
bank_transaction_handler::create_bank_transaction_routes,
fx_gain_loss_handler::create_fx_gain_loss_routes,
reconcile_preset_handler::create_reconcile_preset_routes,
};
use crate::application::service::{
BankService,
BankAccountService,
BankClearanceService,
BankReconciliationService,
BankStatementImportService,
BankTransactionService,
FxGainLossService,
ReconcilePresetService,
};
pub struct HttpServices {
pub bank: Arc<BankService>,
pub bank_account: Arc<BankAccountService>,
pub bank_clearance: Arc<BankClearanceService>,
pub bank_reconciliation: Arc<BankReconciliationService>,
pub bank_statement_import: Arc<BankStatementImportService>,
pub bank_transaction: Arc<BankTransactionService>,
pub fx_gain_loss: Arc<FxGainLossService>,
pub reconcile_preset: Arc<ReconcilePresetService>,
}
pub fn configure_routes(services: HttpServices) -> Router {
Router::new()
.merge(create_bank_routes(services.bank))
.merge(create_bank_account_routes(services.bank_account))
.merge(create_bank_clearance_routes(services.bank_clearance))
.merge(create_bank_reconciliation_routes(services.bank_reconciliation))
.merge(create_bank_statement_import_routes(services.bank_statement_import))
.merge(create_bank_transaction_routes(services.bank_transaction))
.merge(create_fx_gain_loss_routes(services.fx_gain_loss))
.merge(create_reconcile_preset_routes(services.reconcile_preset))
}
pub mod individual {
use super::*;
pub fn bank_routes(service: Arc<BankService>) -> Router {
create_bank_routes(service)
}
pub fn bank_account_routes(service: Arc<BankAccountService>) -> Router {
create_bank_account_routes(service)
}
pub fn bank_clearance_routes(service: Arc<BankClearanceService>) -> Router {
create_bank_clearance_routes(service)
}
pub fn bank_reconciliation_routes(service: Arc<BankReconciliationService>) -> Router {
create_bank_reconciliation_routes(service)
}
pub fn bank_statement_import_routes(service: Arc<BankStatementImportService>) -> Router {
create_bank_statement_import_routes(service)
}
pub fn bank_transaction_routes(service: Arc<BankTransactionService>) -> Router {
create_bank_transaction_routes(service)
}
pub fn fx_gain_loss_routes(service: Arc<FxGainLossService>) -> Router {
create_fx_gain_loss_routes(service)
}
pub fn reconcile_preset_routes(service: Arc<ReconcilePresetService>) -> Router {
create_reconcile_preset_routes(service)
}
}