diff options
author | kaniini <nenolod@gmail.com> | 2019-03-06 22:27:42 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-03-06 22:27:42 +0000 |
commit | 0fe715f3ba0f787154ab8e86c8745d7f09affdcb (patch) | |
tree | 3560d668fe7feec0dcce59858ee4e7a6fdd54e18 /lib/pleroma/user.ex | |
parent | 39b766cc43c39dbff84cb498c4b4c764abdec9a0 (diff) | |
parent | 76160122f6d7bf52aee929328acb4d216e4c3504 (diff) | |
download | pleroma-0fe715f3ba0f787154ab8e86c8745d7f09affdcb.tar.gz |
Merge branch 'chore/merge-search-into-list-users' into 'develop'
Merge search endpoint into /users
See merge request pleroma/pleroma!898
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 50e7e7ccd..3878e4efa 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -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, "@") |