Merge branch 'chore/merge-search-into-list-users' into 'develop'
Merge search endpoint into /users See merge request pleroma/pleroma!898
This commit is contained in:
commit
0fe715f3ba
5 changed files with 89 additions and 89 deletions
|
|
@ -749,13 +749,41 @@ defmodule Pleroma.User do
|
|||
Repo.all(query)
|
||||
end
|
||||
|
||||
@spec search_for_admin(binary(), %{
|
||||
@spec search_for_admin(%{
|
||||
local: boolean(),
|
||||
page: number(),
|
||||
page_size: number()
|
||||
}) :: {:ok, [Pleroma.User.t()], number()}
|
||||
def search_for_admin(%{query: nil, local: local, page: page, page_size: page_size}) do
|
||||
query =
|
||||
from(u in User, order_by: u.id)
|
||||
|> maybe_local_user_query(local)
|
||||
|
||||
paginated_query =
|
||||
query
|
||||
|> paginate(page, page_size)
|
||||
|
||||
count =
|
||||
query
|
||||
|> Repo.aggregate(:count, :id)
|
||||
|
||||
{:ok, Repo.all(paginated_query), count}
|
||||
end
|
||||
|
||||
@spec search_for_admin(%{
|
||||
query: binary(),
|
||||
admin: Pleroma.User.t(),
|
||||
local: boolean(),
|
||||
page: number(),
|
||||
page_size: number()
|
||||
}) :: {:ok, [Pleroma.User.t()], number()}
|
||||
def search_for_admin(term, %{admin: admin, local: local, page: page, page_size: page_size}) do
|
||||
def search_for_admin(%{
|
||||
query: term,
|
||||
admin: admin,
|
||||
local: local,
|
||||
page: page,
|
||||
page_size: page_size
|
||||
}) do
|
||||
term = String.trim_leading(term, "@")
|
||||
|
||||
local_paginated_query =
|
||||
|
|
@ -774,21 +802,6 @@ defmodule Pleroma.User do
|
|||
{:ok, do_search(search_query, admin), count}
|
||||
end
|
||||
|
||||
@spec all_for_admin(number(), number()) :: {:ok, [Pleroma.User.t()], number()}
|
||||
def all_for_admin(page, page_size) do
|
||||
query = from(u in User, order_by: u.id)
|
||||
|
||||
paginated_query =
|
||||
query
|
||||
|> paginate(page, page_size)
|
||||
|
||||
count =
|
||||
query
|
||||
|> Repo.aggregate(:count, :id)
|
||||
|
||||
{:ok, Repo.all(paginated_query), count}
|
||||
end
|
||||
|
||||
def search(query, resolve \\ false, for_user \\ nil) do
|
||||
# Strip the beginning @ off if there is a query
|
||||
query = String.trim_leading(query, "@")
|
||||
|
|
|
|||
|
|
@ -63,28 +63,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
|
|||
do: json_response(conn, :no_content, "")
|
||||
end
|
||||
|
||||
def list_users(conn, params) do
|
||||
{page, page_size} = page_params(params)
|
||||
|
||||
with {:ok, users, count} <- User.all_for_admin(page, page_size),
|
||||
do:
|
||||
conn
|
||||
|> json(
|
||||
AccountView.render("index.json",
|
||||
users: users,
|
||||
count: count,
|
||||
page_size: page_size
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
def search_users(%{assigns: %{user: admin}} = conn, %{"query" => query} = params) do
|
||||
def list_users(%{assigns: %{user: admin}} = conn, params) do
|
||||
{page, page_size} = page_params(params)
|
||||
|
||||
with {:ok, users, count} <-
|
||||
User.search_for_admin(query, %{
|
||||
User.search_for_admin(%{
|
||||
query: params["query"],
|
||||
admin: admin,
|
||||
local: params["local"] == "true",
|
||||
local: params["local_only"] == "true",
|
||||
page: page,
|
||||
page_size: page_size
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -140,7 +140,6 @@ defmodule Pleroma.Web.Router do
|
|||
pipe_through([:admin_api, :oauth_write])
|
||||
|
||||
get("/users", AdminAPIController, :list_users)
|
||||
get("/users/search", AdminAPIController, :search_users)
|
||||
delete("/user", AdminAPIController, :user_delete)
|
||||
patch("/users/:nickname/toggle_activation", AdminAPIController, :user_toggle_activation)
|
||||
post("/user", AdminAPIController, :user_create)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue