use axum::Json; use crate::controller::model::auth_model::*; use crate::db::repository::user_repository; use crate::errors::AppError; use crate::state::AppState; use crate::utils::hash; use crate::utils::jwt::generate_access_token; pub async fn login(state: &AppState, req: LoginRequest) -> Result, AppError> { todo!() } pub async fn register( state: &AppState, req: RegisterRequest, ) -> Result, AppError> { let mut tx = state.db.begin().await?; let user = user_repository::get_user_by_email(&mut *tx, &req.email).await?; if user.is_some() { // user already registered return Err(AppError::Internal); } let h = hash::hash(&req.password)?; let user = user_repository::create_user(&mut *tx, req.email, h).await?; let access_token = generate_access_token(user.id, &state.jwt_secret)?; tx.commit().await?; todo!("generate jwt and refresh token") }