otter/src/server/mod.rs

29 lines
704 B
Rust

mod error;
mod gpodder;
use axum::{extract::Request, middleware::Next, response::Response, Router};
use tower_http::trace::TraceLayer;
#[derive(Clone)]
pub struct Context {
pub store: crate::gpodder::GpodderRepository,
}
pub fn app(ctx: Context) -> Router {
Router::new()
.merge(gpodder::router(ctx.clone()))
.layer(axum::middleware::from_fn(header_logger))
.layer(TraceLayer::new_for_http())
.with_state(ctx)
}
async fn header_logger(request: Request, next: Next) -> Response {
tracing::debug!("request headers = {:?}", request.headers());
let res = next.run(request).await;
tracing::debug!("response headers = {:?}", res.headers());
res
}