Don't search for communities or users when the id is included.

additional_search_filters
Dessalines 2021-04-23 02:09:47 -04:00
parent f8cd6fd445
commit 51e181c529
1 changed files with 31 additions and 20 deletions

View File

@ -227,6 +227,9 @@ impl Perform for Search {
.await??; .await??;
} }
SearchType::All => { 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| { posts = blocking(context.pool(), move |conn| {
PostQueryBuilder::create(conn) PostQueryBuilder::create(conn)
.sort(sort) .sort(sort)
@ -265,7 +268,10 @@ impl Perform for Search {
let q = data.q.to_owned(); let q = data.q.to_owned();
communities = blocking(context.pool(), move |conn| { communities = if community_included {
vec![]
} else {
blocking(context.pool(), move |conn| {
CommunityQueryBuilder::create(conn) CommunityQueryBuilder::create(conn)
.sort(sort) .sort(sort)
.listing_type(listing_type) .listing_type(listing_type)
@ -275,11 +281,15 @@ impl Perform for Search {
.limit(limit) .limit(limit)
.list() .list()
}) })
.await??; .await??
};
let q = data.q.to_owned(); let q = data.q.to_owned();
users = blocking(context.pool(), move |conn| { users = if community_included {
vec![]
} else {
blocking(context.pool(), move |conn| {
PersonQueryBuilder::create(conn) PersonQueryBuilder::create(conn)
.sort(sort) .sort(sort)
.search_term(q) .search_term(q)
@ -287,7 +297,8 @@ impl Perform for Search {
.limit(limit) .limit(limit)
.list() .list()
}) })
.await??; .await??
};
} }
SearchType::Url => { SearchType::Url => {
posts = blocking(context.pool(), move |conn| { posts = blocking(context.pool(), move |conn| {