]> Untitled Git - lemmy.git/blob - crates/db_schema/src/impls/email_verification.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_schema / src / impls / email_verification.rs
1 use crate::{newtypes::LocalUserId, source::email_verification::*};
2 use diesel::{
3   dsl::*,
4   insert_into,
5   result::Error,
6   ExpressionMethods,
7   PgConnection,
8   QueryDsl,
9   RunQueryDsl,
10 };
11
12 impl EmailVerification {
13   pub fn create(conn: &mut PgConnection, form: &EmailVerificationForm) -> Result<Self, Error> {
14     use crate::schema::email_verification::dsl::*;
15     insert_into(email_verification)
16       .values(form)
17       .get_result::<Self>(conn)
18   }
19
20   pub fn read_for_token(conn: &mut PgConnection, token: &str) -> Result<Self, Error> {
21     use crate::schema::email_verification::dsl::*;
22     email_verification
23       .filter(verification_token.eq(token))
24       .filter(published.gt(now - 7.days()))
25       .first::<Self>(conn)
26   }
27   pub fn delete_old_tokens_for_local_user(
28     conn: &mut PgConnection,
29     local_user_id_: LocalUserId,
30   ) -> Result<usize, Error> {
31     use crate::schema::email_verification::dsl::*;
32     diesel::delete(email_verification.filter(local_user_id.eq(local_user_id_))).execute(conn)
33   }
34 }