First
[anni] / lib / pleroma / web / admin_api / views / status_view.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.AdminAPI.StatusView do
6   use Pleroma.Web, :view
7
8   require Pleroma.Constants
9
10   alias Pleroma.Web.AdminAPI
11   alias Pleroma.Web.CommonAPI
12   alias Pleroma.Web.MastodonAPI
13
14   defdelegate merge_account_views(user), to: AdminAPI.AccountView
15
16   def render("index.json", %{total: total} = opts) do
17     %{total: total, activities: safe_render_many(opts.activities, __MODULE__, "show.json", opts)}
18   end
19
20   def render("index.json", opts) do
21     safe_render_many(opts.activities, __MODULE__, "show.json", opts)
22   end
23
24   def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do
25     user = CommonAPI.get_user(activity.data["actor"])
26
27     MastodonAPI.StatusView.render("show.json", opts)
28     |> Map.merge(%{account: merge_account_views(user)})
29   end
30 end