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)