about summary refs log tree commit diff
path: root/app/services
diff options
context:
space:
mode:
Diffstat (limited to 'app/services')
-rw-r--r--app/services/suspend_account_service.rb22
1 files changed, 15 insertions, 7 deletions
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 66517470e..0cf574ca2 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -17,12 +17,16 @@ class SuspendAccountService < BaseService
       RemoveStatusService.new.call(status)
     end
 
-    @account.media_attachments.destroy_all
-    @account.stream_entries.destroy_all
-    @account.notifications.destroy_all
-    @account.favourites.destroy_all
-    @account.active_relationships.destroy_all
-    @account.passive_relationships.destroy_all
+    [
+      @account.media_attachments,
+      @account.stream_entries,
+      @account.notifications,
+      @account.favourites,
+      @account.active_relationships,
+      @account.passive_relationships
+    ].each do |association|
+      destroy_all(association)
+    end
   end
 
   def purge_profile
@@ -35,6 +39,10 @@ class SuspendAccountService < BaseService
   end
 
   def unsubscribe_push_subscribers
-    @account.subscriptions.destroy_all
+    destroy_all(@account.subscriptions)
+  end
+
+  def destroy_all(association)
+    association.in_batches.destroy_all
   end
 end