mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
Refactor epp_errors and add attribute to msg
This commit is contained in:
parent
ac6361df05
commit
fdac633f07
1 changed files with 16 additions and 16 deletions
|
@ -3,42 +3,42 @@ module EppErrors
|
||||||
|
|
||||||
def construct_epp_errors
|
def construct_epp_errors
|
||||||
epp_errors = []
|
epp_errors = []
|
||||||
errors.messages.each do |key, values|
|
errors.messages.each do |attr, errors|
|
||||||
key = key.to_s.split('.')[0].to_sym
|
attr = attr.to_s.split('.')[0].to_sym
|
||||||
next if key == :epp_errors
|
next if attr == :epp_errors
|
||||||
|
|
||||||
if self.class.reflect_on_association(key)
|
if self.class.reflect_on_association(attr)
|
||||||
epp_errors << collect_child_errors(key)
|
epp_errors << collect_child_errors(attr)
|
||||||
end
|
end
|
||||||
|
|
||||||
epp_errors << collect_parent_errors(values)
|
epp_errors << collect_parent_errors(attr, errors)
|
||||||
end
|
end
|
||||||
|
|
||||||
errors[:epp_errors] = epp_errors
|
errors[:epp_errors] = epp_errors
|
||||||
errors[:epp_errors].flatten!
|
errors[:epp_errors].flatten!
|
||||||
end
|
end
|
||||||
|
|
||||||
def collect_parent_errors(values)
|
def collect_parent_errors(attr, errors)
|
||||||
epp_errors = []
|
errors = [errors] if errors.is_a?(String)
|
||||||
values = [values] if values.is_a?(String)
|
|
||||||
|
|
||||||
values.each do |err|
|
epp_errors = []
|
||||||
|
errors.each do |err|
|
||||||
code, value = find_epp_code_and_value(err)
|
code, value = find_epp_code_and_value(err)
|
||||||
next unless code
|
next unless code
|
||||||
epp_errors << { code: code, msg: err, value: value }
|
epp_errors << { code: code, msg: "#{err} [#{attr}]", value: value }
|
||||||
end
|
end
|
||||||
epp_errors
|
epp_errors
|
||||||
end
|
end
|
||||||
|
|
||||||
def collect_child_errors(key)
|
def collect_child_errors(attr)
|
||||||
macro = self.class.reflect_on_association(key).macro
|
macro = self.class.reflect_on_association(attr).macro
|
||||||
multi = [:has_and_belongs_to_many, :has_many]
|
multi = [:has_and_belongs_to_many, :has_many]
|
||||||
# single = [:belongs_to, :has_one]
|
# single = [:belongs_to, :has_one]
|
||||||
|
|
||||||
epp_errors = []
|
epp_errors = []
|
||||||
send(key).each do |x|
|
send(attr).each do |x|
|
||||||
x.errors.messages.each do |_key, values|
|
x.errors.messages.each do |attribute, errors|
|
||||||
epp_errors << x.collect_parent_errors(values)
|
epp_errors << x.collect_parent_errors(attribute, errors)
|
||||||
end
|
end
|
||||||
end if multi.include?(macro)
|
end if multi.include?(macro)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue