Add proper callback route for websub confirmation.
authorRoger Braun <roger@rogerbraun.net>
Fri, 28 Apr 2017 07:51:47 +0000 (09:51 +0200)
committerRoger Braun <roger@rogerbraun.net>
Fri, 28 Apr 2017 07:51:47 +0000 (09:51 +0200)
lib/pleroma/web/router.ex
lib/pleroma/web/websub/websub.ex
lib/pleroma/web/websub/websub_controller.ex
test/web/websub/websub_test.exs

index c98eac688cb9bf1af20a0bb942966d7d2cc94cd0..bff981f9f58d2aa71680d6a43237071c9612d5ef 100644 (file)
@@ -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
 
index 4a35ca8fc30a351602c0f7eb78adf1b26e854467..ad352ee264da385785d5874f6ddc588dfb4c89e9 100644 (file)
@@ -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
index 5d54c6ef5c936c10cf4ba128712f5dab93230c62..c6b15c0c2182d2a05c59ba22afcc59b8813762d7 100644 (file)
@@ -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
index bf243ac91ccba4a750a11a9f4f7300de6e775523..ca04a55cd08c145f55b8149e4ef27cccea2fa7f2 100644 (file)
@@ -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