Get currnet user function

This commit is contained in:
2026-04-25 13:33:41 +02:00
parent c4d374dbfe
commit 834a0b7aa4
2 changed files with 17 additions and 2 deletions

View File

@@ -5,7 +5,7 @@ use argon2::{
password_hash::{SaltString, rand_core::OsRng},
};
use axum::{
Json,
Extension, Json,
extract::State,
http::{Response, StatusCode, header},
response::IntoResponse,
@@ -155,6 +155,20 @@ pub async fn logout() -> Result<impl IntoResponse, (StatusCode, Json<serde_json:
Ok(response)
}
pub async fn get_current_user(
Extension(state): Extension<LoginModel>,
) -> Result<impl IntoResponse, (StatusCode, Json<serde_json::Value>)> {
let response = json!({
"status": "success",
"data": json!({
"first_name": filter_users(&state).first_name,
"last_name": filter_users(&state).last_name
})
});
Ok(Json(response))
}
fn filter_users(user: &LoginModel) -> FilteredUser {
FilteredUser {
id: user.id,

View File

@@ -8,7 +8,7 @@ use axum::{
use crate::{
AppState,
handlers::{
auth::{create_user, login, logout},
auth::{create_user, get_current_user, login, logout},
ticket::{create_ticket, delete_ticket, edit_ticket, get_ticket_by_id, get_tickets},
},
};
@@ -26,5 +26,6 @@ pub fn create_router(state: Arc<AppState>) -> Router {
.route("/api/register", post(create_user))
.route("/api/login", post(login))
.route("/api/logout", get(logout))
.route("/api/current_user", get(get_current_user))
.with_state(state)
}