Update
This commit is contained in:
parent
188bc08494
commit
4af88f3e1d
44 changed files with 1041 additions and 34 deletions
50
lib/nulla_web/controllers/generic/webfinger_json.ex
Normal file
50
lib/nulla_web/controllers/generic/webfinger_json.ex
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue