mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
parent
453acf6616
commit
63db8d1409
4 changed files with 34 additions and 30 deletions
|
@ -1,35 +1,6 @@
|
|||
module Concerns::Domain::Deletable
|
||||
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
|
||||
|
||||
private
|
||||
|
||||
def delete_later
|
||||
|
|
32
app/models/concerns/domain/discardable.rb
Normal file
32
app/models/concerns/domain/discardable.rb
Normal 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
|
|
@ -5,6 +5,7 @@ class Domain < ActiveRecord::Base
|
|||
include Concerns::Domain::Expirable
|
||||
include Concerns::Domain::Activatable
|
||||
include Concerns::Domain::ForceDelete
|
||||
include Concerns::Domain::Discardable
|
||||
include Concerns::Domain::Deletable
|
||||
include Concerns::Domain::Transferable
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'test_helper'
|
||||
|
||||
class DomainDeletableTest < ActiveSupport::TestCase
|
||||
class DomainDiscardableTest < ActiveSupport::TestCase
|
||||
setup do
|
||||
@domain = domains(:shop)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue