]> Untitled Git - lemmy.git/blobdiff - crates/db_views/src/post_view.rs
Merge branch 'main' into feature/mark_post_as_read
[lemmy.git] / crates / db_views / src / post_view.rs
index fb8f073365ad49b5c8e496e971ae99759966a530..1d8ea80e607720a0e4b2492b79eacb1de16be9ba 100644 (file)
@@ -165,8 +165,8 @@ pub struct PostQueryBuilder<'a> {
   url_search: Option<String>,
   show_nsfw: Option<bool>,
   show_bot_accounts: Option<bool>,
+  show_read_posts: Option<bool>,
   saved_only: Option<bool>,
-  unread_only: Option<bool>,
   page: Option<i64>,
   limit: Option<i64>,
 }
@@ -185,8 +185,8 @@ impl<'a> PostQueryBuilder<'a> {
       url_search: None,
       show_nsfw: None,
       show_bot_accounts: None,
+      show_read_posts: None,
       saved_only: None,
-      unread_only: None,
       page: None,
       limit: None,
     }
@@ -242,6 +242,11 @@ impl<'a> PostQueryBuilder<'a> {
     self
   }
 
+  pub fn show_read_posts<T: MaybeOptional<bool>>(mut self, show_read_posts: T) -> Self {
+    self.show_read_posts = show_read_posts.get_optional();
+    self
+  }
+
   pub fn saved_only<T: MaybeOptional<bool>>(mut self, saved_only: T) -> Self {
     self.saved_only = saved_only.get_optional();
     self
@@ -364,12 +369,12 @@ impl<'a> PostQueryBuilder<'a> {
       query = query.filter(person::bot_account.eq(false));
     };
 
-    if self.saved_only.unwrap_or(false) {
-      query = query.filter(post_saved::id.is_not_null());
+    if !self.show_read_posts.unwrap_or(true) {
+      query = query.filter(post_read::id.is_null());
     };
 
-    if self.unread_only.unwrap_or(false) {
-      query = query.filter(post_read::id.is_not_null());
+    if self.saved_only.unwrap_or(false) {
+      query = query.filter(post_saved::id.is_not_null());
     };
 
     query = match self.sort.unwrap_or(SortType::Hot) {