From: Dessalines Date: Fri, 23 Apr 2021 06:09:47 +0000 (-0400) Subject: Don't search for communities or users when the id is included. X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%22https:/nerdica.net/static/README.zh.hant.md?a=commitdiff_plain;h=51e181c529100ebbba12ba0e6ffef32b0639986e;p=lemmy.git Don't search for communities or users when the id is included. --- 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| {