diff --git a/src/views/mod.rs b/src/views/mod.rs index cc71c51..26199e1 100644 --- a/src/views/mod.rs +++ b/src/views/mod.rs @@ -46,6 +46,10 @@ async fn auth(req: Request, next: Next) -> Result StatusCode { + StatusCode::OK +} + pub async fn get_router() -> Router { let client = get_postgres_pool().await; @@ -58,15 +62,23 @@ pub async fn get_router() -> Router { .nest("/api/v1/books", get_books_router().await) .nest("/api/v1/sequences", get_sequences_router().await) .layer(middleware::from_fn(auth)) - .layer(Extension(client)) + .layer(Extension(client.clone())) .layer(prometheus_layer); + let health_router = Router::new() + .route("/health", get(health_check)) + .layer(Extension(client)); + let metric_router = Router::new().route("/metrics", get(|| async move { metric_handle.render() })); - Router::new().merge(app_router).merge(metric_router).layer( - TraceLayer::new_for_http() - .make_span_with(trace::DefaultMakeSpan::new().level(Level::INFO)) - .on_response(trace::DefaultOnResponse::new().level(Level::INFO)), - ) + Router::new() + .merge(app_router) + .merge(health_router) + .merge(metric_router) + .layer( + TraceLayer::new_for_http() + .make_span_with(trace::DefaultMakeSpan::new().level(Level::INFO)) + .on_response(trace::DefaultOnResponse::new().level(Level::INFO)), + ) }