diff options
author | Maxim Filippov <colixer@gmail.com> | 2019-02-28 01:11:56 +0300 |
---|---|---|
committer | Maxim Filippov <colixer@gmail.com> | 2019-02-28 01:11:56 +0300 |
commit | 2883f75a3a25599c6217460133578cddcd34ebb4 (patch) | |
tree | ef52c90750a8cd1fba54a22ff4ddf9bc7af9d048 /lib/pleroma/web/admin_api/admin_api_controller.ex | |
parent | 14bc6bd40f0ea7879cd75444939669ee6e6ac85c (diff) | |
download | pleroma-2883f75a3a25599c6217460133578cddcd34ebb4.tar.gz |
Add pagination to users admin API
Diffstat (limited to 'lib/pleroma/web/admin_api/admin_api_controller.ex')
-rw-r--r-- | lib/pleroma/web/admin_api/admin_api_controller.ex | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index ef72509fe..d75b7e7e7 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -3,6 +3,8 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.AdminAPI.AdminAPIController do + @users_page_size 50 + use Pleroma.Web, :controller alias Pleroma.User alias Pleroma.Web.ActivityPub.Relay @@ -61,11 +63,19 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do do: json_response(conn, :no_content, "") end - def list_users(%{assigns: %{user: admin}} = conn, _data) do - users = User.all_except_one(admin) - - conn - |> json(UserView.render("index_for_admin.json", %{users: users})) + def list_users(%{assigns: %{user: admin}} = conn, %{"page" => page_string}) do + with {page, _} <- Integer.parse(page_string), + users <- User.all_except_one(admin, page, @users_page_size), + count <- User.count_all_except_one(admin), + do: + conn + |> json( + UserView.render("index_for_admin.json", %{ + users: users, + count: count, + page_size: @users_page_size + }) + ) end def right_add(conn, %{"permission_group" => permission_group, "nickname" => nickname}) |