]> Untitled Git - lemmy.git/blob - crates/db_schema/src/impls/email_verification.rs
Diesel 2.0.0 upgrade (#2452)
[lemmy.git] / crates / db_schema / src / impls / email_verification.rs
1 use crate::{newtypes::LocalUserId, source::email_verification::*, traits::Crud};
2 use diesel::{
3   dsl::*,
4   insert_into,
5   result::Error,
6   ExpressionMethods,
7   PgConnection,
8   QueryDsl,
9   RunQueryDsl,
10 };
11
12 impl Crud for EmailVerification {
13   type Form = EmailVerificationForm;
14   type IdType = i32;
15   fn create(conn: &mut PgConnection, form: &EmailVerificationForm) -> Result<Self, Error> {
16     use crate::schema::email_verification::dsl::*;
17     insert_into(email_verification)
18       .values(form)
19       .get_result::<Self>(conn)
20   }
21
22   fn read(conn: &mut PgConnection, id_: i32) -> Result<Self, Error> {
23     use crate::schema::email_verification::dsl::*;
24     email_verification.find(id_).first::<Self>(conn)
25   }
26
27   fn update(
28     conn: &mut PgConnection,
29     id_: i32,
30     form: &EmailVerificationForm,
31   ) -> Result<Self, Error> {
32     use crate::schema::email_verification::dsl::*;
33     diesel::update(email_verification.find(id_))
34       .set(form)
35       .get_result::<Self>(conn)
36   }
37
38   fn delete(conn: &mut PgConnection, id_: i32) -> Result<usize, Error> {
39     use crate::schema::email_verification::dsl::*;
40     diesel::delete(email_verification.find(id_)).execute(conn)
41   }
42 }
43
44 impl EmailVerification {
45   pub fn read_for_token(conn: &mut PgConnection, token: &str) -> Result<Self, Error> {
46     use crate::schema::email_verification::dsl::*;
47     email_verification
48       .filter(verification_token.eq(token))
49       .filter(published.gt(now - 7.days()))
50       .first::<Self>(conn)
51   }
52   pub fn delete_old_tokens_for_local_user(
53     conn: &mut PgConnection,
54     local_user_id_: LocalUserId,
55   ) -> Result<usize, Error> {
56     use crate::schema::email_verification::dsl::*;
57     diesel::delete(email_verification.filter(local_user_id.eq(local_user_id_))).execute(conn)
58   }
59 }