use lemmy_api_common::{
context::LemmyContext,
post::{GetPosts, GetPostsResponse},
- utils::{check_private_instance, is_mod_or_admin_opt, local_user_view_from_jwt_opt},
+ utils::{check_private_instance, local_user_view_from_jwt_opt},
};
use lemmy_db_schema::source::{community::Community, local_site::LocalSite};
use lemmy_db_views::post_view::PostQuery;
} else {
data.community_id
};
- let saved_only = data.saved_only;
+ let saved_only = data.saved_only.unwrap_or_default();
+
+ let liked_only = data.liked_only.unwrap_or_default();
+ let disliked_only = data.disliked_only.unwrap_or_default();
+ if liked_only && disliked_only {
+ return Err(LemmyError::from(LemmyErrorType::ContradictingFilters));
+ }
+
+ let moderator_view = data.moderator_view.unwrap_or_default();
let listing_type = Some(listing_type_with_default(
data.type_,
community_id,
)?);
- let is_mod_or_admin = Some(
- is_mod_or_admin_opt(&mut context.pool(), local_user_view.as_ref(), community_id)
- .await
- .is_ok(),
- );
-
let posts = PostQuery {
- local_user: local_user_view.map(|l| l.local_user).as_ref(),
+ local_user: local_user_view.as_ref(),
listing_type,
sort,
community_id,
saved_only,
+ liked_only,
+ disliked_only,
+ moderator_view,
page,
limit,
- is_mod_or_admin,
..Default::default()
}
.list(&mut context.pool())