From 51e181c529100ebbba12ba0e6ffef32b0639986e Mon Sep 17 00:00:00 2001
From: Dessalines <tyhou13@gmx.com>
Date: Fri, 23 Apr 2021 02:09:47 -0400
Subject: [PATCH] Don't search for communities or users when the id is
 included.

---
 crates/api/src/site.rs | 51 +++++++++++++++++++++++++-----------------
 1 file changed, 31 insertions(+), 20 deletions(-)

diff --git a/crates/api/src/site.rs b/crates/api/src/site.rs
index 524d2a91..704b848a 100644
--- a/crates/api/src/site.rs
+++ b/crates/api/src/site.rs
@@ -227,6 +227,9 @@ impl Perform for Search {
         .await??;
       }
       SearchType::All => {
+        // If the community is included, dont search communities or users
+        let community_included = data.community_id.is_some() || data.community_name.is_some();
+
         posts = blocking(context.pool(), move |conn| {
           PostQueryBuilder::create(conn)
             .sort(sort)
@@ -265,29 +268,37 @@ impl Perform for Search {
 
         let q = data.q.to_owned();
 
-        communities = blocking(context.pool(), move |conn| {
-          CommunityQueryBuilder::create(conn)
-            .sort(sort)
-            .listing_type(listing_type)
-            .search_term(q)
-            .my_person_id(person_id)
-            .page(page)
-            .limit(limit)
-            .list()
-        })
-        .await??;
+        communities = if community_included {
+          vec![]
+        } else {
+          blocking(context.pool(), move |conn| {
+            CommunityQueryBuilder::create(conn)
+              .sort(sort)
+              .listing_type(listing_type)
+              .search_term(q)
+              .my_person_id(person_id)
+              .page(page)
+              .limit(limit)
+              .list()
+          })
+          .await??
+        };
 
         let q = data.q.to_owned();
 
-        users = blocking(context.pool(), move |conn| {
-          PersonQueryBuilder::create(conn)
-            .sort(sort)
-            .search_term(q)
-            .page(page)
-            .limit(limit)
-            .list()
-        })
-        .await??;
+        users = if community_included {
+          vec![]
+        } else {
+          blocking(context.pool(), move |conn| {
+            PersonQueryBuilder::create(conn)
+              .sort(sort)
+              .search_term(q)
+              .page(page)
+              .limit(limit)
+              .list()
+          })
+          .await??
+        };
       }
       SearchType::Url => {
         posts = blocking(context.pool(), move |conn| {
-- 
2.44.1