mirror of
https://github.com/internetee/registry.git
synced 2025-06-08 05:34:46 +02:00
40 lines
1.2 KiB
Ruby
40 lines
1.2 KiB
Ruby
module Domains
|
|
module ForceDelete
|
|
class SetStatus < Base
|
|
def execute
|
|
domain.force_delete_type = type
|
|
type == :fast_track ? force_delete_fast_track : force_delete_soft
|
|
domain.save(validate: false)
|
|
end
|
|
|
|
def force_delete_fast_track
|
|
domain.force_delete_date = Time.zone.today +
|
|
expire_warning_period_days +
|
|
redemption_grace_period_days
|
|
domain.force_delete_start = Time.zone.today + 1.day
|
|
end
|
|
|
|
def force_delete_soft
|
|
years = (domain.valid_to.to_date - Time.zone.today).to_i / 365
|
|
soft_forcedelete_dates(years) if years.positive?
|
|
end
|
|
|
|
private
|
|
|
|
def soft_forcedelete_dates(years)
|
|
domain.force_delete_start = domain.valid_to - years.years
|
|
domain.force_delete_date = domain.force_delete_start +
|
|
Setting.expire_warning_period.days +
|
|
Setting.redemption_grace_period.days
|
|
end
|
|
|
|
def redemption_grace_period_days
|
|
Setting.redemption_grace_period.days + 1.day
|
|
end
|
|
|
|
def expire_warning_period_days
|
|
Setting.expire_warning_period.days
|
|
end
|
|
end
|
|
end
|
|
end
|