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 { 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, purpose: EmailVerificationPurpose, code: &str, temp_key_value: &str, ) -> Result { 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 } }