* Fix #2672 - Connect signed PuSH subscription requests to instance domain Resolves #2739 * Fix return of locate_subscription * Fix tests
This commit is contained in:
parent
de397f3bc1
commit
cd9b2ab2f7
7 changed files with 33 additions and 10 deletions
|
@ -3,13 +3,15 @@
|
|||
class Pubsubhubbub::SubscribeService < BaseService
|
||||
URL_PATTERN = /\A#{URI.regexp(%w(http https))}\z/
|
||||
|
||||
attr_reader :account, :callback, :secret, :lease_seconds
|
||||
attr_reader :account, :callback, :secret,
|
||||
:lease_seconds, :domain
|
||||
|
||||
def call(account, callback, secret, lease_seconds)
|
||||
def call(account, callback, secret, lease_seconds, verified_domain = nil)
|
||||
@account = account
|
||||
@callback = Addressable::URI.parse(callback).normalize.to_s
|
||||
@secret = secret
|
||||
@lease_seconds = lease_seconds
|
||||
@domain = verified_domain
|
||||
|
||||
process_subscribe
|
||||
end
|
||||
|
@ -56,6 +58,14 @@ class Pubsubhubbub::SubscribeService < BaseService
|
|||
end
|
||||
|
||||
def locate_subscription
|
||||
Subscription.where(account: account, callback_url: callback).first_or_create!(account: account, callback_url: callback)
|
||||
subscription = Subscription.find_by(account: account, callback_url: callback)
|
||||
|
||||
if subscription.nil?
|
||||
subscription = Subscription.new(account: account, callback_url: callback)
|
||||
end
|
||||
|
||||
subscription.domain = domain
|
||||
subscription.save!
|
||||
subscription
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue