]> Untitled Git - lemmy.git/blobdiff - crates/api_common/src/build_response.rs
Remove SendActivity and Perform traits, rely on channel (#3596)
[lemmy.git] / crates / api_common / src / build_response.rs
index 8b96206cb214a1489fa5e690f98ea365cf6dfaae..a61da7f0b7627a2ce3fcc6b5e547aae78d2cc9f9 100644 (file)
@@ -64,7 +64,7 @@ pub async fn build_community_response(
 }
 
 pub async fn build_post_response(
-  context: &Data<LemmyContext>,
+  context: &LemmyContext,
   community_id: CommunityId,
   person_id: PersonId,
   post_id: PostId,
@@ -82,6 +82,19 @@ pub async fn build_post_response(
   Ok(PostResponse { post_view })
 }
 
+// this is a variation of build_post_response that returns post even if end-user-delted or mod-removed.
+// Assumption is that before this function is ever called, the user is already confirmed to be authorized to view post.
+// See GitHub Issue #3588
+pub async fn build_post_response_deleted_allowed(
+  context: &Data<LemmyContext>,
+  _community_id: CommunityId,
+  person_id: PersonId,
+  post_id: PostId,
+) -> Result<PostResponse, LemmyError> {
+  let post_view = PostView::read(&mut context.pool(), post_id, Some(person_id), Some(true)).await?;
+  Ok(PostResponse { post_view })
+}
+
 // TODO: this function is a mess and should be split up to handle email seperately
 #[tracing::instrument(skip_all)]
 pub async fn send_local_notifs(