1 defmodule Pleroma.Web.MastodonAPI.ConversationView do
6 alias Pleroma.Web.ActivityPub.ActivityPub
7 alias Pleroma.Web.MastodonAPI.AccountView
8 alias Pleroma.Web.MastodonAPI.StatusView
10 def render("participation.json", %{participation: participation, user: user}) do
11 participation = Repo.preload(participation, conversation: :users)
14 with nil <- participation.last_activity_id do
15 ActivityPub.fetch_latest_activity_id_for_context(participation.conversation.ap_id, %{
17 "blocking_user" => user
21 activity = Activity.get_by_id_with_object(last_activity_id)
23 last_status = StatusView.render("status.json", %{activity: activity, for: user})
26 AccountView.render("accounts.json", %{
27 users: participation.conversation.users,
32 id: participation.id |> to_string(),
34 unread: !participation.read,
35 last_status: last_status