First
[anni] / lib / pleroma / web / preload / providers / user.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.Preload.Providers.User do
6   alias Pleroma.User
7   alias Pleroma.Web.MastodonAPI.AccountView
8   alias Pleroma.Web.Preload.Providers.Provider
9
10   @behaviour Provider
11   @account_url_base "/api/v1/accounts"
12
13   @impl Provider
14   def generate_terms(%{user: user}) do
15     build_accounts_tag(%{}, user)
16   end
17
18   def generate_terms(_params), do: %{}
19
20   def build_accounts_tag(acc, %User{} = user) do
21     account_data = AccountView.render("show.json", %{user: user, for: user})
22     Map.put(acc, "#{@account_url_base}/#{user.id}", account_data)
23   end
24
25   def build_accounts_tag(acc, _), do: acc
26 end