]> Untitled Git - lemmy.git/blob - lemmy_db/src/views/site_view.rs
d10702fca95bb07b17af0818f5ece8c70f3376f9
[lemmy.git] / lemmy_db / src / views / site_view.rs
1 use crate::{
2   schema::{site, user_},
3   source::{
4     site::Site,
5     user::{UserSafe, User_},
6   },
7   ToSafe,
8 };
9 use diesel::{result::Error, *};
10 use serde::Serialize;
11
12 #[derive(Debug, Serialize, Clone)]
13 pub struct SiteView {
14   pub site: Site,
15   pub creator: UserSafe,
16 }
17
18 impl SiteView {
19   pub fn read(conn: &PgConnection) -> Result<Self, Error> {
20     let (site, creator) = site::table
21       .inner_join(user_::table)
22       .select((site::all_columns, User_::safe_columns_tuple()))
23       .first::<(Site, UserSafe)>(conn)?;
24
25     Ok(SiteView { site, creator })
26   }
27 }