From 3bae6e518c5934323e0ca7cb2a0c2398875930be Mon Sep 17 00:00:00 2001 From: jbesraa Date: Mon, 21 Aug 2023 14:51:48 +0300 Subject: [PATCH] consume db client through server router --- src/main.rs | 7 ++++++- src/router/logs.rs | 0 src/router/mod.rs | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 src/router/logs.rs diff --git a/src/main.rs b/src/main.rs index 594bf295..0053a943 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ use env_logger; pub(crate) mod b64; pub(crate) mod core; +pub(crate) mod db; pub(crate) mod external_services; pub(crate) mod parsers; pub(crate) mod router; @@ -26,7 +27,11 @@ pub(crate) mod router; #[tokio::main] async fn main() -> std::io::Result<()> { env_logger::init_from_env(env_logger::Env::new().default_filter_or("debug")); - + let client =match db::setup::setup().await { + Ok(client) => client, + Err(e) => panic!("Error setting up database: {}", e), + }; + let state = web::Data::new(Mutex::new(client)); HttpServer::new(move || { let cors = actix_cors::Cors::default() .allow_any_origin() diff --git a/src/router/logs.rs b/src/router/logs.rs new file mode 100644 index 00000000..e69de29b diff --git a/src/router/mod.rs b/src/router/mod.rs index e0aa77cb..f781cc9b 100644 --- a/src/router/mod.rs +++ b/src/router/mod.rs @@ -1,3 +1,5 @@ +use std::sync::Mutex; + use actix_web::{get, HttpResponse, Responder}; pub mod application; @@ -5,6 +7,10 @@ pub mod blockchain; /// Return server health status #[get("/health")] -pub async fn health() -> impl Responder { - HttpResponse::Ok().body("OK") +pub async fn health(client: actix_web::web::Data>) -> impl Responder { + let client = client.lock().unwrap(); + match crate::db::setup::db_health_check(client.clone()).await { + Ok(_) => HttpResponse::Ok().body("OK"), + Err(e) => HttpResponse::InternalServerError().body(format!("Error: {}", e)), + } }