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.
33 lines
735 B
33 lines
735 B
5 years ago
|
# 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
|