use std::convert::Infallible; use axum::{ body::Body, http::{Request, StatusCode}, middleware::map_request, response::Response, routing::*, Router, }; use tower::{service_fn, util::BoxService, Service}; pub fn secrets_router() -> Router { // let middleware = tower::util::MapRequestLayer::new(handler); Router::new().layer(map_request(handler)) } // async fn handler(Host(hostname): Host, request: Request) -> &'static str { // TODO: Find a solution for this mess async fn handler(request: Request) -> Result, StatusCode> { // let path: Vec<&str> = request.uri().path().split('/').clone().collect(); // log::info!("path, {:?}", path[1]); let root = service_fn(|req: Request| async move { let res = Response::new("Hello, World!".to_string()); Ok::<_, Infallible>(res) }); let root = BoxService::new(root); let mut routes = vec!["/abc", "/def"]; routes.sort_unstable_by(|a, b| a.len().cmp(&b.len())); let mut app = Router::new(); app.as_service().call(request).await.unwrap(); // match path[1] { // "test" => { // log::info!("test route"); // // TODO: Nest another Router here // return Ok(Request::new(Body::empty())); // } // _ => { // log::info!("default"); // return Err(StatusCode::NOT_FOUND); // } // } Err(StatusCode::IM_A_TEAPOT) }