X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapi%2Fsrc%2Fcomment_report%2Flist.rs;h=3f6f160c84ec72d5f9060dc459d14f13d6f04d1c;hb=c8063f3267cf2b3622f1fdc69128c6b55feefbbc;hp=4a9041e99d9e3ccc9d3462fcfe44d813c07e058d;hpb=5d837780f5d149cb8d3b861c63a7dc4466a7cbf1;p=lemmy.git diff --git a/crates/api/src/comment_report/list.rs b/crates/api/src/comment_report/list.rs index 4a9041e9..3f6f160c 100644 --- a/crates/api/src/comment_report/list.rs +++ b/crates/api/src/comment_report/list.rs @@ -1,50 +1,34 @@ -use crate::Perform; -use actix_web::web::Data; +use actix_web::web::{Data, Json, Query}; use lemmy_api_common::{ comment::{ListCommentReports, ListCommentReportsResponse}, - utils::get_local_user_view_from_jwt, + context::LemmyContext, + utils::local_user_view_from_jwt, }; use lemmy_db_views::comment_report_view::CommentReportQuery; -use lemmy_utils::{error::LemmyError, ConnectionId}; -use lemmy_websocket::LemmyContext; +use lemmy_utils::error::LemmyError; /// Lists comment reports for a community if an id is supplied /// or returns all comment reports for communities a user moderates -#[async_trait::async_trait(?Send)] -impl Perform for ListCommentReports { - type Response = ListCommentReportsResponse; +#[tracing::instrument(skip(context))] +pub async fn list_comment_reports( + data: Query, + context: Data, +) -> Result, LemmyError> { + let local_user_view = local_user_view_from_jwt(&data.auth, &context).await?; - #[tracing::instrument(skip(context, _websocket_id))] - async fn perform( - &self, - context: &Data, - _websocket_id: Option, - ) -> Result { - let data: &ListCommentReports = self; - let local_user_view = - get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?; + let community_id = data.community_id; + let unresolved_only = data.unresolved_only.unwrap_or_default(); - let person_id = local_user_view.person.id; - let admin = local_user_view.person.admin; - let community_id = data.community_id; - let unresolved_only = data.unresolved_only; - - let page = data.page; - let limit = data.limit; - let comment_reports = CommentReportQuery::builder() - .pool(context.pool()) - .my_person_id(person_id) - .admin(admin) - .community_id(community_id) - .unresolved_only(unresolved_only) - .page(page) - .limit(limit) - .build() - .list() - .await?; - - let res = ListCommentReportsResponse { comment_reports }; - - Ok(res) + let page = data.page; + let limit = data.limit; + let comment_reports = CommentReportQuery { + community_id, + unresolved_only, + page, + limit, } + .list(&mut context.pool(), &local_user_view.person) + .await?; + + Ok(Json(ListCommentReportsResponse { comment_reports })) }