diff --git a/app/helpers/epp/domains_helper.rb b/app/helpers/epp/domains_helper.rb index bd74f94d1..3fabeb6da 100644 --- a/app/helpers/epp/domains_helper.rb +++ b/app/helpers/epp/domains_helper.rb @@ -36,6 +36,10 @@ module Epp::DomainsHelper end def domain_create_params + period = (@ph[:period].to_i == 0) ? 1 : @ph[:period].to_i + period_unit = Domain.parse_period_unit_from_frame(parsed_frame) || 'y' + valid_to = Date.today + Domain.convert_period_to_time(period, period_unit) + { name: @ph[:name], registrar_id: current_epp_user.registrar.try(:id), @@ -43,7 +47,7 @@ module Epp::DomainsHelper period: (@ph[:period].to_i == 0) ? 1 : @ph[:period].to_i, period_unit: Domain.parse_period_unit_from_frame(parsed_frame) || 'y', valid_from: Date.today, - valid_to: Date.today + @ph[:period].to_i.years, + valid_to: valid_to, auth_info: @ph[:authInfo][:pw] } end diff --git a/app/models/domain.rb b/app/models/domain.rb index f681ca65a..93a1dbc59 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -130,9 +130,7 @@ class Domain < ActiveRecord::Base validate_exp_dates(cur_exp_date) return false if errors.any? - p = period.to_i.days if unit == 'd' - p = period.to_i.months if unit == 'm' - p = period.to_i.years if unit == 'y' + p = self.class.convert_period_to_time(period, unit) self.valid_to = self.valid_to + p self.period = period @@ -174,6 +172,13 @@ class Domain < ActiveRecord::Base end class << self + def convert_period_to_time(period, unit) + p = period.to_i.days if unit == 'd' + p = period.to_i.months if unit == 'm' + p = period.to_i.years if unit == 'y' + p + end + def parse_contacts_from_frame(parsed_frame) res = {} Contact::CONTACT_TYPES.each do |ct| diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index b53bc0c7d..22d8f386a 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -102,7 +102,7 @@ describe 'EPP Domain', epp: true do expect(response[:results][0][:msg]).to eq 'IP is invalid' end - it 'creates a domain with period in days', pending: true do + it 'creates a domain with period in days' do response = epp_request('domains/create_w_period_in_days.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully')