parent
b612b57b5d
commit
59c8c2b28a
@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class AuthorizeFollowService < BaseService
|
||||||
|
include StreamEntryRenderer
|
||||||
|
|
||||||
|
def call(source_account, target_account)
|
||||||
|
follow_request = FollowRequest.find_by!(account: source_account, target_account: target_account)
|
||||||
|
follow_request.authorize!
|
||||||
|
NotificationWorker.perform_async(stream_entry_to_xml(follow_request.stream_entry), target_account.id, source_account.id) unless source_account.local?
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,8 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module StreamEntryRenderer
|
||||||
|
def stream_entry_to_xml(stream_entry)
|
||||||
|
renderer = StreamEntriesController.renderer.new(method: 'get', http_host: Rails.configuration.x.local_domain, https: Rails.configuration.x.use_https)
|
||||||
|
renderer.render(:show, assigns: { stream_entry: stream_entry }, formats: [:atom])
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,11 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class RejectFollowService < BaseService
|
||||||
|
include StreamEntryRenderer
|
||||||
|
|
||||||
|
def call(source_account, target_account)
|
||||||
|
follow_request = FollowRequest.find_by!(account: source_account, target_account: target_account)
|
||||||
|
follow_request.reject!
|
||||||
|
NotificationWorker.perform_async(stream_entry_to_xml(follow_request.stream_entry), target_account.id, source_account.id) unless source_account.local?
|
||||||
|
end
|
||||||
|
end
|
@ -1,10 +1,12 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class UnblockService < BaseService
|
class UnblockService < BaseService
|
||||||
|
include StreamEntryRenderer
|
||||||
|
|
||||||
def call(account, target_account)
|
def call(account, target_account)
|
||||||
return unless account.blocking?(target_account)
|
return unless account.blocking?(target_account)
|
||||||
|
|
||||||
unblock = account.unblock!(target_account)
|
unblock = account.unblock!(target_account)
|
||||||
NotificationWorker.perform_async(unblock.stream_entry.id, target_account.id) unless target_account.local?
|
NotificationWorker.perform_async(stream_entry_to_xml(unblock.stream_entry), account.id, target_account.id) unless target_account.local?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class UnfollowService < BaseService
|
class UnfollowService < BaseService
|
||||||
|
include StreamEntryRenderer
|
||||||
|
|
||||||
# Unfollow and notify the remote user
|
# Unfollow and notify the remote user
|
||||||
# @param [Account] source_account Where to unfollow from
|
# @param [Account] source_account Where to unfollow from
|
||||||
# @param [Account] target_account Which to unfollow
|
# @param [Account] target_account Which to unfollow
|
||||||
def call(source_account, target_account)
|
def call(source_account, target_account)
|
||||||
follow = source_account.unfollow!(target_account)
|
follow = source_account.unfollow!(target_account)
|
||||||
NotificationWorker.perform_async(follow.stream_entry.id, target_account.id) unless target_account.local?
|
NotificationWorker.perform_async(stream_entry_to_xml(follow.stream_entry), source_account.id, target_account.id) unless target_account.local?
|
||||||
UnmergeWorker.perform_async(target_account.id, source_account.id)
|
UnmergeWorker.perform_async(target_account.id, source_account.id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class PushNotificationWorker
|
|
||||||
include Sidekiq::Worker
|
|
||||||
|
|
||||||
def perform(notification_id)
|
|
||||||
SendPushNotificationService.new.call(Notification.find(notification_id))
|
|
||||||
rescue ActiveRecord::RecordNotFound
|
|
||||||
true
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in new issue