diff options
Diffstat (limited to 'lib/pleroma/web/websub/websub_controller.ex')
-rw-r--r-- | lib/pleroma/web/websub/websub_controller.ex | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/pleroma/web/websub/websub_controller.ex b/lib/pleroma/web/websub/websub_controller.ex new file mode 100644 index 000000000..5d54c6ef5 --- /dev/null +++ b/lib/pleroma/web/websub/websub_controller.ex @@ -0,0 +1,18 @@ +defmodule Pleroma.Web.Websub.WebsubController do + use Pleroma.Web, :controller + alias Pleroma.User + alias Pleroma.Web.Websub + + def websub_subscription_request(conn, %{"nickname" => nickname} = params) do + user = User.get_cached_by_nickname(nickname) + + with {:ok, _websub} <- Websub.incoming_subscription_request(user, params) + do + conn + |> send_resp(202, "Accepted") + else {:error, reason} -> + conn + |> send_resp(500, reason) + end + end +end |