add new flag to api (#3363)
This commit is contained in:
parent
2aef6a5a33
commit
d1d90af0eb
3 changed files with 6 additions and 2 deletions
|
@ -76,6 +76,7 @@ pub struct CommunityResponse {
|
||||||
pub struct ListCommunities {
|
pub struct ListCommunities {
|
||||||
pub type_: Option<ListingType>,
|
pub type_: Option<ListingType>,
|
||||||
pub sort: Option<SortType>,
|
pub sort: Option<SortType>,
|
||||||
|
pub show_nsfw: Option<bool>,
|
||||||
pub page: Option<i64>,
|
pub page: Option<i64>,
|
||||||
pub limit: Option<i64>,
|
pub limit: Option<i64>,
|
||||||
pub auth: Option<Sensitive<String>>,
|
pub auth: Option<Sensitive<String>>,
|
||||||
|
|
|
@ -27,12 +27,14 @@ impl PerformCrud for ListCommunities {
|
||||||
|
|
||||||
let sort = data.sort;
|
let sort = data.sort;
|
||||||
let listing_type = data.type_;
|
let listing_type = data.type_;
|
||||||
|
let show_nsfw = data.show_nsfw;
|
||||||
let page = data.page;
|
let page = data.page;
|
||||||
let limit = data.limit;
|
let limit = data.limit;
|
||||||
let local_user = local_user_view.map(|l| l.local_user);
|
let local_user = local_user_view.map(|l| l.local_user);
|
||||||
let communities = CommunityQuery::builder()
|
let communities = CommunityQuery::builder()
|
||||||
.pool(context.pool())
|
.pool(context.pool())
|
||||||
.listing_type(listing_type)
|
.listing_type(listing_type)
|
||||||
|
.show_nsfw(show_nsfw)
|
||||||
.sort(sort)
|
.sort(sort)
|
||||||
.local_user(local_user.as_ref())
|
.local_user(local_user.as_ref())
|
||||||
.page(page)
|
.page(page)
|
||||||
|
|
|
@ -126,6 +126,7 @@ pub struct CommunityQuery<'a> {
|
||||||
local_user: Option<&'a LocalUser>,
|
local_user: Option<&'a LocalUser>,
|
||||||
search_term: Option<String>,
|
search_term: Option<String>,
|
||||||
is_mod_or_admin: Option<bool>,
|
is_mod_or_admin: Option<bool>,
|
||||||
|
show_nsfw: Option<bool>,
|
||||||
page: Option<i64>,
|
page: Option<i64>,
|
||||||
limit: Option<i64>,
|
limit: Option<i64>,
|
||||||
}
|
}
|
||||||
|
@ -203,8 +204,8 @@ impl<'a> CommunityQuery<'a> {
|
||||||
query = query.filter(community_block::person_id.is_null());
|
query = query.filter(community_block::person_id.is_null());
|
||||||
query = query.filter(community::nsfw.eq(false).or(local_user::show_nsfw.eq(true)));
|
query = query.filter(community::nsfw.eq(false).or(local_user::show_nsfw.eq(true)));
|
||||||
} else {
|
} else {
|
||||||
// No person in request, only show nsfw communities if show_nsfw passed into request
|
// No person in request, only show nsfw communities if show_nsfw is passed into request
|
||||||
if !self.local_user.map(|l| l.show_nsfw).unwrap_or(false) {
|
if !self.show_nsfw.unwrap_or(false) {
|
||||||
query = query.filter(community::nsfw.eq(false));
|
query = query.filter(community::nsfw.eq(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue