]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/api/list_posts.rs
Replace Option<bool> with bool for PostQuery and CommentQuery (#3819) (#3857)
[lemmy.git] / crates / apub / src / api / list_posts.rs
index c60abc966017b5bb6ade4fc39fe322d7e0c78c82..c43e1381e7fb5d54d2d5e40fb288b18dda7a9949 100644 (file)
@@ -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())