commit: 2488162733df7d940e1cb26e5ece534c1078f4c8
parent: 1357c1cb3d6b5c46c96dfd2ee25a2a60bccc5092
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Tue, 6 Dec 2016 17:41:42 +0100
Adding suspend account service
Diffstat:
1 file changed, 39 insertions(+), 0 deletions(-)
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+class SuspendAccountService < BaseService
+ def call(account)
+ @account = account
+
+ purge_content
+ purge_profile
+ unsubscribe_push_subscribers
+ end
+
+ private
+
+ def purge_content
+ @account.media_attachments.destroy_all!
+ @account.statuses.destroy_all!
+ @account.stream_entries.destroy_all!
+ @account.mentions.destroy_all!
+ @account.notifications.destroy_all!
+ @account.favourites.destroy_all!
+ @account.active_relationships.destroy_all!
+ @account.passive_relationships.destroy_all!
+ end
+
+ def purge_profile
+ @account.suspended = true
+ @account.display_name = ''
+ @account.note = ''
+ @account.avatar.destroy
+ @account.avatar.clear
+ @account.header.destroy
+ @account.header.clear
+ @account.save!
+ end
+
+ def unsubscribe_push_subscribers
+ @account.subscriptions.destroy_all!
+ end
+end