]> Untitled Git - lemmy.git/blob - crates/db_schema/src/impls/site.rs
Removing the site creator, adding leave_admin. Fixes #1808 (#2052)
[lemmy.git] / crates / db_schema / src / impls / site.rs
1 use crate::{source::site::*, traits::Crud};
2 use diesel::{dsl::*, result::Error, *};
3
4 impl Crud for Site {
5   type Form = SiteForm;
6   type IdType = i32;
7   fn read(conn: &PgConnection, _site_id: i32) -> Result<Self, Error> {
8     use crate::schema::site::dsl::*;
9     site.first::<Self>(conn)
10   }
11
12   fn create(conn: &PgConnection, new_site: &SiteForm) -> Result<Self, Error> {
13     use crate::schema::site::dsl::*;
14     insert_into(site).values(new_site).get_result::<Self>(conn)
15   }
16
17   fn update(conn: &PgConnection, site_id: i32, new_site: &SiteForm) -> Result<Self, Error> {
18     use crate::schema::site::dsl::*;
19     diesel::update(site.find(site_id))
20       .set(new_site)
21       .get_result::<Self>(conn)
22   }
23   fn delete(conn: &PgConnection, site_id: i32) -> Result<usize, Error> {
24     use crate::schema::site::dsl::*;
25     diesel::delete(site.find(site_id)).execute(conn)
26   }
27 }
28
29 impl Site {
30   pub fn read_simple(conn: &PgConnection) -> Result<Self, Error> {
31     use crate::schema::site::dsl::*;
32     site.first::<Self>(conn)
33   }
34 }