aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-28 09:51:47 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-28 09:51:47 +0200
commit451d18af63fcf97f0d9621e5bfe296e1f18a0312 (patch)
tree13156d9de64139dcadecfe3e442968c07348a994
parent90da25505f9cfbd16a9088e20714b24c2c6fa215 (diff)
downloadpleroma-451d18af63fcf97f0d9621e5bfe296e1f18a0312.tar.gz
Add proper callback route for websub confirmation.
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--lib/pleroma/web/websub/websub.ex6
-rw-r--r--lib/pleroma/web/websub/websub_controller.ex5
-rw-r--r--test/web/websub/websub_test.exs3
4 files changed, 12 insertions, 3 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index c98eac688..bff981f9f 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -75,6 +75,7 @@ defmodule Pleroma.Web.Router do
get "/users/:nickname/feed", OStatus.OStatusController, :feed
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
+ post "/push/subscriptions/:id", Websub.WebsubController, :websub_subscription_confirmation
post "/push/hub/:nickname", Websub.WebsubController, :websub_subscription_request
end
diff --git a/lib/pleroma/web/websub/websub.ex b/lib/pleroma/web/websub/websub.ex
index 4a35ca8fc..ad352ee26 100644
--- a/lib/pleroma/web/websub/websub.ex
+++ b/lib/pleroma/web/websub/websub.ex
@@ -2,8 +2,8 @@ defmodule Pleroma.Web.Websub do
alias Pleroma.Repo
alias Pleroma.Web.Websub.{WebsubServerSubscription, WebsubClientSubscription}
alias Pleroma.Web.OStatus.FeedRepresenter
- alias Pleroma.Web.OStatus
- alias Pleroma.Web.XML
+ alias Pleroma.Web.{XML, Endpoint, OStatus}
+ alias Pleroma.Web.Router.Helpers
require Logger
import Ecto.Query
@@ -136,7 +136,7 @@ defmodule Pleroma.Web.Websub do
"hub.mode": "subscribe",
"hub.topic": websub.topic,
"hub.secret": websub.secret,
- "hub.callback": "https://social.heldscal.la/callback"
+ "hub.callback": Helpers.websub_url(Endpoint, :websub_subscription_confirmation, websub.id)
]
# This checks once a second if we are confirmed yet
diff --git a/lib/pleroma/web/websub/websub_controller.ex b/lib/pleroma/web/websub/websub_controller.ex
index 5d54c6ef5..c6b15c0c2 100644
--- a/lib/pleroma/web/websub/websub_controller.ex
+++ b/lib/pleroma/web/websub/websub_controller.ex
@@ -15,4 +15,9 @@ defmodule Pleroma.Web.Websub.WebsubController do
|> send_resp(500, reason)
end
end
+
+ def websub_subscription_confirmation(conn, params) do
+ IO.inspect(params)
+ conn
+ end
end
diff --git a/test/web/websub/websub_test.exs b/test/web/websub/websub_test.exs
index bf243ac91..ca04a55cd 100644
--- a/test/web/websub/websub_test.exs
+++ b/test/web/websub/websub_test.exs
@@ -3,11 +3,13 @@ defmodule Pleroma.Web.WebsubMock do
{:ok, sub}
end
end
+
defmodule Pleroma.Web.WebsubTest do
use Pleroma.DataCase
alias Pleroma.Web.Websub
alias Pleroma.Web.Websub.WebsubServerSubscription
import Pleroma.Factory
+ alias Pleroma.Web.Router.Helpers
test "a verification of a request that is accepted" do
sub = insert(:websub_subscription)
@@ -121,6 +123,7 @@ defmodule Pleroma.Web.WebsubTest do
poster = fn (^hub, {:form, data}, _headers) ->
assert Keyword.get(data, :"hub.mode") == "subscribe"
+ assert Keyword.get(data, :"hub.callback") == Helpers.websub_url(Pleroma.Web.Endpoint, :websub_subscription_confirmation, websub.id)
{:ok, %{status_code: 202}}
end