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