Fixes
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
use axum::Router;
|
||||
use std::sync::Arc;
|
||||
|
||||
use axum::extract::State;
|
||||
use axum::http::StatusCode;
|
||||
use axum::{Json, Router};
|
||||
use axum::routing::get;
|
||||
use crate::base::controller::BaseController;
|
||||
|
||||
@@ -16,14 +20,24 @@ impl UserController {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn routes() -> Router {
|
||||
pub fn routes(state: Arc<UserController>) -> Router {
|
||||
Router::new()
|
||||
.route("/users", get(Self::get_users))
|
||||
.with_state(state)
|
||||
}
|
||||
|
||||
async fn get_users(
|
||||
State(controller): State<Arc<UserController>>,
|
||||
) -> impl IntoResponse {
|
||||
controller.base_controller.get_all().await
|
||||
) -> Result<Json<Vec<User>>, (StatusCode, Json<String>)> {
|
||||
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())))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user