diff --git a/api_tests/src/shared.ts b/api_tests/src/shared.ts index f6668be08..abd3093e3 100644 --- a/api_tests/src/shared.ts +++ b/api_tests/src/shared.ts @@ -290,6 +290,7 @@ export async function searchPostLocal( q: post.name, type_: "Posts", sort: "TopAll", + listing_type: "All", }; return api.search(form); } diff --git a/crates/db_views/src/post_view.rs b/crates/db_views/src/post_view.rs index 87f50471c..e133d9e4a 100644 --- a/crates/db_views/src/post_view.rs +++ b/crates/db_views/src/post_view.rs @@ -344,7 +344,7 @@ fn queries<'a>() -> Queries< query = query.filter(post_aggregates::creator_id.eq(creator_id)); } - if let (Some(listing_type), Some(person_id)) = (options.listing_type, person_id) { + if let Some(person_id) = person_id { let is_subscribed = exists( community_follower::table.filter( post_aggregates::community_id @@ -352,7 +352,7 @@ fn queries<'a>() -> Queries< .and(community_follower::person_id.eq(person_id)), ), ); - match listing_type { + match options.listing_type.unwrap_or_default() { ListingType::Subscribed => query = query.filter(is_subscribed), ListingType::Local => { query = query @@ -370,6 +370,15 @@ fn queries<'a>() -> Queries< )); } } + } else { + match options.listing_type.unwrap_or_default() { + ListingType::Local => { + query = query + .filter(community::local.eq(true)) + .filter(community::hidden.eq(false)); + } + _ => query = query.filter(community::hidden.eq(false)), + } } if let Some(url_search) = &options.url_search {