X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fadmin_api%2Fadmin_api_controller.ex;h=6d9bf289502f617ea40adffc3a3278fa43e616cc;hb=e751f3ec56a1b05892cedefb88418ac3243bc99d;hp=d8e3d57e1fd03ab7ba852706b0d19dbc98d7caf5;hpb=72b7a0797ec42a021f4f8f50dce859fb0f12bf75;p=akkoma diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index d8e3d57e1..6d9bf2895 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -8,7 +8,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do use Pleroma.Web, :controller alias Pleroma.User alias Pleroma.Web.ActivityPub.Relay - alias Pleroma.Web.MastodonAPI.Admin.AccountView + alias Pleroma.Web.AdminAPI.AccountView import Pleroma.Web.ControllerHelper, only: [json_response: 3] @@ -63,18 +63,25 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do do: json_response(conn, :no_content, "") end - 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), + def list_users(%{assigns: %{user: admin}} = conn, params) do + {page, page_size} = page_params(params) + + with {:ok, users, count} <- + User.search_for_admin(%{ + query: params["query"], + admin: admin, + local: params["local_only"] == "true", + page: page, + page_size: page_size + }), do: conn |> json( - AccountView.render("index.json", %{ + AccountView.render("index.json", users: users, count: count, - page_size: @users_page_size - }) + page_size: page_size + ) ) end @@ -221,4 +228,26 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do |> put_status(500) |> json("Something went wrong") end + + defp page_params(params) do + {get_page(params["page"]), get_page_size(params["page_size"])} + end + + defp get_page(page_string) when is_nil(page_string), do: 1 + + defp get_page(page_string) do + case Integer.parse(page_string) do + {page, _} -> page + :error -> 1 + end + end + + defp get_page_size(page_size_string) when is_nil(page_size_string), do: @users_page_size + + defp get_page_size(page_size_string) do + case Integer.parse(page_size_string) do + {page_size, _} -> page_size + :error -> @users_page_size + end + end end