nulla/lib/nulla_web/controllers/generic/webfinger_controller.ex
2025-07-05 15:20:40 +02:00

32 lines
777 B
Elixir

defmodule NullaWeb.Generic.WebfingerController do
use NullaWeb, :controller
alias Nulla.Actors
alias Nulla.Actors.Actor
alias NullaWeb.Generic.WebfingerJSON
def index(conn, %{"resource" => resource}) do
case Regex.run(~r/^acct:(.+)$/, resource) do
[_, acct] ->
case Actors.get_actor_by(acct: acct) do
nil ->
conn
|> put_resp_content_type("text/plain")
|> send_resp(404, "")
%Actor{} = actor ->
json(conn, WebfingerJSON.show(actor))
end
_ ->
conn
|> put_resp_content_type("text/plain")
|> send_resp(400, "")
end
end
def index(conn, _params) do
conn
|> put_resp_content_type("text/plain")
|> send_resp(400, "")
end
end