diff options
Diffstat (limited to 'app/services/suspend_account_service.rb')
-rw-r--r-- | app/services/suspend_account_service.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index 708d15e37..0a98f5fb9 100644 --- a/app/services/suspend_account_service.rb +++ b/app/services/suspend_account_service.rb @@ -22,7 +22,13 @@ class SuspendAccountService < BaseService end def purge_content! - ActivityPub::RawDistributionWorker.perform_async(delete_actor_json, @account.id) if @account.local? + if @account.local? + ActivityPub::RawDistributionWorker.perform_async(delete_actor_json, @account.id) + + ActivityPub::DeliveryWorker.push_bulk(Relay.enabled.pluck(:inbox_url)) do |inbox_url| + [delete_actor_json, @account.id, inbox_url] + end + end @account.statuses.reorder(nil).find_in_batches do |statuses| BatchedRemoveStatusService.new.call(statuses) @@ -59,12 +65,14 @@ class SuspendAccountService < BaseService end def delete_actor_json + return @delete_actor_json if defined?(@delete_actor_json) + payload = ActiveModelSerializers::SerializableResource.new( @account, serializer: ActivityPub::DeleteActorSerializer, adapter: ActivityPub::Adapter ).as_json - Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@account)) + @delete_actor_json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@account)) end end |