aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-06-13 07:02:12 +0000
committerlambda <pleromagit@rogerbraun.net>2018-06-13 07:02:12 +0000
commitc02d03a4c29e252d7f6076ade5bfc0bf4fb8a4c2 (patch)
tree41bbcab9c306a7651fd0579a79ea19ee4a947cab
parentddc654d587eb74922f4c097088872edd9f337aa0 (diff)
parent59f95a7095f7f066f4f787f8fa1d04ceca4a3148 (diff)
downloadpleroma-c02d03a4c29e252d7f6076ade5bfc0bf4fb8a4c2.tar.gz
Merge branch 'bugfix/webfinger-refactoring' into 'develop'
webfinger: refactor webfinger() functions Closes #212 See merge request pleroma/pleroma!210
-rw-r--r--lib/pleroma/web/web_finger/web_finger.ex30
1 files changed, 6 insertions, 24 deletions
diff --git a/lib/pleroma/web/web_finger/web_finger.ex b/lib/pleroma/web/web_finger/web_finger.ex
index e7ee810f9..9f554d286 100644
--- a/lib/pleroma/web/web_finger/web_finger.ex
+++ b/lib/pleroma/web/web_finger/web_finger.ex
@@ -25,35 +25,17 @@ defmodule Pleroma.Web.WebFinger do
|> XmlBuilder.to_doc()
end
- def webfinger(resource, "JSON") do
+ def webfinger(resource, fmt) when fmt in ["XML", "JSON"] 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, "JSON")}
+ with %{"username" => username} <- Regex.named_captures(regex, resource),
+ %User{} = user <- User.get_by_nickname(username) do
+ {:ok, represent_user(user, fmt)}
else
_e ->
- with user when not is_nil(user) <- User.get_cached_by_ap_id(resource) do
- {:ok, represent_user(user, "JSON")}
- 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")}
+ with %User{} = user <- User.get_cached_by_ap_id(resource) do
+ {:ok, represent_user(user, fmt)}
else
_e ->
{:error, "Couldn't find user"}