Fix possible transaction retries by setting idempotency

This commit is contained in:
Alex Sherman 2021-08-30 13:28:26 +05:00
parent b5b263f4b2
commit 85475f46df
6 changed files with 38 additions and 18 deletions

View file

@ -173,26 +173,13 @@ class Epp::Domain < Domain
### RENEW ###
def renew(cur_exp_date, period, unit = 'y')
def renew(renewed_expire_time:, period:, unit:)
@is_renewal = true
validate_exp_dates(cur_exp_date)
add_renew_epp_errors unless renewable?
return false if errors.any?
period = period.to_i
plural_period_unit_name = (unit == 'm' ? 'months' : 'years').to_sym
renewed_expire_time = valid_to.advance(plural_period_unit_name => period.to_i)
max_reg_time = 11.years.from_now
if renewed_expire_time >= max_reg_time
add_epp_error('2105', nil, nil, I18n.t('epp.domains.object_is_not_eligible_for_renewal',
max_date: max_reg_time.to_date.to_s(:db)))
return false if errors.any?
end
self.expire_time = renewed_expire_time
self.outzone_at = nil
self.delete_date = nil