mirror of
https://github.com/internetee/registry.git
synced 2025-05-30 01:20:04 +02:00
Let domain to to draft status
This commit is contained in:
parent
e9e1e057f5
commit
7f26c8c769
6 changed files with 32 additions and 14 deletions
|
@ -3,8 +3,20 @@ module Epp::DomainsHelper
|
||||||
Domain.transaction do
|
Domain.transaction do
|
||||||
@domain = Domain.new(domain_create_params)
|
@domain = Domain.new(domain_create_params)
|
||||||
|
|
||||||
handle_errors(@domain) and return unless @domain.parse_and_attach_domain_dependencies(@ph, parsed_frame)
|
@domain.attach_owner_contact(@ph[:registrant]) if @ph[:registrant]
|
||||||
handle_errors(@domain) and return unless @domain.save
|
@domain.save
|
||||||
|
@domain.parse_and_attach_domain_dependencies(parsed_frame)
|
||||||
|
@domain.all_dependencies_valid?
|
||||||
|
|
||||||
|
if @domain.errors.any?
|
||||||
|
handle_errors(@domain)
|
||||||
|
raise ActiveRecord::Rollback and return
|
||||||
|
end
|
||||||
|
|
||||||
|
unless @domain.save
|
||||||
|
handle_errors(@domain)
|
||||||
|
raise ActiveRecord::Rollback and return
|
||||||
|
end
|
||||||
|
|
||||||
render '/epp/domains/create'
|
render '/epp/domains/create'
|
||||||
end
|
end
|
||||||
|
@ -40,7 +52,7 @@ module Epp::DomainsHelper
|
||||||
|
|
||||||
handle_errors(@domain) and return unless @domain
|
handle_errors(@domain) and return unless @domain
|
||||||
|
|
||||||
@domain.parse_and_attach_domain_dependencies(@ph, parsed_frame.css('add'))
|
@domain.parse_and_attach_domain_dependencies(parsed_frame.css('add'))
|
||||||
@domain.parse_and_detach_domain_dependencies(parsed_frame.css('rem'))
|
@domain.parse_and_detach_domain_dependencies(parsed_frame.css('rem'))
|
||||||
@domain.parse_and_update_domain_dependencies(parsed_frame.css('chg'))
|
@domain.parse_and_update_domain_dependencies(parsed_frame.css('chg'))
|
||||||
|
|
||||||
|
|
|
@ -39,11 +39,9 @@ class Domain < ActiveRecord::Base
|
||||||
|
|
||||||
validates :name_dirty, domain_name: true, uniqueness: true
|
validates :name_dirty, domain_name: true, uniqueness: true
|
||||||
validates :period, numericality: { only_integer: true }
|
validates :period, numericality: { only_integer: true }
|
||||||
validates :name, :owner_contact, presence: true
|
validates :owner_contact, presence: true
|
||||||
|
|
||||||
validate :validate_period
|
validate :validate_period
|
||||||
validate :validate_nameservers_count
|
|
||||||
validate :validate_admin_contacts_count
|
|
||||||
|
|
||||||
def name=(value)
|
def name=(value)
|
||||||
value.strip!
|
value.strip!
|
||||||
|
@ -54,8 +52,7 @@ class Domain < ActiveRecord::Base
|
||||||
|
|
||||||
### CREATE & UPDATE ###
|
### CREATE & UPDATE ###
|
||||||
|
|
||||||
def parse_and_attach_domain_dependencies(ph, parsed_frame)
|
def parse_and_attach_domain_dependencies(parsed_frame)
|
||||||
attach_owner_contact(ph[:registrant]) if ph[:registrant]
|
|
||||||
attach_contacts(self.class.parse_contacts_from_frame(parsed_frame))
|
attach_contacts(self.class.parse_contacts_from_frame(parsed_frame))
|
||||||
attach_nameservers(self.class.parse_nameservers_from_frame(parsed_frame))
|
attach_nameservers(self.class.parse_nameservers_from_frame(parsed_frame))
|
||||||
attach_statuses(self.class.parse_statuses_from_frame(parsed_frame))
|
attach_statuses(self.class.parse_statuses_from_frame(parsed_frame))
|
||||||
|
@ -300,6 +297,13 @@ class Domain < ActiveRecord::Base
|
||||||
add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match'))
|
add_epp_error('2306', 'curExpDate', cur_exp_date, I18n.t('errors.messages.epp_exp_dates_do_not_match'))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def all_dependencies_valid?
|
||||||
|
validate_nameservers_count
|
||||||
|
validate_admin_contacts_count
|
||||||
|
|
||||||
|
errors.empty?
|
||||||
|
end
|
||||||
|
|
||||||
def epp_code_map # rubocop:disable Metrics/MethodLength
|
def epp_code_map # rubocop:disable Metrics/MethodLength
|
||||||
domain_validation_sg = SettingGroup.domain_validation
|
domain_validation_sg = SettingGroup.domain_validation
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@ class DomainNameValidator < ActiveModel::EachValidator
|
||||||
|
|
||||||
def validate_each(record, attribute, value)
|
def validate_each(record, attribute, value)
|
||||||
if !self.class.validate_format(value)
|
if !self.class.validate_format(value)
|
||||||
record.errors[attribute] << (options[:message] || 'invalid format')
|
record.errors[attribute] << (options[:message] || record.errors.generate_message(attribute, :invalid))
|
||||||
elsif !self.class.validate_reservation(value)
|
elsif !self.class.validate_reservation(value)
|
||||||
record.errors.add(attribute, (options[:message] || :reserved))
|
record.errors.add(attribute, (options[:message] || record.errors.generate_message(attribute, :reserved)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
%h2= t('shared.new_domain')
|
%h2= t('shared.new_domain')
|
||||||
%hr
|
%hr
|
||||||
= form_for([:admin, @domain]) do |f|
|
= form_for([:admin, @domain]) do |f|
|
||||||
|
= @domain.errors.inspect
|
||||||
- if @domain.errors.any?
|
- if @domain.errors.any?
|
||||||
- @domain.errors.full_messages.each do |x|
|
- @domain.errors.each do |attr, err|
|
||||||
= x
|
= err
|
||||||
%br
|
%br
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -70,6 +70,7 @@ en:
|
||||||
domain:
|
domain:
|
||||||
attributes:
|
attributes:
|
||||||
name_dirty:
|
name_dirty:
|
||||||
|
invalid: 'Domain name is invalid'
|
||||||
reserved: 'Domain name is reserved or restricted'
|
reserved: 'Domain name is reserved or restricted'
|
||||||
taken: 'Domain name already exists'
|
taken: 'Domain name already exists'
|
||||||
owner_contact:
|
owner_contact:
|
||||||
|
@ -80,11 +81,12 @@ en:
|
||||||
admin_contacts:
|
admin_contacts:
|
||||||
out_of_range: 'Admin contacts count must be between 1 - infinity'
|
out_of_range: 'Admin contacts count must be between 1 - infinity'
|
||||||
nameservers:
|
nameservers:
|
||||||
out_of_range: 'count must be between %{min}-%{max}'
|
out_of_range: 'Nameservers count must be between %{min}-%{max}'
|
||||||
not_found: 'Nameserver was not found'
|
not_found: 'Nameserver was not found'
|
||||||
taken: 'Nameserver already exists on this domain'
|
taken: 'Nameserver already exists on this domain'
|
||||||
period:
|
period:
|
||||||
out_of_range: 'Period must add up to 1, 2 or 3 years'
|
out_of_range: 'Period must add up to 1, 2 or 3 years'
|
||||||
|
not_a_number: 'Period is not a number'
|
||||||
auth_info:
|
auth_info:
|
||||||
wrong_pw: 'Authentication error'
|
wrong_pw: 'Authentication error'
|
||||||
domain_statuses:
|
domain_statuses:
|
||||||
|
|
|
@ -172,7 +172,6 @@ describe 'EPP Domain', epp: true do
|
||||||
|
|
||||||
it 'creates a domain' do
|
it 'creates a domain' do
|
||||||
response = epp_request(domain_create_xml, :xml)
|
response = epp_request(domain_create_xml, :xml)
|
||||||
|
|
||||||
d = Domain.first
|
d = Domain.first
|
||||||
|
|
||||||
expect(response[:result_code]).to eq('1000')
|
expect(response[:result_code]).to eq('1000')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue