AP UserView: Refactor banner / avatar display code, add test.

This commit is contained in:
lain 2019-03-26 16:40:09 +01:00
commit 10a7a4a868
4 changed files with 42 additions and 32 deletions

View file

@ -87,13 +87,10 @@ defmodule Pleroma.Web.ActivityPub.UserView do
"publicKeyPem" => public_key
},
"endpoints" => endpoints,
"image" => %{
"type" => "Image",
"url" => User.banner_url(user)
},
"tag" => user.info.source_data["tag"] || []
}
|> Map.merge(Utils.maybe_make_icon(user))
|> Map.merge(maybe_make_image(&User.avatar_url/2, "icon", user))
|> Map.merge(maybe_make_image(&User.banner_url/2, "image", user))
|> Map.merge(Utils.make_json_ld_header())
end
@ -291,4 +288,17 @@ defmodule Pleroma.Web.ActivityPub.UserView do
map
end
end
defp maybe_make_image(func, key, user) do
if image = func.(user, no_default: true) do
%{
key => %{
"type" => "Image",
"url" => image
}
}
else
%{}
end
end
end