# frozen_string_literal: true class AfterBlockDomainFromAccountService < BaseService # This service does not create an AccountDomainBlock record, # it's meant to be called after such a record has been created # synchronously, to "clean up" def call(account, domain) @account = account @domain = domain reject_existing_followers! reject_pending_follow_requests! end private def reject_existing_followers! @account.passive_relationships.where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).find_each do |follow| reject_follow!(follow) end end def reject_pending_follow_requests! FollowRequest.where(target_account: @account).where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).find_each do |follow_request| reject_follow!(follow_request) end end def reject_follow!(follow) follow.destroy end end