2021-12-17 23:01:21 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class PurgeDomainService < BaseService
|
|
|
|
def call(domain)
|
2024-03-20 16:37:21 +01:00
|
|
|
@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!
|
2024-10-02 14:26:16 +02:00
|
|
|
Account.remote.where(domain: @domain).find_each do |account|
|
2021-12-17 23:01:21 +01:00
|
|
|
DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true)
|
|
|
|
end
|
2024-03-20 16:37:21 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def purge_emojis!
|
2024-10-02 14:26:16 +02:00
|
|
|
CustomEmoji.remote.where(domain: @domain).find_each(&:destroy)
|
2021-12-17 23:01:21 +01:00
|
|
|
end
|
|
|
|
end
|