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
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
"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
|> send_resp(500, reason)
end
end
+
+ def websub_subscription_confirmation(conn, params) do
+ IO.inspect(params)
+ conn
+ end
end
{: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)
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