]> Untitled Git - lemmy.git/blobdiff - crates/api/src/site/search.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / api / src / site / search.rs
index 7c118a0b27885a76cd35a447759ae4374a1568ef..6c02f9ac9e689a5898226a58c5a5208da56dd5ae 100644 (file)
@@ -6,7 +6,7 @@ use lemmy_api_common::{
 };
 use lemmy_apub::{fetcher::resolve_actor_identifier, objects::community::ApubCommunity};
 use lemmy_db_schema::{
-  source::community::Community,
+  source::{community::Community, local_site::LocalSite},
   traits::DeleteableOrRemoveable,
   utils::post_to_comment_sort_type,
   SearchType,
@@ -31,18 +31,12 @@ impl Perform for Search {
     let local_user_view =
       get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
         .await?;
+    let local_site = blocking(context.pool(), LocalSite::read).await??;
 
-    check_private_instance(&local_user_view, context.pool()).await?;
+    check_private_instance(&local_user_view, &local_site)?;
 
-    let show_nsfw = local_user_view.as_ref().map(|t| t.local_user.show_nsfw);
-    let show_bot_accounts = local_user_view
-      .as_ref()
-      .map(|t| t.local_user.show_bot_accounts);
-    let show_read_posts = local_user_view
-      .as_ref()
-      .map(|t| t.local_user.show_read_posts);
-
-    let person_id = local_user_view.map(|u| u.person.id);
+    let person_id = local_user_view.as_ref().map(|u| u.person.id);
+    let local_user = local_user_view.map(|l| l.local_user);
 
     let mut posts = Vec::new();
     let mut comments = Vec::new();
@@ -59,7 +53,7 @@ impl Perform for Search {
     let search_type = data.type_.unwrap_or(SearchType::All);
     let community_id = data.community_id;
     let community_actor_id = if let Some(name) = &data.community_name {
-      resolve_actor_identifier::<ApubCommunity, Community>(name, context)
+      resolve_actor_identifier::<ApubCommunity, Community>(name, context, false)
         .await
         .ok()
         .map(|c| c.actor_id)
@@ -73,14 +67,11 @@ impl Perform for Search {
           PostQuery::builder()
             .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)
-            .my_person_id(person_id)
+            .local_user(local_user.as_ref())
             .search_term(Some(q))
             .page(page)
             .limit(limit)
@@ -96,11 +87,10 @@ impl Perform for Search {
             .sort(sort.map(post_to_comment_sort_type))
             .listing_type(listing_type)
             .search_term(Some(q))
-            .show_bot_accounts(show_bot_accounts)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)
-            .my_person_id(person_id)
+            .local_user(local_user.as_ref())
             .page(page)
             .limit(limit)
             .build()
@@ -115,7 +105,7 @@ impl Perform for Search {
             .sort(sort)
             .listing_type(listing_type)
             .search_term(Some(q))
-            .my_person_id(person_id)
+            .local_user(local_user.as_ref())
             .page(page)
             .limit(limit)
             .build()
@@ -142,18 +132,16 @@ impl Perform for Search {
           data.community_id.is_some() || data.community_name.is_some() || data.creator_id.is_some();
         let community_actor_id_2 = community_actor_id.to_owned();
 
+        let local_user_ = local_user.clone();
         posts = blocking(context.pool(), move |conn| {
           PostQuery::builder()
             .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
             .community_id(community_id)
             .community_actor_id(community_actor_id_2)
             .creator_id(creator_id)
-            .my_person_id(person_id)
+            .local_user(local_user_.as_ref())
             .search_term(Some(q))
             .page(page)
             .limit(limit)
@@ -165,17 +153,17 @@ impl Perform for Search {
         let q = data.q.to_owned();
         let community_actor_id = community_actor_id.to_owned();
 
+        let local_user_ = local_user.clone();
         comments = blocking(context.pool(), move |conn| {
           CommentQuery::builder()
             .conn(conn)
             .sort(sort.map(post_to_comment_sort_type))
             .listing_type(listing_type)
             .search_term(Some(q))
-            .show_bot_accounts(show_bot_accounts)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)
-            .my_person_id(person_id)
+            .local_user(local_user_.as_ref())
             .page(page)
             .limit(limit)
             .build()
@@ -194,7 +182,7 @@ impl Perform for Search {
               .sort(sort)
               .listing_type(listing_type)
               .search_term(Some(q))
-              .my_person_id(person_id)
+              .local_user(local_user.as_ref())
               .page(page)
               .limit(limit)
               .build()
@@ -226,11 +214,7 @@ impl Perform for Search {
           PostQuery::builder()
             .conn(conn)
             .sort(sort)
-            .show_nsfw(show_nsfw)
-            .show_bot_accounts(show_bot_accounts)
-            .show_read_posts(show_read_posts)
             .listing_type(listing_type)
-            .my_person_id(person_id)
             .community_id(community_id)
             .community_actor_id(community_actor_id)
             .creator_id(creator_id)