debt-pirate/api/src/requests/auth/login/handler.rs

40 lines
990 B
Rust
Raw Normal View History

use axum::{
debug_handler,
2024-10-05 08:09:46 -04:00
extract::State,
response::{IntoResponse, Response},
2024-10-05 08:09:46 -04:00
Json,
};
2024-10-05 08:09:46 -04:00
use tracing::debug;
2024-10-05 08:09:46 -04:00
use crate::{
db::{get_username_and_password_by_username, DbPool, UserIdAndHashedPassword},
models::AppError,
requests::AppState,
services::verify_password,
};
use super::models::AuthLoginRequest;
#[debug_handler]
2024-10-05 08:09:46 -04:00
pub async fn auth_login_post_handler(
State(state): State<AppState>,
Json(body): Json<AuthLoginRequest>,
) -> Result<Response, AppError> {
let pool = state.db_pool();
auth_login_request(pool, body).await
}
async fn auth_login_request(pool: &DbPool, body: AuthLoginRequest) -> Result<Response, AppError> {
debug!(?body);
let AuthLoginRequest { username, password } = body;
let UserIdAndHashedPassword {
id: _id,
password: hashed_password,
} = get_username_and_password_by_username(pool, username).await?;
verify_password(password, hashed_password)?;
Ok(().into_response())
}