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