|
|
|
@ -19,31 +19,18 @@ class Pubsubhubbub::SubscribeService < BaseService
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def process_subscribe
|
|
|
|
|
case subscribe_status
|
|
|
|
|
when :invalid_topic
|
|
|
|
|
if account.nil?
|
|
|
|
|
['Invalid topic URL', 422]
|
|
|
|
|
when :invalid_callback
|
|
|
|
|
elsif !valid_callback?
|
|
|
|
|
['Invalid callback URL', 422]
|
|
|
|
|
when :callback_not_allowed
|
|
|
|
|
elsif blocked_domain?
|
|
|
|
|
['Callback URL not allowed', 403]
|
|
|
|
|
when :valid
|
|
|
|
|
else
|
|
|
|
|
confirm_subscription
|
|
|
|
|
['', 202]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def subscribe_status
|
|
|
|
|
if account.nil?
|
|
|
|
|
:invalid_topic
|
|
|
|
|
elsif !valid_callback?
|
|
|
|
|
:invalid_callback
|
|
|
|
|
elsif blocked_domain?
|
|
|
|
|
:callback_not_allowed
|
|
|
|
|
else
|
|
|
|
|
:valid
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def confirm_subscription
|
|
|
|
|
subscription = locate_subscription
|
|
|
|
|
Pubsubhubbub::ConfirmationWorker.perform_async(subscription.id, 'subscribe', secret, lease_seconds)
|
|
|
|
|