From ee864c807f45a3ed08e55accc716f97a90885771 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Mon, 7 Jan 2019 02:46:20 +0200 Subject: [PATCH] Refactor --- app/models/dns/domain_name.rb | 12 ++++++++++-- app/models/epp/domain.rb | 6 +----- config/locales/en.yml | 1 + test/models/dns/domain_name_test.rb | 8 ++++++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/models/dns/domain_name.rb b/app/models/dns/domain_name.rb index baed7e2fe..0f8e7d4b0 100644 --- a/app/models/dns/domain_name.rb +++ b/app/models/dns/domain_name.rb @@ -7,17 +7,25 @@ module DNS end def unavailable? - blocked? + registered? || blocked? end def unavailability_reason - :blocked if blocked? + if registered? + :registered + elsif blocked? + :blocked + end end private attr_reader :name + def registered? + Domain.find_by_idn(name) + end + def blocked? BlockedDomain.where(name: name).any? end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index ba6195710..09eb49481 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -810,11 +810,7 @@ class Epp::Domain < Domain next end - if Domain.find_by_idn domain_name_as_string - result << { name: domain_name_as_string, avail: 0, reason: 'in use' } - else - result << { name: domain_name_as_string, avail: 1 } - end + result << { name: domain_name_as_string, avail: 1 } end result diff --git a/config/locales/en.yml b/config/locales/en.yml index cdc78101f..ebf5b5b15 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -196,6 +196,7 @@ en: errors: messages: blank: 'is missing' + epp_domain_registered: in use epp_domain_blocked: Blocked epp_obj_does_not_exist: 'Object does not exist' epp_authorization_error: 'Authorization error' diff --git a/test/models/dns/domain_name_test.rb b/test/models/dns/domain_name_test.rb index ba7622936..122803e0e 100644 --- a/test/models/dns/domain_name_test.rb +++ b/test/models/dns/domain_name_test.rb @@ -1,6 +1,14 @@ require 'test_helper' class DNS::DomainNameTest < ActiveSupport::TestCase + def test_unavailable_when_registered + domain_name = DNS::DomainName.new('shop.test') + assert_equal 'shop.test', domains(:shop).name + + assert domain_name.unavailable? + assert_equal :registered, domain_name.unavailability_reason + end + def test_unavailable_when_blocked domain_name = DNS::DomainName.new('blocked.test') assert_equal 'blocked.test', blocked_domains(:one).name