use axum::Router;
use std::sync::Arc;
use super::{
issue_handler::create_issue_routes,
service_level_agreement_handler::create_service_level_agreement_routes,
service_level_priority_handler::create_service_level_priority_routes,
warranty_claim_handler::create_warranty_claim_routes,
};
use crate::application::service::{
IssueService,
ServiceLevelAgreementService,
ServiceLevelPriorityService,
WarrantyClaimService,
};
pub struct HttpServices {
pub issue: Arc<IssueService>,
pub service_level_agreement: Arc<ServiceLevelAgreementService>,
pub service_level_priority: Arc<ServiceLevelPriorityService>,
pub warranty_claim: Arc<WarrantyClaimService>,
}
pub fn configure_routes(services: HttpServices) -> Router {
Router::new()
.merge(create_issue_routes(services.issue))
.merge(create_service_level_agreement_routes(services.service_level_agreement))
.merge(create_service_level_priority_routes(services.service_level_priority))
.merge(create_warranty_claim_routes(services.warranty_claim))
}
pub mod individual {
use super::*;
pub fn issue_routes(service: Arc<IssueService>) -> Router {
create_issue_routes(service)
}
pub fn service_level_agreement_routes(service: Arc<ServiceLevelAgreementService>) -> Router {
create_service_level_agreement_routes(service)
}
pub fn service_level_priority_routes(service: Arc<ServiceLevelPriorityService>) -> Router {
create_service_level_priority_routes(service)
}
pub fn warranty_claim_routes(service: Arc<WarrantyClaimService>) -> Router {
create_warranty_claim_routes(service)
}
}