This commit is contained in:
Mirai Kumiko 2025-07-05 15:20:40 +02:00
parent 188bc08494
commit 4af88f3e1d
Signed by: miraikumiko
GPG key ID: 3F178B1B5E0CB278
44 changed files with 1041 additions and 34 deletions

View file

@ -0,0 +1,50 @@
defmodule NullaWeb.Generic.WebfingerJSON do
alias Nulla.Actors.Actor
@doc """
Renders a webfinger.
"""
def show(actor) do
data(actor)
end
defp data(%Actor{} = actor) do
data = [
subject: actor.acct,
aliases: [
actor.url,
actor.ap_id
],
links: [
Jason.OrderedObject.new(
rel: "http://webfinger.net/rel/profile-page",
type: "text/html",
href: actor.url
),
Jason.OrderedObject.new(
rel: "self",
type: "application/activity+json",
href: actor.ap_id
)
]
]
data =
if actor.icon do
Keyword.update!(data, :links, fn links ->
links ++
[
Jason.OrderedObject.new(
rel: "http://webfinger.net/rel/avatar",
type: Map.get(actor.icon, :mediaType),
href: Map.get(actor.icon, :url)
)
]
end)
else
data
end
Jason.OrderedObject.new(data)
end
end