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}, password_hash::{SaltString, rand_core::OsRng},
}; };
use axum::{ use axum::{
Json, Extension, Json,
extract::State, extract::State,
http::{Response, StatusCode, header}, http::{Response, StatusCode, header},
response::IntoResponse, response::IntoResponse,
@@ -155,6 +155,20 @@ pub async fn logout() -> Result<impl IntoResponse, (StatusCode, Json<serde_json:
Ok(response) 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 { fn filter_users(user: &LoginModel) -> FilteredUser {
FilteredUser { FilteredUser {
id: user.id, id: user.id,

View File

@@ -8,7 +8,7 @@ use axum::{
use crate::{ use crate::{
AppState, AppState,
handlers::{ 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}, 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/register", post(create_user))
.route("/api/login", post(login)) .route("/api/login", post(login))
.route("/api/logout", get(logout)) .route("/api/logout", get(logout))
.route("/api/current_user", get(get_current_user))
.with_state(state) .with_state(state)
} }