Add proper callback route for websub confirmation.
This commit is contained in:
parent
90da25505f
commit
451d18af63
|
@ -75,6 +75,7 @@ def user_fetcher(username) 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
|
||||
|
||||
|
|
|
@ -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 @@ def request_subscription(websub, poster \\ &HTTPoison.post/3, timeout \\ 10_000)
|
|||
"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
|
||||
|
|
|
@ -15,4 +15,9 @@ def websub_subscription_request(conn, %{"nickname" => nickname} = params) do
|
|||
|> send_resp(500, reason)
|
||||
end
|
||||
end
|
||||
|
||||
def websub_subscription_confirmation(conn, params) do
|
||||
IO.inspect(params)
|
||||
conn
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,11 +3,13 @@ def verify(sub) 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 @@ test "calls the hub, requests topic" 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
|
||||
|
||||
|
|
Loading…
Reference in a new issue