use axum::{ debug_handler, extract::State, response::{IntoResponse, Response}, Json, }; use tracing::debug; use crate::{ db::{get_username_and_password_by_username, DbPool, UserIdAndHashedPassword}, models::AppError, requests::AppState, services::verify_password, }; use super::models::AuthLoginRequest; #[debug_handler] pub async fn auth_login_post_handler( State(state): State, Json(body): Json, ) -> Result { let pool = state.db_pool(); auth_login_request(pool, body).await } async fn auth_login_request(pool: &DbPool, body: AuthLoginRequest) -> Result { 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()) }