TwitterAPI: Return proper error.

Fixes #32.
This commit is contained in:
Roger Braun 2017-09-17 14:37:00 +02:00
parent ae38b72e24
commit d009a79df5
2 changed files with 9 additions and 7 deletions

View file

@ -211,6 +211,11 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
response <- Poison.encode!(user_map) do response <- Poison.encode!(user_map) do
conn conn
|> json_reply(200, response) |> json_reply(200, response)
else
_e ->
conn
|> put_status(404)
|> json(%{error: "Can't find user"})
end end
end end

View file

@ -105,13 +105,10 @@ defmodule Pleroma.Web.WebFinger do
URI.parse(account).host URI.parse(account).host
end end
{:ok, template} = find_lrdd_template(domain) with {:ok, template} <- find_lrdd_template(domain),
address <- String.replace(template, "{uri}", URI.encode(account)),
address = String.replace(template, "{uri}", URI.encode(account)) response <- @httpoison.get(address, ["Accept": "application/xrd+xml"]),
{:ok, %{status_code: status_code, body: body}} when status_code in 200..299 <- response,
response = @httpoison.get(address, ["Accept": "application/xrd+xml"])
with {:ok, %{status_code: status_code, body: body}} when status_code in 200..299 <- response,
doc when doc != :error<- XML.parse_document(body), doc when doc != :error<- XML.parse_document(body),
{:ok, data} <- webfinger_from_xml(doc) do {:ok, data} <- webfinger_from_xml(doc) do
{:ok, data} {:ok, data}