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 }