mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-30 17:23:55 +02:00
Update domain.py
This commit is contained in:
parent
c9957bcd2c
commit
68b6c8b46a
1 changed files with 26 additions and 10 deletions
|
@ -239,25 +239,41 @@ class Domain(TimeStampedModel, DomainHelper):
|
||||||
To update the expiration date, use renew_domain method."""
|
To update the expiration date, use renew_domain method."""
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
def renew_domain(self, length: int = 1, date_to_extend = None, unit: epp.Unit = epp.Unit.YEAR):
|
def renew_domain(self, length: int = 1, unit: epp.Unit = epp.Unit.YEAR, extend_year_past_current_date = False):
|
||||||
"""
|
"""
|
||||||
Renew the domain to a length and unit of time relative to the current
|
Renew the domain to a length and unit of time relative to the current
|
||||||
expiration date.
|
expiration date.
|
||||||
|
|
||||||
Default length and unit of time are 1 year.
|
Default length and unit of time are 1 year.
|
||||||
|
|
||||||
|
extend_past_current_date (bool): Specifies if the "desired" date
|
||||||
|
should exceed the present date + length. For instance,
|
||||||
"""
|
"""
|
||||||
logger.info(f"This is the date to extend: {date_to_extend}")
|
|
||||||
# If no date is specified, grab the registry_expiration_date
|
# If no date is specified, grab the registry_expiration_date
|
||||||
if date_to_extend is None:
|
try:
|
||||||
try:
|
exp_date = self.registry_expiration_date
|
||||||
date_to_extend = self.registry_expiration_date
|
except KeyError:
|
||||||
except KeyError:
|
# if no expiration date from registry, set it to today
|
||||||
# if no expiration date from registry, set it to today
|
logger.warning("current expiration date not set; setting to today")
|
||||||
logger.warning("current expiration date not set; setting to today")
|
exp_date = date.today()
|
||||||
date_to_extend = date.today()
|
|
||||||
|
if extend_year_past_current_date:
|
||||||
|
# TODO - handle unit == month
|
||||||
|
expected_renewal_year = exp_date.year + length
|
||||||
|
current_year = date.today().year
|
||||||
|
if expected_renewal_year < current_year:
|
||||||
|
# Modify the length such that it will exceed the current year by the length
|
||||||
|
length = (current_year - exp_date.year) + length
|
||||||
|
# length = (current_year - expected_renewal_year) + length * 2
|
||||||
|
elif expected_renewal_year == current_year:
|
||||||
|
# In the event that the expected renewal date will equal the current year,
|
||||||
|
# we need to apply double "length" for it shoot past the current date
|
||||||
|
# at the correct interval.
|
||||||
|
length = length * 2
|
||||||
|
|
||||||
# create RenewDomain request
|
# create RenewDomain request
|
||||||
request = commands.RenewDomain(name=self.name, cur_exp_date=date_to_extend, period=epp.Period(length, unit))
|
request = commands.RenewDomain(name=self.name, cur_exp_date=exp_date, period=epp.Period(length, unit))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# update expiration date in registry, and set the updated
|
# update expiration date in registry, and set the updated
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue