1
0
mirror of https://github.com/mastodon/mastodon synced 2024-12-01 00:08:21 +09:00
mastodon/app/services/move_service.rb

33 lines
735 B
Ruby

# frozen_string_literal: true
class MoveService < BaseService
def call(migration)
@migration = migration
@source_account = migration.account
@target_account = migration.target_account
update_redirect!
process_local_relationships!
distribute_update!
distribute_move!
end
private
def update_redirect!
@source_account.update!(moved_to_account: @target_account)
end
def process_local_relationships!
MoveWorker.perform_async(@source_account.id, @target_account.id)
end
def distribute_update!
ActivityPub::UpdateDistributionWorker.perform_async(@source_account.id)
end
def distribute_move!
ActivityPub::MoveDistributionWorker.perform_async(@migration.id)
end
end