diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-12-06 17:41:42 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-12-06 17:41:42 +0100 |
commit | 2488162733df7d940e1cb26e5ece534c1078f4c8 (patch) | |
tree | 4aa247c47c36ef9b1ea6f55c9366280aef326af8 /app | |
parent | 1357c1cb3d6b5c46c96dfd2ee25a2a60bccc5092 (diff) |
Adding suspend account service
Diffstat (limited to 'app')
-rw-r--r-- | app/services/suspend_account_service.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb new file mode 100644 index 000000000..2361c0ec7 --- /dev/null +++ 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 |