]> Untitled Git - lemmy.git/blobdiff - crates/api_crud/src/site/read.rs
Get rid of Safe Views, use serde_skip (#2767)
[lemmy.git] / crates / api_crud / src / site / read.rs
index 2f4203a0b72d474e823e5d22210ecfd03686a49a..51457b8834d0448698bc049d078396bba78b8e7d 100644 (file)
@@ -1,20 +1,24 @@
 use crate::PerformCrud;
 use actix_web::web::Data;
 use lemmy_api_common::{
+  context::LemmyContext,
   site::{GetSite, GetSiteResponse, MyUserInfo},
   utils::{build_federated_instances, get_local_user_settings_view_from_jwt_opt},
 };
-use lemmy_db_schema::source::{actor_language::SiteLanguage, language::Language};
-use lemmy_db_views::structs::{LocalUserDiscussionLanguageView, SiteView};
+use lemmy_db_schema::source::{
+  actor_language::{LocalUserLanguage, SiteLanguage},
+  language::Language,
+  tagline::Tagline,
+};
+use lemmy_db_views::structs::SiteView;
 use lemmy_db_views_actor::structs::{
   CommunityBlockView,
   CommunityFollowerView,
   CommunityModeratorView,
   PersonBlockView,
-  PersonViewSafe,
+  PersonView,
 };
 use lemmy_utils::{error::LemmyError, version, ConnectionId};
-use lemmy_websocket::{messages::GetUsersOnline, LemmyContext};
 
 #[async_trait::async_trait(?Send)]
 impl PerformCrud for GetSite {
@@ -30,13 +34,9 @@ impl PerformCrud for GetSite {
 
     let site_view = SiteView::read_local(context.pool()).await?;
 
-    let admins = PersonViewSafe::admins(context.pool()).await?;
+    let admins = PersonView::admins(context.pool()).await?;
 
-    let online = context
-      .chat_server()
-      .send(GetUsersOnline)
-      .await
-      .unwrap_or(1);
+    let online = context.chat_server().get_users_online()?;
 
     // Build the local user
     let my_user = if let Some(local_user_view) = get_local_user_settings_view_from_jwt_opt(
@@ -67,10 +67,9 @@ impl PerformCrud for GetSite {
         .await
         .map_err(|e| LemmyError::from_error_message(e, "system_err_login"))?;
 
-      let discussion_languages =
-        LocalUserDiscussionLanguageView::read_languages(context.pool(), local_user_id)
-          .await
-          .map_err(|e| LemmyError::from_error_message(e, "system_err_login"))?;
+      let discussion_languages = LocalUserLanguage::read(context.pool(), local_user_id)
+        .await
+        .map_err(|e| LemmyError::from_error_message(e, "system_err_login"))?;
 
       Some(MyUserInfo {
         local_user_view,
@@ -89,6 +88,8 @@ impl PerformCrud for GetSite {
 
     let all_languages = Language::read_all(context.pool()).await?;
     let discussion_languages = SiteLanguage::read_local(context.pool()).await?;
+    let taglines_res = Tagline::get_all(context.pool(), site_view.local_site.id).await?;
+    let taglines = (!taglines_res.is_empty()).then_some(taglines_res);
 
     Ok(GetSiteResponse {
       site_view,
@@ -99,6 +100,7 @@ impl PerformCrud for GetSite {
       federated_instances,
       all_languages,
       discussion_languages,
+      taglines,
     })
   }
 }