use uuid::Uuid; use super::{AcceptAgreementCmd, AcceptAgreementResp}; use super::usecase; use crate::config::AgreementDoc; use crate::error::AuthError; use crate::features::AuthService; impl AuthService { pub fn list_agreements(&self) -> Vec { usecase::list_agreements(&self.config) } pub async fn accept_agreement( &self, user_id: Uuid, agreement_key: &str, agreement_version: &str, ) -> Result { let db = self.db.writer(); usecase::accept_agreement( AcceptAgreementCmd { user_id, agreement_key: agreement_key.to_string(), agreement_version: agreement_version.to_string(), }, &db, &self.config, ) .await } /// Internal helper used by other features (register, oauth) to record /// that a user accepted every currently configured agreement. pub(crate) async fn record_agreement( &self, user_id: Uuid, key: &str, version: &str, ) -> Result<(), AuthError> { let _ = self.accept_agreement(user_id, key, version).await?; Ok(()) } }