# frozen_string_literal: true class UnblockDomainService < BaseService attr_accessor :domain_block def call(domain_block) @domain_block = domain_block LogWorker.perform_async("\xf0\x9f\x86\x97 Reset policy on domain '#{@domain_block.domain}'.") process_retroactive_updates domain_block.destroy end def process_retroactive_updates blocked_accounts.in_batches.update_all(update_options) unless domain_block.noop? end def blocked_accounts scope = Account.where(domain: domain_block.domain) if domain_block.silence? scope.where(silenced_at: @domain_block.created_at) else scope.where(suspended_at: @domain_block.created_at) end end def update_options { domain_block_impact => nil } end def domain_block_impact case @domain_block.severity when 'force_unlisted' :force_unlisted when 'silence' :silenced_at when 'suspend' :suspended_at end end end