[GraphQL] Move events endpoint to paginated event list
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -190,7 +190,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Admin do
|
||||
when is_admin(role) do
|
||||
last_public_event_published =
|
||||
case Events.list_events(1, 1, :inserted_at, :desc) do
|
||||
[event | _] -> event
|
||||
%Page{elements: [event | _]} -> event
|
||||
_ -> nil
|
||||
end
|
||||
|
||||
|
||||
@@ -161,7 +161,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
|
||||
events =
|
||||
if @number_of_related_events - length(events) > 0 do
|
||||
events
|
||||
|> Enum.concat(Events.list_events(1, @number_of_related_events, :begins_on, :asc, true))
|
||||
|> Enum.concat(
|
||||
Events.list_events(1, @number_of_related_events, :begins_on, :asc, true).elements
|
||||
)
|
||||
|> uniq_events()
|
||||
else
|
||||
events
|
||||
|
||||
@@ -299,7 +299,7 @@ defmodule Mobilizon.GraphQL.Schema.EventType do
|
||||
|
||||
object :event_queries do
|
||||
@desc "Get all events"
|
||||
field :events, list_of(:event) do
|
||||
field :events, :paginated_event_list do
|
||||
arg(:page, :integer, default_value: 1, description: "The page in the paginated event list")
|
||||
arg(:limit, :integer, default_value: 10, description: "The limit of events per page")
|
||||
resolve(&Event.list_events/3)
|
||||
|
||||
@@ -357,7 +357,7 @@ defmodule Mobilizon.Events do
|
||||
direction \\ :asc,
|
||||
is_future \\ true
|
||||
) do
|
||||
query = from(e in Event, distinct: true, preload: [:organizer_actor, :participants])
|
||||
query = from(e in Event, preload: [:organizer_actor, :participants])
|
||||
|
||||
query
|
||||
|> sort(sort, direction)
|
||||
@@ -365,8 +365,7 @@ defmodule Mobilizon.Events do
|
||||
|> filter_public_visibility()
|
||||
|> filter_draft()
|
||||
|> filter_local_or_from_followed_instances_events()
|
||||
|> Page.paginate(page, limit)
|
||||
|> Repo.all()
|
||||
|> Page.build_page(page, limit)
|
||||
end
|
||||
|
||||
@spec stream_events_for_sitemap :: Enum.t()
|
||||
|
||||
Reference in New Issue
Block a user