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 @@ def external_profile(%{assigns: %{user: current_user}} = conn, %{"profileurl" =>
response <- Poison.encode!(user_map) do
conn
|> json_reply(200, response)
else
_e ->
conn
|> put_status(404)
|> json(%{error: "Can't find user"})
end
end

View file

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