aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/conversation
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/conversation')
-rw-r--r--lib/pleroma/conversation/participation.ex20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex
index f1e1a6958..acdee5517 100644
--- a/lib/pleroma/conversation/participation.ex
+++ b/lib/pleroma/conversation/participation.ex
@@ -99,4 +99,24 @@ defmodule Pleroma.Conversation.Participation do
def get(id) do
Repo.get(__MODULE__, id)
end
+
+ def set_recipients(participation, user_ids) do
+ Repo.transaction(fn ->
+ query =
+ from(r in RecipientShip,
+ where: r.participation_id == ^participation.id
+ )
+
+ Repo.delete_all(query)
+
+ users =
+ from(u in User,
+ where: u.id in ^user_ids
+ )
+ |> Repo.all()
+
+ RecipientShip.create(users, participation)
+ :ok
+ end)
+ end
end