]> Untitled Git - lemmy.git/commitdiff
Allow filtering out of deleted and removed comments when getting person details ...
authorkartikynwa <kartik.ynwa@gmail.com>
Wed, 21 Sep 2022 01:33:33 +0000 (07:03 +0530)
committerGitHub <noreply@github.com>
Wed, 21 Sep 2022 01:33:33 +0000 (21:33 -0400)
undefined

crates/api_common/src/person.rs
crates/api_crud/src/user/read.rs
crates/db_views/src/comment_view.rs

index 8c4131dd64fcfd085c2d10afaaa70203135c5823..4b29070ac886825b95572936fe11a90db413d333 100644 (file)
@@ -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>>,
 }
 
index 820905d826b83adfb1721313ac3212f504116218..d47bc5337dc33a30ea4f0f90268361ad1250b7e6 100644 (file)
@@ -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);
index 2b496b4ebb8c86ee3e538f8df8bc25cf39124b18..0efc4e11f17a0a0d86ec9b9ac9dc505582b63432 100644 (file)
@@ -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));
     };