docbrown/app/services/users/delete.rb
Anna Buianova 473594f192
Match spam role with existing suspended actions (#20477)
* Started matching spam and suspended roles

* Match spam and suspended roles in most cases

* Fixed check_suspended for unauthenticated users
2023-12-27 20:12:50 +00:00

43 lines
809 B
Ruby

module Users
class Delete
def self.call(...)
new(...).call
end
def initialize(user)
@user = user
end
def call
delete_comments
delete_articles
delete_podcasts
delete_user_activity
user.remove_from_mailchimp_newsletters
EdgeCache::Bust.call("/#{user.username}")
Users::SuspendedUsername.create_from_user(user) if user.spam_or_suspended?
user.destroy
Rails.cache.delete("user-destroy-token-#{user.id}")
end
private
attr_reader :user
def delete_user_activity
DeleteActivity.call(user)
end
def delete_comments
DeleteComments.call(user)
end
def delete_articles
DeleteArticles.call(user)
end
def delete_podcasts
DeletePodcasts.call(user)
end
end
end