1 use crate::{newtypes::LocalUserId, source::registration_application::*, traits::Crud};
2 use diesel::{insert_into, result::Error, ExpressionMethods, PgConnection, QueryDsl, RunQueryDsl};
4 impl Crud for RegistrationApplication {
5 type Form = RegistrationApplicationForm;
7 fn create(conn: &mut PgConnection, form: &Self::Form) -> Result<Self, Error> {
8 use crate::schema::registration_application::dsl::*;
9 insert_into(registration_application)
11 .get_result::<Self>(conn)
14 fn read(conn: &mut PgConnection, id_: Self::IdType) -> Result<Self, Error> {
15 use crate::schema::registration_application::dsl::*;
16 registration_application.find(id_).first::<Self>(conn)
19 fn update(conn: &mut PgConnection, id_: Self::IdType, form: &Self::Form) -> Result<Self, Error> {
20 use crate::schema::registration_application::dsl::*;
21 diesel::update(registration_application.find(id_))
23 .get_result::<Self>(conn)
26 fn delete(conn: &mut PgConnection, id_: Self::IdType) -> Result<usize, Error> {
27 use crate::schema::registration_application::dsl::*;
28 diesel::delete(registration_application.find(id_)).execute(conn)
32 impl RegistrationApplication {
33 pub fn find_by_local_user_id(
34 conn: &mut PgConnection,
35 local_user_id_: LocalUserId,
36 ) -> Result<Self, Error> {
37 use crate::schema::registration_application::dsl::*;
38 registration_application
39 .filter(local_user_id.eq(local_user_id_))