29 lines
704 B
Rust
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
|
|
}
|