diff --git a/server/src/routes.rs b/server/src/routes.rs index b911c3d..740af81 100644 --- a/server/src/routes.rs +++ b/server/src/routes.rs @@ -11,6 +11,7 @@ pub fn routes() -> Router { // .route("/member/:id", get()) .merge(member::routes()) .merge(auth::routes()) + .merge(user::routes()) } async fn root( diff --git a/server/src/routes/user.rs b/server/src/routes/user.rs index 8b13789..1943a4d 100644 --- a/server/src/routes/user.rs +++ b/server/src/routes/user.rs @@ -1 +1,15 @@ +use axum::{extract::State, http::HeaderMap, routing::get, Json, Router}; +use crate::{auth::get_user_from_header, model::User, AppState}; + +pub fn routes() -> Router { + Router::new().route("/user", get(get_current_user)) +} + +pub async fn get_current_user<'a>( + State(state): State, + headers: HeaderMap, +) -> Result, crate::Error> { + let (_roles, user) = get_user_from_header(&state.pool, &headers).await?; + Ok(Json(user)) +}