pub struct ListCommunities {
pub type_: Option<ListingType>,
pub sort: Option<SortType>,
+ pub show_nsfw: Option<bool>,
pub page: Option<i64>,
pub limit: Option<i64>,
pub auth: Option<Sensitive<String>>,
let sort = data.sort;
let listing_type = data.type_;
+ let show_nsfw = data.show_nsfw;
let page = data.page;
let limit = data.limit;
let local_user = local_user_view.map(|l| l.local_user);
let communities = CommunityQuery::builder()
.pool(context.pool())
.listing_type(listing_type)
+ .show_nsfw(show_nsfw)
.sort(sort)
.local_user(local_user.as_ref())
.page(page)
local_user: Option<&'a LocalUser>,
search_term: Option<String>,
is_mod_or_admin: Option<bool>,
+ show_nsfw: Option<bool>,
page: Option<i64>,
limit: Option<i64>,
}
query = query.filter(community_block::person_id.is_null());
query = query.filter(community::nsfw.eq(false).or(local_user::show_nsfw.eq(true)));
} else {
- // No person in request, only show nsfw communities if show_nsfw passed into request
- if !self.local_user.map(|l| l.show_nsfw).unwrap_or(false) {
+ // No person in request, only show nsfw communities if show_nsfw is passed into request
+ if !self.show_nsfw.unwrap_or(false) {
query = query.filter(community::nsfw.eq(false));
}
}