Permit fetching individual reports with notes preloaded
authorMark Felder <feld@FreeBSD.org>
Mon, 2 Nov 2020 18:19:44 +0000 (12:19 -0600)
committerMark Felder <feld@FreeBSD.org>
Mon, 2 Nov 2020 19:06:59 +0000 (13:06 -0600)
lib/pleroma/activity.ex
lib/pleroma/web/admin_api/controllers/report_controller.ex

index 17af042573f22ccad27cbf29d4d87e7d149f9541..553834da0b786f905f1544fc9feb395c66bc0285 100644 (file)
@@ -14,6 +14,7 @@ defmodule Pleroma.Activity do
   alias Pleroma.ReportNote
   alias Pleroma.ThreadMute
   alias Pleroma.User
+  alias Pleroma.Web.ActivityPub.ActivityPub
 
   import Ecto.Changeset
   import Ecto.Query
@@ -153,6 +154,18 @@ defmodule Pleroma.Activity do
 
   def get_bookmark(_, _), do: nil
 
+  def get_report(activity_id) do
+    opts = %{
+      type: "Flag",
+      skip_preload: true,
+      preload_report_notes: true
+    }
+
+    ActivityPub.fetch_activities_query([], opts)
+    |> where(id: ^activity_id)
+    |> Repo.one()
+  end
+
   def change(struct, params \\ %{}) do
     struct
     |> cast(params, [:data, :recipients])
index 86da93893955ac108c0d17aa7bef288726178738..6a0e56f5fdd466cac99a0b56ab6d81e32f335bde 100644 (file)
@@ -38,7 +38,7 @@ defmodule Pleroma.Web.AdminAPI.ReportController do
   end
 
   def show(conn, %{id: id}) do
-    with %Activity{} = report <- Activity.get_by_id(id) do
+    with %Activity{} = report <- Activity.get_report(id) do
       render(conn, "show.json", Report.extract_report_info(report))
     else
       _ -> {:error, :not_found}