From 573ff69749f6fa75b46780cdc3d2d438c528b082 Mon Sep 17 00:00:00 2001 From: Chris Rose Date: Tue, 3 Oct 2023 12:36:16 -0700 Subject: [PATCH] A man is not dead while his name is still spoken (#1280) --- atuin-server/src/router.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/atuin-server/src/router.rs b/atuin-server/src/router.rs index 7cfcdad1..0100822e 100644 --- a/atuin-server/src/router.rs +++ b/atuin-server/src/router.rs @@ -2,7 +2,9 @@ use async_trait::async_trait; use atuin_common::api::ErrorResponse; use axum::{ extract::FromRequestParts, - response::IntoResponse, + http::Request, + middleware::Next, + response::{IntoResponse, Response}, routing::{delete, get, post}, Router, }; @@ -76,6 +78,18 @@ async fn teapot() -> impl IntoResponse { (http::StatusCode::IM_A_TEAPOT, "🫖") } +async fn clacks_overhead(request: Request, next: Next) -> Response { + let mut response = next.run(request).await; + + let gnu_terry_value = "GNU Terry Pratchett"; + let gnu_terry_header = "X-Clacks-Overhead"; + + response + .headers_mut() + .insert(gnu_terry_header, gnu_terry_value.parse().unwrap()); + response +} + #[derive(Clone)] pub struct AppState { pub database: DB, @@ -107,5 +121,9 @@ pub fn router(database: DB, settings: Settings) -> R } .fallback(teapot) .with_state(AppState { database, settings }) - .layer(ServiceBuilder::new().layer(TraceLayer::new_for_http())) + .layer( + ServiceBuilder::new() + .layer(axum::middleware::from_fn(clacks_overhead)) + .layer(TraceLayer::new_for_http()), + ) }