mirror of
https://github.com/internetee/registry.git
synced 2025-07-20 09:46:09 +02:00
Support multiple errors
This commit is contained in:
parent
1e2dad06f9
commit
9fdf40cdcd
6 changed files with 32 additions and 27 deletions
|
@ -12,6 +12,7 @@ module Epp::Common
|
||||||
end
|
end
|
||||||
|
|
||||||
def proxy
|
def proxy
|
||||||
|
@errors = []
|
||||||
@svTRID = "ccReg-#{'%010d' % rand(10 ** 10)}"
|
@svTRID = "ccReg-#{'%010d' % rand(10 ** 10)}"
|
||||||
send(params[:command])
|
send(params[:command])
|
||||||
end
|
end
|
||||||
|
@ -34,10 +35,10 @@ module Epp::Common
|
||||||
|
|
||||||
xsd = Nokogiri::XML::Schema(File.read("doc/schemas/#{type}-1.0.xsd"))
|
xsd = Nokogiri::XML::Schema(File.read("doc/schemas/#{type}-1.0.xsd"))
|
||||||
doc = Nokogiri::XML(params[:frame])
|
doc = Nokogiri::XML(params[:frame])
|
||||||
@extValues = xsd.validate(doc)
|
ext_values = xsd.validate(doc)
|
||||||
if @extValues.any?
|
@errors = []
|
||||||
@code = '2001'
|
if ext_values.any?
|
||||||
@msg = 'Command syntax error'
|
@errors << {code: '2001', msg: 'Command syntax error', ext_values: ext_values}
|
||||||
render '/epp/error' and return
|
render '/epp/error' and return
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,8 @@ class Epp::ErrorsController < ApplicationController
|
||||||
include Epp::Common
|
include Epp::Common
|
||||||
|
|
||||||
def error
|
def error
|
||||||
@code, @msg = params[:code], params[:msg]
|
@errors = []
|
||||||
|
@errors << {code: params[:code], msg: params[:msg]}
|
||||||
render '/epp/error'
|
render '/epp/error'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,12 +32,10 @@ module Epp::ContactsHelper
|
||||||
@contact.destroy
|
@contact.destroy
|
||||||
render '/epp/contacts/delete'
|
render '/epp/contacts/delete'
|
||||||
rescue NoMethodError => e
|
rescue NoMethodError => e
|
||||||
@code = '2303'
|
@errors << {code: '2303', msg: "Object does not exist"}
|
||||||
@msg = "Object does not exist"
|
|
||||||
render '/epp/error'
|
render '/epp/error'
|
||||||
rescue
|
rescue
|
||||||
@code = '2400'
|
@errors << {code: '2400', msg: "Command failed"}
|
||||||
@msg = "Command failed"
|
|
||||||
render '/epp/error'
|
render '/epp/error'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -49,8 +47,7 @@ module Epp::ContactsHelper
|
||||||
if @contacts.any?
|
if @contacts.any?
|
||||||
render '/epp/contacts/check'
|
render '/epp/contacts/check'
|
||||||
else
|
else
|
||||||
@code = '2303'
|
@errors << {code: '2303', msg: "Object does not exist"}
|
||||||
@msg = "Object does not exist"
|
|
||||||
render 'epp/error'
|
render 'epp/error'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,8 +35,7 @@ module Epp::DomainsHelper
|
||||||
def handle_domain_name_errors
|
def handle_domain_name_errors
|
||||||
[:epp_domain_taken, :epp_domain_reserved].each do |x|
|
[:epp_domain_taken, :epp_domain_reserved].each do |x|
|
||||||
if @domain.errors.added?(:name, x)
|
if @domain.errors.added?(:name, x)
|
||||||
@code = '2302'
|
@errors << {code: '2302', msg: @domain.errors[:name].first}
|
||||||
@msg = @domain.errors[:name].first
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,19 +1,22 @@
|
||||||
xml.epp_head do
|
xml.epp_head do
|
||||||
xml.response do
|
xml.response do
|
||||||
xml.result('code' => @code) do
|
@errors.each do |x|
|
||||||
xml.msg(@msg, 'lang' => 'en')
|
xml.result('code' => x[:code]) do
|
||||||
end
|
xml.msg(x[:msg], 'lang' => 'en')
|
||||||
end
|
|
||||||
|
|
||||||
@extValues.each do |x|
|
x[:ext_values].each do |y|
|
||||||
xml.extValue do
|
xml.extValue do
|
||||||
xml.value do
|
xml.value do
|
||||||
# xml.tag!()
|
# xml.tag!()
|
||||||
xml.reason x.to_s
|
xml.reason y.to_s
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end if x[:ext_values]
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end if @extValues && @extValues.any?
|
end
|
||||||
|
|
||||||
xml << render('/epp/shared/trID')
|
xml << render('/epp/shared/trID')
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,6 +31,10 @@ describe 'EPP Domain', epp: true do
|
||||||
expect(response[:clTRID]).to eq('ABC-12345')
|
expect(response[:clTRID]).to eq('ABC-12345')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'does not create a domain with false period' do
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
it 'checks a domain' do
|
it 'checks a domain' do
|
||||||
response = epp_request('domains/check.xml')
|
response = epp_request('domains/check.xml')
|
||||||
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