From 0cea91a28a2a76bfbebf984ac76f87f9aa5f13aa Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Thu, 11 Sep 2014 12:14:58 +0300 Subject: [PATCH] Refactor --- app/helpers/epp/domains_helper.rb | 8 -------- app/models/domain.rb | 7 ------- app/models/epp_domain.rb | 9 +++++++++ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/app/helpers/epp/domains_helper.rb b/app/helpers/epp/domains_helper.rb index 463bf5539..20b6f48a7 100644 --- a/app/helpers/epp/domains_helper.rb +++ b/app/helpers/epp/domains_helper.rb @@ -3,15 +3,7 @@ module Epp::DomainsHelper EppDomain.transaction do @domain = EppDomain.new(domain_create_params) - @domain.attach_owner_contact(@ph[:registrant]) if @ph[:registrant] - - unless @domain.save - handle_errors(@domain) - raise ActiveRecord::Rollback and return - end - @domain.parse_and_attach_domain_dependencies(parsed_frame) - @domain.all_dependencies_valid? if @domain.errors.any? handle_errors(@domain) diff --git a/app/models/domain.rb b/app/models/domain.rb index 79b1a493e..9b92c163f 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -103,13 +103,6 @@ class Domain < ActiveRecord::Base errors.add(:period, :out_of_range) unless valid_values.include?(period.to_s) end - def all_dependencies_valid? - validate_nameservers_count - validate_admin_contacts_count - - errors.empty? - end - ## SHARED def to_s diff --git a/app/models/epp_domain.rb b/app/models/epp_domain.rb index 93c8dec9d..0adafa748 100644 --- a/app/models/epp_domain.rb +++ b/app/models/epp_domain.rb @@ -7,7 +7,11 @@ class EppDomain < Domain period: 'period' } + validate :validate_nameservers_count + validate :validate_admin_contacts_count + def parse_and_attach_domain_dependencies(parsed_frame) + attach_owner_contact(self.class.parse_owner_contact_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_statuses(self.class.parse_statuses_from_frame(parsed_frame)) @@ -39,6 +43,7 @@ class EppDomain < Domain end def attach_owner_contact(code) + return unless code self.owner_contact = Contact.find_by(code: code) return if owner_contact @@ -278,6 +283,10 @@ class EppDomain < Domain res end + def parse_owner_contact_from_frame(parsed_frame) + parsed_frame.css('registrant').first.try(:text) + end + def parse_period_unit_from_frame(parsed_frame) p = parsed_frame.css('period').first return nil unless p