vt-social/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