]> Untitled Git - lemmy.git/blob - crates/db_views/src/site_view.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_views / src / site_view.rs
1 use crate::structs::SiteView;
2 use diesel::{result::Error, *};
3 use lemmy_db_schema::{
4   aggregates::structs::SiteAggregates,
5   schema::{local_site, local_site_rate_limit, site, site_aggregates},
6   source::{local_site::LocalSite, local_site_rate_limit::LocalSiteRateLimit, site::Site},
7 };
8
9 impl SiteView {
10   pub fn read_local(conn: &mut PgConnection) -> Result<Self, Error> {
11     let (mut site, local_site, local_site_rate_limit, counts) = site::table
12       .inner_join(local_site::table)
13       .inner_join(
14         local_site_rate_limit::table.on(local_site::id.eq(local_site_rate_limit::local_site_id)),
15       )
16       .inner_join(site_aggregates::table)
17       .select((
18         site::all_columns,
19         local_site::all_columns,
20         local_site_rate_limit::all_columns,
21         site_aggregates::all_columns,
22       ))
23       .first::<(Site, LocalSite, LocalSiteRateLimit, SiteAggregates)>(conn)?;
24
25     site.private_key = None;
26     Ok(SiteView {
27       site,
28       local_site,
29       local_site_rate_limit,
30       counts,
31     })
32   }
33 }