diff options
Diffstat (limited to 'server/lemmy_db/src/post_view.rs')
-rw-r--r-- | server/lemmy_db/src/post_view.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/server/lemmy_db/src/post_view.rs b/server/lemmy_db/src/post_view.rs index b55359ea..3e9f8737 100644 --- a/server/lemmy_db/src/post_view.rs +++ b/server/lemmy_db/src/post_view.rs @@ -158,6 +158,7 @@ pub struct PostQueryBuilder<'a> { my_user_id: Option<i32>, for_creator_id: Option<i32>, for_community_id: Option<i32>, + for_community_name: Option<String>, search_term: Option<String>, url_search: Option<String>, show_nsfw: bool, @@ -181,6 +182,7 @@ impl<'a> PostQueryBuilder<'a> { my_user_id: None, for_creator_id: None, for_community_id: None, + for_community_name: None, search_term: None, url_search: None, show_nsfw: true, @@ -206,6 +208,11 @@ impl<'a> PostQueryBuilder<'a> { self } + pub fn for_community_name<T: MaybeOptional<String>>(mut self, for_community_name: T) -> Self { + self.for_community_name = for_community_name.get_optional(); + self + } + pub fn for_creator_id<T: MaybeOptional<i32>>(mut self, for_creator_id: T) -> Self { self.for_creator_id = for_creator_id.get_optional(); self @@ -265,6 +272,11 @@ impl<'a> PostQueryBuilder<'a> { query = query.then_order_by(stickied.desc()); } + if let Some(for_community_name) = self.for_community_name { + query = query.filter(community_name.eq(for_community_name)); + query = query.then_order_by(stickied.desc()); + } + if let Some(url_search) = self.url_search { query = query.filter(url.eq(url_search)); } |