use axum::Router;
use std::sync::Arc;
use super::{
digest_digest_handler::create_digest_digest_read_routes,
digest_subscription_handler::create_digest_subscription_read_routes,
digest_digest_kpi_handler::create_digest_digest_kpi_routes,
digest_tip_handler::create_digest_tip_routes,
digest_tip_user_handler::create_digest_tip_user_routes,
};
use crate::application::service::{
DigestDigestService,
DigestSubscriptionService,
DigestDigestKpiService,
DigestTipService,
DigestTipUserService,
};
pub struct HttpServices {
pub digest_digest: Arc<DigestDigestService>,
pub digest_subscription: Arc<DigestSubscriptionService>,
pub digest_digest_kpi: Arc<DigestDigestKpiService>,
pub digest_tip: Arc<DigestTipService>,
pub digest_tip_user: Arc<DigestTipUserService>,
}
pub fn configure_routes(services: HttpServices) -> Router {
Router::new()
.merge(create_digest_digest_read_routes(services.digest_digest))
.merge(create_digest_subscription_read_routes(services.digest_subscription))
.merge(create_digest_digest_kpi_routes(services.digest_digest_kpi))
.merge(create_digest_tip_routes(services.digest_tip))
.merge(create_digest_tip_user_routes(services.digest_tip_user))
}
pub mod individual {
use super::*;
pub fn digest_digest_routes(service: Arc<DigestDigestService>) -> Router {
create_digest_digest_read_routes(service)
}
pub fn digest_subscription_routes(service: Arc<DigestSubscriptionService>) -> Router {
create_digest_subscription_read_routes(service)
}
pub fn digest_digest_kpi_routes(service: Arc<DigestDigestKpiService>) -> Router {
create_digest_digest_kpi_routes(service)
}
pub fn digest_tip_routes(service: Arc<DigestTipService>) -> Router {
create_digest_tip_routes(service)
}
pub fn digest_tip_user_routes(service: Arc<DigestTipUserService>) -> Router {
create_digest_tip_user_routes(service)
}
}