Extract concern

#790
This commit is contained in:
Artur Beljajev 2018-04-18 23:40:04 +03:00
parent 453acf6616
commit 63db8d1409
4 changed files with 34 additions and 30 deletions

View file

@ -0,0 +1,32 @@
module Concerns::Domain::Discardable
extend ActiveSupport::Concern
class_methods do
def discard_domains
domains = where('delete_at < ? AND ? != ALL(statuses) AND ? != ALL(statuses)',
Time.zone.now,
DomainStatus::SERVER_DELETE_PROHIBITED,
DomainStatus::DELETE_CANDIDATE)
domains.map(&:discard)
end
end
def discard
statuses << DomainStatus::DELETE_CANDIDATE
# We don't validate deliberately since nobody is interested in fixing discarded domain
save(validate: false)
delete_later
logger.info "Domain #{name} (ID: #{id}) is scheduled to be deleted"
end
def keep
statuses.delete(DomainStatus::DELETE_CANDIDATE)
save
do_not_delete_later
end
def discarded?
statuses.include?(DomainStatus::DELETE_CANDIDATE)
end
end