Files
imphnen-backend-service/src/apps/v1/auth/auth_repository.rs
T

33 lines
791 B
Rust
Raw Normal View History

2025-03-13 23:40:16 +07:00
use crate::{v1::UsersItemDto, AppState};
use std::error::Error;
2025-02-08 00:58:54 +07:00
2025-03-13 23:40:16 +07:00
use super::AuthRegisterRequestDto;
2025-02-25 02:00:19 +07:00
2025-03-13 23:40:16 +07:00
pub async fn query_user_by_email(
email: String,
2025-02-25 02:00:19 +07:00
state: &AppState,
2025-03-13 23:40:16 +07:00
) -> Result<UsersItemDto, Box<dyn Error>> {
let db = &state.surrealdb;
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
let mut result = db
.query("SELECT * FROM app_users WHERE email = $email LIMIT 1;")
.bind(("email", email.clone()))
.await?;
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
let user: Option<UsersItemDto> = result.take(0)?;
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
user.ok_or_else(|| format!("User not found for email: {}", email).into())
2025-02-08 00:58:54 +07:00
}
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
pub async fn query_create_user(
data: AuthRegisterRequestDto,
2025-02-26 15:45:05 +07:00
state: &AppState,
2025-03-13 23:40:16 +07:00
) -> Result<String, Box<dyn Error>> {
let db = &state.surrealdb;
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
let _record: Option<UsersItemDto> =
db.create(("app_users", &data.email)).content(data).await?;
2025-02-26 15:45:05 +07:00
2025-03-13 23:40:16 +07:00
Ok("Success create user".into())
2025-02-26 15:45:05 +07:00
}