unblock_domain_service.rb 765 B

123456789101112131415161718192021222324252627282930313233
  1. # frozen_string_literal: true
  2. class UnblockDomainService < BaseService
  3. attr_accessor :domain_block
  4. def call(domain_block)
  5. @domain_block = domain_block
  6. process_retroactive_updates
  7. domain_block.destroy
  8. end
  9. def process_retroactive_updates
  10. blocked_accounts.in_batches.update_all(update_options) unless domain_block.noop?
  11. end
  12. def blocked_accounts
  13. scope = Account.by_domain_and_subdomains(domain_block.domain)
  14. if domain_block.silence?
  15. scope.where(silenced_at: @domain_block.created_at)
  16. else
  17. scope.where(suspended_at: @domain_block.created_at)
  18. end
  19. end
  20. def update_options
  21. { domain_block_impact => nil }
  22. end
  23. def domain_block_impact
  24. domain_block.silence? ? :silenced_at : :suspended_at
  25. end
  26. end