diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-09-29 16:23:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-29 16:23:13 +0200 |
commit | 368a87755b4b12c37deb415e10e03c709012f698 (patch) | |
tree | f76c97df7f3ea63122af24f6181dd5d9eb6f1c56 /app/services | |
parent | bd9685f7980838ecc675af20cf52ef1e686d98d6 (diff) |
Fix account migration not affecting followers on origin server (#11980)
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/move_service.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/services/move_service.rb b/app/services/move_service.rb new file mode 100644 index 000000000..da0c62c4e --- /dev/null +++ b/app/services/move_service.rb @@ -0,0 +1,32 @@ +# 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 |