diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/chat.ex | 12 | ||||
| -rw-r--r-- | lib/pleroma/web/admin_api/controllers/admin_api_controller.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/web/pleroma_api/controllers/chat_controller.ex | 9 | 
3 files changed, 15 insertions, 14 deletions
| diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 24a86371e..b38c5c3dd 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -6,7 +6,9 @@ defmodule Pleroma.Chat do    use Ecto.Schema    import Ecto.Changeset +  import Ecto.Query +  alias Pleroma.Chat    alias Pleroma.Repo    alias Pleroma.User @@ -69,4 +71,14 @@ defmodule Pleroma.Chat do        conflict_target: [:user_id, :recipient]      )    end + +  @spec for_user_query(FlakeId.Ecto.CompatType.t()) :: Ecto.Query.t() +  def for_user_query(user_id) do +    from(c in Chat, +      where: c.user_id == ^user_id, +      order_by: [desc: c.updated_at], +      inner_join: u in User, +      on: u.ap_id == c.recipient +    ) +  end  end diff --git a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex index 9b66c2f10..fccdbabb4 100644 --- a/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/controllers/admin_api_controller.ex @@ -5,7 +5,6 @@  defmodule Pleroma.Web.AdminAPI.AdminAPIController do    use Pleroma.Web, :controller -  import Ecto.Query    import Pleroma.Web.ControllerHelper, only: [json_response: 3]    alias Pleroma.Config @@ -267,12 +266,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do    def list_user_chats(%{assigns: %{user: admin}} = conn, %{"nickname" => nickname} = _params) do      with %User{id: user_id} <- User.get_cached_by_nickname_or_id(nickname, for: admin) do        chats = -        from(c in Pleroma.Chat, -          where: c.user_id == ^user_id, -          order_by: [desc: c.updated_at], -          inner_join: u in User, -          on: u.ap_id == c.recipient -        ) +        Pleroma.Chat.for_user_query(user_id)          |> Pleroma.Repo.all()        conn diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 1f2e953f7..27c9a2e0f 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -146,13 +146,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do      blocked_ap_ids = User.blocked_users_ap_ids(user)      chats = -      from(c in Chat, -        where: c.user_id == ^user_id, -        where: c.recipient not in ^blocked_ap_ids, -        order_by: [desc: c.updated_at], -        inner_join: u in User, -        on: u.ap_id == c.recipient -      ) +      Chat.for_user_query(user_id) +      |> where([c], c.recipient not in ^blocked_ap_ids)        |> Repo.all()      conn | 
