X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Fapi%2Flist_posts.rs;h=c43e1381e7fb5d54d2d5e40fb288b18dda7a9949;hb=c8063f3267cf2b3622f1fdc69128c6b55feefbbc;hp=c60abc966017b5bb6ade4fc39fe322d7e0c78c82;hpb=88215bfbc98b70595035426c06cfe67f4a9ab0ab;p=lemmy.git diff --git a/crates/apub/src/api/list_posts.rs b/crates/apub/src/api/list_posts.rs index c60abc96..c43e1381 100644 --- a/crates/apub/src/api/list_posts.rs +++ b/crates/apub/src/api/list_posts.rs @@ -8,7 +8,7 @@ use actix_web::web::{Json, Query}; 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; @@ -34,7 +34,15 @@ pub async fn list_posts( } 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_, @@ -42,21 +50,17 @@ pub async fn list_posts( 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())