You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
727 B
27 lines
727 B
# frozen_string_literal: true |
|
|
|
class PurgeDomainService < BaseService |
|
def call(domain) |
|
@domain = domain |
|
|
|
purge_relationship_severance_events! |
|
purge_accounts! |
|
purge_emojis! |
|
|
|
Instance.refresh |
|
end |
|
|
|
def purge_relationship_severance_events! |
|
RelationshipSeveranceEvent.where(type: [:domain_block, :user_domain_block], target_name: @domain).in_batches.update_all(purged: true) |
|
end |
|
|
|
def purge_accounts! |
|
Account.remote.where(domain: @domain).reorder(nil).find_each do |account| |
|
DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true) |
|
end |
|
end |
|
|
|
def purge_emojis! |
|
CustomEmoji.remote.where(domain: @domain).reorder(nil).find_each(&:destroy) |
|
end |
|
end
|
|
|