Paginate the list of conversations
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -14,7 +14,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
|
||||
def find_discussions_for_actor(
|
||||
%Actor{id: group_id},
|
||||
_args,
|
||||
%{page: page, limit: limit},
|
||||
%{
|
||||
context: %{
|
||||
current_user: %User{} = user
|
||||
@@ -24,7 +24,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Discussion do
|
||||
with {:actor, %Actor{id: actor_id} = _actor} <- {:actor, Users.get_actor_for_user(user)},
|
||||
{:member, true} <- {:member, Actors.is_member?(actor_id, group_id)},
|
||||
{:ok, %Actor{type: :Group} = group} <- Actors.get_group_by_actor_id(group_id) do
|
||||
{:ok, Discussions.find_discussions_for_actor(group)}
|
||||
{:ok, Discussions.find_discussions_for_actor(group, page, limit)}
|
||||
else
|
||||
{:member, false} ->
|
||||
{:ok, %Page{total: 0, elements: []}}
|
||||
|
||||
@@ -86,6 +86,12 @@ defmodule Mobilizon.GraphQL.Schema.Actors.GroupType do
|
||||
end
|
||||
|
||||
field :discussions, :paginated_discussion_list do
|
||||
arg(:page, :integer,
|
||||
default_value: 1,
|
||||
description: "The page in the paginated discussion list"
|
||||
)
|
||||
|
||||
arg(:limit, :integer, default_value: 10, description: "The limit of discussions per page")
|
||||
resolve(&Discussion.find_discussions_for_actor/3)
|
||||
description("A list of the discussions for this group")
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user