diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-09-19 20:58:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-19 20:58:19 +0200 |
commit | 3ed94dcc1acf73f1d0d1ab43567b88ee953f57c9 (patch) | |
tree | 3bec67e9d52943779f1b4070556ccab8d64bf6a4 /app/workers/activitypub/move_distribution_worker.rb | |
parent | b6df9c10671cd7bf48de3dbd7a94a92fb0a148ec (diff) |
Add account migration UI (#11846)
Fix #10736 - Change data export to be available for non-functional accounts - Change non-functional accounts to include redirecting accounts
Diffstat (limited to 'app/workers/activitypub/move_distribution_worker.rb')
-rw-r--r-- | app/workers/activitypub/move_distribution_worker.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/workers/activitypub/move_distribution_worker.rb b/app/workers/activitypub/move_distribution_worker.rb new file mode 100644 index 000000000..396d5258f --- /dev/null +++ b/app/workers/activitypub/move_distribution_worker.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class ActivityPub::MoveDistributionWorker + include Sidekiq::Worker + include Payloadable + + sidekiq_options queue: 'push' + + def perform(migration_id) + @migration = AccountMigration.find(migration_id) + + ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url| + [signed_payload, @account.id, inbox_url] + end + + ActivityPub::DeliveryWorker.push_bulk(Relay.enabled.pluck(:inbox_url)) do |inbox_url| + [signed_payload, @account.id, inbox_url] + end + rescue ActiveRecord::RecordNotFound + true + end + + private + + def inboxes + @inboxes ||= @migration.account.followers.inboxes + end + + def signed_payload + @signed_payload ||= Oj.dump(serialize_payload(@migration, ActivityPub::MoveSerializer, signer: @account)) + end +end |