lib/soapy_cake/response.rb in soapy_cake-1.1.2 vs lib/soapy_cake/response.rb in soapy_cake-1.2.0

- old
+ new

@@ -1,26 +1,31 @@ module SoapyCake class Response + include Helper + attr_accessor :time_offset - attr_reader :body + attr_reader :body, :addedit - def initialize(body) + def initialize(body, addedit) @body = body + @addedit = addedit end def collection check_errors! + return typed_element(sax.at_depth(3).first) if addedit + sax.at_depth(5).map do |element| typed_element(element) end end private def typed_element(element) - Helper.walk_tree(element) do |value, key| + walk_tree(element) do |value, key| next value.to_i if key.to_s.end_with?('_id') && !key.to_s.end_with?('tax_id') if /\A\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.?\d*\z/.match(value) next DateTime.parse(value + format('%+03d:00', time_offset.to_i)) end @@ -40,12 +45,13 @@ end def check_errors! fault = sax.for_tag(:fault).first fail RequestFailed, fault[:reason][:text] if fault - unless sax.for_tag(:success).first == 'true' - message = sax.for_tag(:message).first || sax.for_tag(:Text).first || 'Unknown error' - fail RequestFailed, message - end + fail RequestFailed, error_message unless sax.for_tag(:success).first == 'true' + end + + def error_message + sax.for_tag(:message).first || sax.for_tag(:Text).first || 'Unknown error' end end end