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 InsertForm = RegistrationApplicationInsertForm;
6 type UpdateForm = RegistrationApplicationUpdateForm;
8 fn create(conn: &mut PgConnection, form: &Self::InsertForm) -> Result<Self, Error> {
9 use crate::schema::registration_application::dsl::*;
10 insert_into(registration_application)
12 .get_result::<Self>(conn)
15 fn read(conn: &mut PgConnection, id_: Self::IdType) -> Result<Self, Error> {
16 use crate::schema::registration_application::dsl::*;
17 registration_application.find(id_).first::<Self>(conn)
21 conn: &mut PgConnection,
23 form: &Self::UpdateForm,
24 ) -> Result<Self, Error> {
25 use crate::schema::registration_application::dsl::*;
26 diesel::update(registration_application.find(id_))
28 .get_result::<Self>(conn)
31 fn delete(conn: &mut PgConnection, id_: Self::IdType) -> Result<usize, Error> {
32 use crate::schema::registration_application::dsl::*;
33 diesel::delete(registration_application.find(id_)).execute(conn)
37 impl RegistrationApplication {
38 pub fn find_by_local_user_id(
39 conn: &mut PgConnection,
40 local_user_id_: LocalUserId,
41 ) -> Result<Self, Error> {
42 use crate::schema::registration_application::dsl::*;
43 registration_application
44 .filter(local_user_id.eq(local_user_id_))