3 schema::email_verification::dsl::{
9 source::email_verification::{EmailVerification, EmailVerificationForm},
10 utils::{get_conn, DbPool},
13 dsl::{now, IntervalDsl},
19 use diesel_async::RunQueryDsl;
21 impl EmailVerification {
22 pub async fn create(pool: &mut DbPool<'_>, form: &EmailVerificationForm) -> Result<Self, Error> {
23 let conn = &mut get_conn(pool).await?;
24 insert_into(email_verification)
26 .get_result::<Self>(conn)
30 pub async fn read_for_token(pool: &mut DbPool<'_>, token: &str) -> Result<Self, Error> {
31 let conn = &mut get_conn(pool).await?;
33 .filter(verification_token.eq(token))
34 .filter(published.gt(now - 7.days()))
38 pub async fn delete_old_tokens_for_local_user(
39 pool: &mut DbPool<'_>,
40 local_user_id_: LocalUserId,
41 ) -> Result<usize, Error> {
42 let conn = &mut get_conn(pool).await?;
43 diesel::delete(email_verification.filter(local_user_id.eq(local_user_id_)))