diff --git a/app/views/epp/domains/check.xml.builder b/app/views/epp/domains/check.xml.builder index fff382ab7..2e9df2ac8 100644 --- a/app/views/epp/domains/check.xml.builder +++ b/app/views/epp/domains/check.xml.builder @@ -6,7 +6,8 @@ xml.epp_head do xml.resData do xml.tag!('domain:chkData', - 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, for_version: @schema_version)) do + 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, + for_version: @schema_version)) do @domains.each do |x| xml.tag!('domain:cd') do xml.tag!('domain:name', x[:name], 'avail' => x[:avail]) diff --git a/app/views/epp/domains/create.xml.builder b/app/views/epp/domains/create.xml.builder index d2e1e293b..70710e685 100644 --- a/app/views/epp/domains/create.xml.builder +++ b/app/views/epp/domains/create.xml.builder @@ -6,7 +6,8 @@ xml.epp_head do xml.resData do xml.tag!('domain:creData', - 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, for_version: @schema_version)) do + 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, + for_version: @schema_version)) do xml.tag!('domain:name', @domain.name) xml.tag!('domain:crDate', @domain.created_at.try(:iso8601)) xml.tag!('domain:exDate', @domain.valid_to.iso8601) diff --git a/app/views/epp/domains/info.xml.builder b/app/views/epp/domains/info.xml.builder index 8e7f351ee..01641af8e 100644 --- a/app/views/epp/domains/info.xml.builder +++ b/app/views/epp/domains/info.xml.builder @@ -6,7 +6,8 @@ xml.epp_head do xml.resData do xml.tag! 'domain:infData', - 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, for_version: @schema_version) do + 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, + for_version: @schema_version) do xml.tag!('domain:name', @domain.name) xml.tag!('domain:roid', @domain.roid) @domain.statuses.each do |s| diff --git a/app/views/epp/domains/renew.xml.builder b/app/views/epp/domains/renew.xml.builder index 18165b418..bfae24501 100644 --- a/app/views/epp/domains/renew.xml.builder +++ b/app/views/epp/domains/renew.xml.builder @@ -6,7 +6,8 @@ xml.epp_head do xml.resData do xml.tag!('domain:renData', - 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, for_version: @schema_version)) do + 'xmlns:domain' => Xsd::Schema.filename(for_prefix: @schema_prefix, + for_version: @schema_version)) do xml.tag!('domain:name', @domain[:name]) xml.tag!('domain:exDate', @domain.valid_to.iso8601) end diff --git a/lib/xsd/schema.rb b/lib/xsd/schema.rb index 1d73e50cc..0f3897114 100644 --- a/lib/xsd/schema.rb +++ b/lib/xsd/schema.rb @@ -3,8 +3,8 @@ module Xsd SCHEMA_PATH = 'lib/schemas/'.freeze BASE_URL = 'https://epp.tld.ee/schema/'.freeze - REGEX_PREFIX_WITH_DASH = /(?\w+-\w+)-(?\w.\w).xsd/ - REGEX_PREFIX_WITHOUT_DASH = /(?\w+)-(?\w.\w).xsd/ + REGEX_PREFIX_WITH_DASH = /(?\w+-\w+)-(?\w.\w).xsd/.freeze + REGEX_PREFIX_WITHOUT_DASH = /(?\w+)-(?\w.\w).xsd/.freeze PREFIXES = %w[ domain-ee @@ -47,16 +47,21 @@ module Xsd schemas = schemas_by_name[prefix] schemas.each do |schema| - result = return_some(schema) - actual_schema = schema if result[:version] == @for_version - - actual_schema = 'epp-ee-1.0.xsd' if result[:prefix] == 'epp-ee' - actual_schema = 'eis-1.0.xsd' if result[:prefix] == 'eis' + actual_schema = assigment_actual_version(schema) end actual_schema end + def assigment_actual_version(schema) + result = return_some(schema) + actual_schema = schema if result[:version] == @for_version + + actual_schema = 'epp-ee-1.0.xsd' if result[:prefix] == 'epp-ee' + actual_schema = 'eis-1.0.xsd' if result[:prefix] == 'eis' + actual_schema.to_s + end + def return_some(data) res = data.to_s.match(REGEX_PREFIX_WITH_DASH) res = data.to_s.match(REGEX_PREFIX_WITHOUT_DASH) if res.nil?