Looks like source_data is on user directly now.
[akkoma] / lib / pleroma / web / static_fe / user_representer.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.StaticFE.UserRepresenter do
6 alias Pleroma.User
7 alias Pleroma.Web.ActivityPub.ActivityPub
8 alias Pleroma.Web.StaticFE.ActivityRepresenter
9
10 def prepare_user(%User{} = user) do
11 %{}
12 |> set_user(user)
13 |> set_timeline(user)
14 end
15
16 defp set_user(data, %User{} = user), do: Map.put(data, :user, user)
17
18 defp set_timeline(data, %User{} = user) do
19 activities =
20 ActivityPub.fetch_user_activities(user, nil, %{})
21 |> Enum.map(fn activity -> ActivityRepresenter.prepare_activity(user, activity) end)
22
23 Map.put(data, :timeline, activities)
24 end
25
26 def represent(username_or_id) do
27 with %User{} = user <- User.get_cached_by_nickname_or_id(username_or_id),
28 data <- prepare_user(user) do
29 {:ok, data}
30 else
31 e ->
32 {:error, e}
33 end
34 end
35 end