Skip to content
Clone
68ffa26
52 lines 1.4 KB Rust
use db::user::user_email_verification_codes::EmailVerificationPurpose;
use super::types::{IssueCodeArtifacts, IssueCodeCmd, VerifyCodeCmd, VerifyCodeResult};
use super::usecase;
use crate::error::AuthError;
use crate::features::AuthService;
impl AuthService {
pub async fn issue_verification_code(
&self,
email: &str,
user_id: uuid::Uuid,
purpose: EmailVerificationPurpose,
) -> Result<IssueCodeArtifacts, AuthError> {
let db = self.db.writer();
usecase::issue_code(
IssueCodeCmd {
email: email.to_string(),
purpose,
user_id,
},
&db,
&self.kv,
&self.config,
)
.await
}
pub async fn verify_verification_code(
&self,
email: &str,
user_id: Option<uuid::Uuid>,
purpose: EmailVerificationPurpose,
code: &str,
temp_key_value: &str,
) -> Result<VerifyCodeResult, AuthError> {
let db = self.db.writer();
usecase::verify_code(
VerifyCodeCmd {
email: email.to_string(),
purpose,
user_id,
code: code.to_string(),
temp_key_value: temp_key_value.to_string(),
},
&db,
&self.kv,
&self.config,
)
.await
}
}