-use crate::{
- activities::{
- generate_activity_id,
- send_lemmy_activity,
- verify_activity,
- verify_person_in_community,
- },
- fetcher::object_id::ObjectId,
- objects::{community::ApubCommunity, person::ApubPerson},
- protocol::activities::community::report::Report,
- PostOrComment,
-};
+#[async_trait::async_trait]
+impl SendActivity for CreatePostReport {
+ type Response = PostReportResponse;
+
+ async fn send_activity(
+ request: &Self,
+ response: &Self::Response,
+ context: &Data<LemmyContext>,
+ ) -> Result<(), LemmyError> {
+ let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
+ Report::send(
+ ObjectId::from(response.post_report_view.post.ap_id.clone()),
+ &local_user_view.person.into(),
+ ObjectId::from(response.post_report_view.community.actor_id.clone()),
+ request.reason.to_string(),
+ context,
+ )
+ .await
+ }
+}
+
+#[async_trait::async_trait]
+impl SendActivity for CreateCommentReport {
+ type Response = CommentReportResponse;
+
+ async fn send_activity(
+ request: &Self,
+ response: &Self::Response,
+ context: &Data<LemmyContext>,
+ ) -> Result<(), LemmyError> {
+ let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
+ Report::send(
+ ObjectId::from(response.comment_report_view.comment.ap_id.clone()),
+ &local_user_view.person.into(),
+ ObjectId::from(response.comment_report_view.community.actor_id.clone()),
+ request.reason.to_string(),
+ context,
+ )
+ .await
+ }
+}