diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2021-02-23 21:21:46 +0400 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2021-02-23 21:21:46 +0400 |
commit | c18a9004fd4b0b7436114fb73b8f74e366608a27 (patch) | |
tree | 591a00427a92a7d06687be1a44dd354d265615ae /lib/pleroma/chat.ex | |
parent | d113ed94e7b6b30eecc0a5415a69d1b321e625e5 (diff) | |
download | pleroma-delete-chats-for-deleted-users.tar.gz |
Delete chats when deleting userdelete-chats-for-deleted-users
Diffstat (limited to 'lib/pleroma/chat.ex')
-rw-r--r-- | lib/pleroma/chat.ex | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index bacff24b5..a1ccc4a00 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -8,7 +8,6 @@ defmodule Pleroma.Chat do import Ecto.Changeset import Ecto.Query - alias Pleroma.Chat alias Pleroma.Repo alias Pleroma.User @@ -89,9 +88,16 @@ defmodule Pleroma.Chat do @spec for_user_query(FlakeId.Ecto.CompatType.t()) :: Ecto.Query.t() def for_user_query(user_id) do - from(c in Chat, + from(c in __MODULE__, where: c.user_id == ^user_id, order_by: [desc: c.updated_at] ) end + + def delete_all_by_user(%User{id: user_id, ap_id: ap_id}) do + __MODULE__ + |> where(user_id: ^user_id) + |> or_where(recipient: ^ap_id) + |> Repo.delete_all() + end end |