Get currnet user function
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user