Implements RouterBuilder
This commit is contained in:
@@ -4,6 +4,7 @@ mod middleware;
|
|||||||
mod model;
|
mod model;
|
||||||
mod route;
|
mod route;
|
||||||
mod service;
|
mod service;
|
||||||
|
mod utils;
|
||||||
|
|
||||||
use crate::config::config_server;
|
use crate::config::config_server;
|
||||||
|
|
||||||
|
|||||||
11
src/route.rs
11
src/route.rs
@@ -4,6 +4,7 @@ use crate::handler::message::send_message;
|
|||||||
use crate::middleware::auth_middleware::auth_middleware;
|
use crate::middleware::auth_middleware::auth_middleware;
|
||||||
use crate::service::auth_service::AuthService;
|
use crate::service::auth_service::AuthService;
|
||||||
use crate::service::email_service::EmailService;
|
use crate::service::email_service::EmailService;
|
||||||
|
use crate::utils::router_builder::RouterBuilder;
|
||||||
use axum::{
|
use axum::{
|
||||||
middleware,
|
middleware,
|
||||||
routing::{get, post},
|
routing::{get, post},
|
||||||
@@ -23,10 +24,8 @@ fn configure_health_endpoint(router: Router) -> Router {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_route() -> Router {
|
pub fn create_route() -> Router {
|
||||||
let mut router = Router::new();
|
RouterBuilder::new()
|
||||||
|
.add_config(configure_message_endpoint)
|
||||||
router = configure_message_endpoint(router);
|
.add_config(configure_health_endpoint)
|
||||||
router = configure_health_endpoint(router);
|
.build()
|
||||||
|
|
||||||
router
|
|
||||||
}
|
}
|
||||||
|
|||||||
1
src/utils/mod.rs
Normal file
1
src/utils/mod.rs
Normal file
@@ -0,0 +1 @@
|
|||||||
|
pub mod router_builder;
|
||||||
22
src/utils/router_builder.rs
Normal file
22
src/utils/router_builder.rs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
use axum::Router;
|
||||||
|
|
||||||
|
pub struct RouterBuilder {
|
||||||
|
router: Router,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl RouterBuilder {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
RouterBuilder {
|
||||||
|
router: Router::new(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn add_config(&mut self, config_fn: fn(Router) -> Router) -> &mut Self {
|
||||||
|
self.router = config_fn(self.router.clone());
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn build(&self) -> Router {
|
||||||
|
self.router.clone()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user