diff --git a/lib/graphql/schema/report.ex b/lib/graphql/schema/report.ex index 2a44a642e..a0202148e 100644 --- a/lib/graphql/schema/report.ex +++ b/lib/graphql/schema/report.ex @@ -30,6 +30,11 @@ defmodule Mobilizon.GraphQL.Schema.ReportType do field(:updated_at, :datetime, description: "When the report was updated") end + object :paginated_report_list do + field(:elements, list_of(:report), description: "A list of reports") + field(:total, :integer, description: "The total number of reports in the list") + end + @desc "A report note object" object :report_note do interfaces([:action_log_object]) @@ -54,10 +59,10 @@ defmodule Mobilizon.GraphQL.Schema.ReportType do object :report_queries do @desc "Get all reports" - field :reports, list_of(:report) do + field :reports, :paginated_report_list do arg(:page, :integer, default_value: 1, - description: "The page in the reports participations list" + description: "The page in the report list" ) arg(:limit, :integer, default_value: 10, description: "The limit of reports per page") diff --git a/lib/mobilizon/reports/reports.ex b/lib/mobilizon/reports/reports.ex index 8c76c6332..d774c616a 100644 --- a/lib/mobilizon/reports/reports.ex +++ b/lib/mobilizon/reports/reports.ex @@ -76,7 +76,7 @@ defmodule Mobilizon.Reports do @doc """ Returns the list of reports. """ - @spec list_reports(integer | nil, integer | nil, atom, atom, ReportStatus) :: [Report.t()] + @spec list_reports(integer | nil, integer | nil, atom, atom, ReportStatus) :: Page.t() def list_reports( page \\ nil, limit \\ nil, @@ -86,9 +86,8 @@ defmodule Mobilizon.Reports do ) do status |> list_reports_query() - |> Page.paginate(page, limit) |> sort(sort, direction) - |> Repo.all() + |> Page.build_page(page, limit) end @doc """