diff --git a/src/main.rs b/src/main.rs index b19ec94..6716648 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use axum::{serve, Router}; use config::db::init_db; +use dotenvy::dotenv; use tokio::net::TcpListener; use crate::routes::user::controller::UserController; use crate::routes::user::service::UserService; @@ -12,6 +13,7 @@ mod routes; #[tokio::main] async fn main() { + dotenv().ok(); let pool = init_db(); let user_service = UserService::new(pool); diff --git a/src/routes/user/controller.rs b/src/routes/user/controller.rs index e29df61..8db3baa 100644 --- a/src/routes/user/controller.rs +++ b/src/routes/user/controller.rs @@ -2,6 +2,7 @@ use std::sync::Arc; use axum::extract::State; use axum::http::StatusCode; +use axum::response::IntoResponse; use axum::{Json, Router}; use axum::routing::get; use crate::base::controller::BaseController; @@ -28,16 +29,9 @@ impl UserController { async fn get_users( State(controller): State>, - ) -> Result>, (StatusCode, Json)> { - match controller.base_controller.get_all().await { - Ok(users) => { - // Wrap the users in Json, which implements IntoResponse - Ok(Json(users)) - } - Err(err) => { - // In case of error, return StatusCode with Json error message - Err((StatusCode::INTERNAL_SERVER_ERROR, Json(err.to_string()))) - } - } + ) -> Result)> { + controller.base_controller.get_all().await.map_err(|err| { + (StatusCode::INTERNAL_SERVER_ERROR, Json(err)) + }) } }