Merge branch 'bugfix/webfinger-refactoring' into 'develop'
webfinger: refactor webfinger() functions Closes #212 See merge request pleroma/pleroma!210
This commit is contained in:
commit
c02d03a4c2
@ -25,35 +25,17 @@ defmodule Pleroma.Web.WebFinger do
|
|||||||
|> XmlBuilder.to_doc()
|
|> XmlBuilder.to_doc()
|
||||||
end
|
end
|
||||||
|
|
||||||
def webfinger(resource, "JSON") do
|
def webfinger(resource, fmt) when fmt in ["XML", "JSON"] do
|
||||||
host = Pleroma.Web.Endpoint.host()
|
host = Pleroma.Web.Endpoint.host()
|
||||||
regex = ~r/(acct:)?(?<username>\w+)@#{host}/
|
regex = ~r/(acct:)?(?<username>\w+)@#{host}/
|
||||||
|
|
||||||
with %{"username" => username} <- Regex.named_captures(regex, resource) do
|
with %{"username" => username} <- Regex.named_captures(regex, resource),
|
||||||
user = User.get_by_nickname(username)
|
%User{} = user <- User.get_by_nickname(username) do
|
||||||
{:ok, represent_user(user, "JSON")}
|
{:ok, represent_user(user, fmt)}
|
||||||
else
|
else
|
||||||
_e ->
|
_e ->
|
||||||
with user when not is_nil(user) <- User.get_cached_by_ap_id(resource) do
|
with %User{} = user <- User.get_cached_by_ap_id(resource) do
|
||||||
{:ok, represent_user(user, "JSON")}
|
{:ok, represent_user(user, fmt)}
|
||||||
else
|
|
||||||
_e ->
|
|
||||||
{:error, "Couldn't find user"}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def webfinger(resource, "XML") do
|
|
||||||
host = Pleroma.Web.Endpoint.host()
|
|
||||||
regex = ~r/(acct:)?(?<username>\w+)@#{host}/
|
|
||||||
|
|
||||||
with %{"username" => username} <- Regex.named_captures(regex, resource) do
|
|
||||||
user = User.get_by_nickname(username)
|
|
||||||
{:ok, represent_user(user, "XML")}
|
|
||||||
else
|
|
||||||
_e ->
|
|
||||||
with user when not is_nil(user) <- User.get_cached_by_ap_id(resource) do
|
|
||||||
{:ok, represent_user(user, "XML")}
|
|
||||||
else
|
else
|
||||||
_e ->
|
_e ->
|
||||||
{:error, "Couldn't find user"}
|
{:error, "Couldn't find user"}
|
||||||
|
Loading…
Reference in New Issue
Block a user