type CommunityViewTuple = (Community, CommunityAggregates, SubscribedType, bool);
fn queries<'a>() -> Queries<
- impl ReadFn<'a, CommunityView, (CommunityId, Option<PersonId>, Option<bool>)>,
+ impl ReadFn<'a, CommunityView, (CommunityId, Option<PersonId>, bool)>,
impl ListFn<'a, CommunityView, CommunityQuery<'a>>,
> {
let all_joins = |query: community::BoxedQuery<'a, Pg>, my_person_id: Option<PersonId>| {
(community_id, my_person_id, is_mod_or_admin): (
CommunityId,
Option<PersonId>,
- Option<bool>,
+ bool,
)| async move {
let mut query = all_joins(
community::table.find(community_id).into_boxed(),
.select(selection);
// Hide deleted and removed for non-admins or mods
- if !is_mod_or_admin.unwrap_or(false) {
+ if !is_mod_or_admin {
query = query.filter(not_removed_or_deleted);
}
}
// Hide deleted and removed for non-admins or mods
- if !options.is_mod_or_admin.unwrap_or(false) {
+ if !options.is_mod_or_admin {
query = query.filter(not_removed_or_deleted).filter(
community::hidden
.eq(false)
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 is passed into request
- if !options.show_nsfw.unwrap_or(false) {
+ if !options.show_nsfw {
query = query.filter(community::nsfw.eq(false));
}
}
pool: &mut DbPool<'_>,
community_id: CommunityId,
my_person_id: Option<PersonId>,
- is_mod_or_admin: Option<bool>,
+ is_mod_or_admin: bool,
) -> Result<Self, Error> {
queries()
.read(pool, (community_id, my_person_id, is_mod_or_admin))
pub sort: Option<SortType>,
pub local_user: Option<&'a LocalUser>,
pub search_term: Option<String>,
- pub is_mod_or_admin: Option<bool>,
- pub show_nsfw: Option<bool>,
+ pub is_mod_or_admin: bool,
+ pub show_nsfw: bool,
pub page: Option<i64>,
pub limit: Option<i64>,
}