summaryrefslogtreecommitdiffstats
path: root/server/lemmy_db/src/post_view.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/lemmy_db/src/post_view.rs')
-rw-r--r--server/lemmy_db/src/post_view.rs12
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));
}