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