This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
mastodon/app/services/pubsubhubbub/unsubscribe_service.rb

32 lines
681 B
Ruby
Raw Normal View History

2016-11-28 04:36:47 -08:00
# frozen_string_literal: true
2016-11-28 09:14:49 -08:00
class Pubsubhubbub::UnsubscribeService < BaseService
attr_reader :account, :callback
2016-11-28 04:36:47 -08:00
def call(account, callback)
@account = account
@callback = Addressable::URI.parse(callback).normalize.to_s
2016-11-28 04:36:47 -08:00
process_unsubscribe
end
private
def process_unsubscribe
if account.nil?
['Invalid topic URL', 422]
else
confirm_unsubscribe unless subscription.nil?
['', 202]
2016-11-28 04:36:47 -08:00
end
end
def confirm_unsubscribe
Pubsubhubbub::ConfirmationWorker.perform_async(subscription.id, 'unsubscribe')
end
2016-11-28 04:36:47 -08:00
def subscription
@_subscription ||= Subscription.find_by(account: account, callback_url: callback)
2016-11-28 04:36:47 -08:00
end
end