X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapi%2Fsrc%2Fcomment_report%2Flist.rs;h=3f6f160c84ec72d5f9060dc459d14f13d6f04d1c;hb=c8063f3267cf2b3622f1fdc69128c6b55feefbbc;hp=b88aced700b7e2f20bf6e67d97f75b816e920f9e;hpb=3951a16447fdccfde3b0ec2ef8fcbf9f89562adc;p=lemmy.git diff --git a/crates/api/src/comment_report/list.rs b/crates/api/src/comment_report/list.rs index b88aced7..3f6f160c 100644 --- a/crates/api/src/comment_report/list.rs +++ b/crates/api/src/comment_report/list.rs @@ -1,49 +1,34 @@ -use crate::Perform; -use actix_web::web::Data; +use actix_web::web::{Data, Json, Query}; use lemmy_api_common::{ - blocking, comment::{ListCommentReports, ListCommentReportsResponse}, - get_local_user_view_from_jwt, + context::LemmyContext, + utils::local_user_view_from_jwt, }; -use lemmy_db_views::comment_report_view::CommentReportQueryBuilder; -use lemmy_utils::{ConnectionId, LemmyError}; -use lemmy_websocket::LemmyContext; +use lemmy_db_views::comment_report_view::CommentReportQuery; +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 = blocking(context.pool(), move |conn| { - CommentReportQueryBuilder::create(conn, person_id, admin) - .community_id(community_id) - .unresolved_only(unresolved_only) - .page(page) - .limit(limit) - .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 })) }