diff --git a/crates/api_common/src/person.rs b/crates/api_common/src/person.rs index 8c4131dd64fcfd085c2d10afaaa70203135c5823..4b29070ac886825b95572936fe11a90db413d333 100644 --- a/crates/api_common/src/person.rs +++ b/crates/api_common/src/person.rs @@ -99,6 +99,7 @@ pub struct GetPersonDetails { pub limit: Option<i64>, pub community_id: Option<CommunityId>, pub saved_only: Option<bool>, + pub show_deleted_and_removed: Option<bool>, pub auth: Option<Sensitive<String>>, } diff --git a/crates/api_crud/src/user/read.rs b/crates/api_crud/src/user/read.rs index 820905d826b83adfb1721313ac3212f504116218..d47bc5337dc33a30ea4f0f90268361ad1250b7e6 100644 --- a/crates/api_crud/src/user/read.rs +++ b/crates/api_crud/src/user/read.rs @@ -60,6 +60,7 @@ impl PerformCrud for GetPersonDetails { let page = data.page; let limit = data.limit; let saved_only = data.saved_only; + let show_deleted_and_removed = data.show_deleted_and_removed; let community_id = data.community_id; let (posts, comments) = blocking(context.pool(), move |conn| { @@ -77,6 +78,7 @@ impl PerformCrud for GetPersonDetails { .local_user(local_user.as_ref()) .sort(sort.map(post_to_comment_sort_type)) .saved_only(saved_only) + .show_deleted_and_removed(show_deleted_and_removed) .community_id(community_id) .page(page) .limit(limit); diff --git a/crates/db_views/src/comment_view.rs b/crates/db_views/src/comment_view.rs index 2b496b4ebb8c86ee3e538f8df8bc25cf39124b18..0efc4e11f17a0a0d86ec9b9ac9dc505582b63432 100644 --- a/crates/db_views/src/comment_view.rs +++ b/crates/db_views/src/comment_view.rs @@ -165,6 +165,7 @@ pub struct CommentQuery<'a> { local_user: Option<&'a LocalUser>, search_term: Option<String>, saved_only: Option<bool>, + show_deleted_and_removed: Option<bool>, page: Option<i64>, limit: Option<i64>, max_depth: Option<i32>, @@ -302,6 +303,11 @@ impl<'a> CommentQuery<'a> { query = query.filter(comment_saved::id.is_not_null()); } + if !self.show_deleted_and_removed.unwrap_or(true) { + query = query.filter(comment::deleted.eq(false)); + query = query.filter(comment::removed.eq(false)); + } + if !self.local_user.map(|l| l.show_bot_accounts).unwrap_or(true) { query = query.filter(person::bot_account.eq(false)); };