X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fconversation%2Fparticipation.ex;h=ea5b9fe17ba0526647d78caf03f2f167fa130720;hb=8dc6a6b210e56ec1a175a3496466d1f8aa62f128;hp=acdee55173617be544b9c3c16e60fad75d39af84;hpb=3af6d14da769aa5adfdd6360b43c691fd8c8eed5;p=akkoma diff --git a/lib/pleroma/conversation/participation.ex b/lib/pleroma/conversation/participation.ex index acdee5517..ea5b9fe17 100644 --- a/lib/pleroma/conversation/participation.ex +++ b/lib/pleroma/conversation/participation.ex @@ -94,13 +94,27 @@ defmodule Pleroma.Conversation.Participation do |> Enum.filter(& &1.last_activity_id) end - def get(nil), do: nil + def get(_, _ \\ []) + def get(nil, _), do: nil + + def get(id, params) do + query = + if preload = params[:preload] do + from(p in __MODULE__, + preload: ^preload + ) + else + __MODULE__ + end - def get(id) do - Repo.get(__MODULE__, id) + Repo.get(query, id) end def set_recipients(participation, user_ids) do + user_ids = + [participation.user_id | user_ids] + |> Enum.uniq() + Repo.transaction(fn -> query = from(r in RecipientShip, @@ -118,5 +132,7 @@ defmodule Pleroma.Conversation.Participation do RecipientShip.create(users, participation) :ok end) + + {:ok, Repo.preload(participation, :recipients, force: true)} end end