1 use crate::{newtypes::LocalUserId, source::email_verification::*, traits::Crud};
12 impl Crud for EmailVerification {
13 type Form = EmailVerificationForm;
15 fn create(conn: &PgConnection, form: &EmailVerificationForm) -> Result<Self, Error> {
16 use crate::schema::email_verification::dsl::*;
17 insert_into(email_verification)
19 .get_result::<Self>(conn)
22 fn read(conn: &PgConnection, id_: i32) -> Result<Self, Error> {
23 use crate::schema::email_verification::dsl::*;
24 email_verification.find(id_).first::<Self>(conn)
27 fn update(conn: &PgConnection, id_: i32, form: &EmailVerificationForm) -> Result<Self, Error> {
28 use crate::schema::email_verification::dsl::*;
29 diesel::update(email_verification.find(id_))
31 .get_result::<Self>(conn)
34 fn delete(conn: &PgConnection, id_: i32) -> Result<usize, Error> {
35 use crate::schema::email_verification::dsl::*;
36 diesel::delete(email_verification.find(id_)).execute(conn)
40 impl EmailVerification {
41 pub fn read_for_token(conn: &PgConnection, token: &str) -> Result<Self, Error> {
42 use crate::schema::email_verification::dsl::*;
44 .filter(verification_token.eq(token))
45 .filter(published.gt(now - 7.days()))
48 pub fn delete_old_tokens_for_local_user(
50 local_user_id_: LocalUserId,
51 ) -> Result<usize, Error> {
52 use crate::schema::email_verification::dsl::*;
53 diesel::delete(email_verification.filter(local_user_id.eq(local_user_id_))).execute(conn)