Skip to content
Snippets Groups Projects
Commit a19f8778 authored by lain's avatar lain
Browse files

User preloader: Put user info at correct key

parent a2002ebb
No related branches found
No related tags found
No related merge requests found
......@@ -3,11 +3,12 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.Preload.Providers.User do
alias Pleroma.User
alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.Preload.Providers.Provider
@behaviour Provider
@account_url :"/api/v1/accounts"
@account_url_base :"/api/v1/accounts"
@impl Provider
def generate_terms(%{user: user}) do
......@@ -16,10 +17,10 @@ def generate_terms(%{user: user}) do
def generate_terms(_params), do: %{}
def build_accounts_tag(acc, nil), do: acc
def build_accounts_tag(acc, user) do
def build_accounts_tag(acc, %User{} = user) do
account_data = AccountView.render("show.json", %{user: user, for: user})
Map.put(acc, @account_url, account_data)
Map.put(acc, :"#{@account_url_base}/#{user.id}", account_data)
end
def build_accounts_tag(acc, _), do: acc
end
......@@ -9,13 +9,11 @@ defmodule Pleroma.Web.Preload.Providers.UserTest do
describe "returns empty when user doesn't exist" do
test "nil user specified" do
refute User.generate_terms(%{user: nil})
|> Map.has_key?("/api/v1/accounts")
assert User.generate_terms(%{user: nil}) == %{}
end
test "missing user specified" do
refute User.generate_terms(%{user: :not_a_user})
|> Map.has_key?("/api/v1/accounts")
assert User.generate_terms(%{user: :not_a_user}) == %{}
end
end
......@@ -23,11 +21,13 @@ test "missing user specified" do
setup do
user = insert(:user)
{:ok, User.generate_terms(%{user: user})}
terms = User.generate_terms(%{user: user})
%{terms: terms, user: user}
end
test "account is rendered", %{"/api/v1/accounts": accounts} do
assert %{acct: user, username: user} = accounts
test "account is rendered", %{terms: terms, user: user} do
account = terms[:"/api/v1/accounts/#{user.id}"]
assert %{acct: user, username: user} = account
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment