rhythm-backend/src/service/auth_service.rs
Dmitri ff4c9eee87
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 10m12s
added creation of access token and table for refresh token
2026-04-28 20:36:54 +02:00

30 lines
950 B
Rust

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<Json<AuthResponse>, AppError> {
todo!()
}
pub async fn register(
state: &AppState,
req: RegisterRequest,
) -> Result<Json<AuthResponse>, 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")
}