class Fiscalizer::Deserializers::Base

Attributes

object[R]
raw_response[R]

Public Class Methods

new(raw_response, object) click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 6
def initialize(raw_response, object)
  @raw_response = raw_response
  @object = object
end

Public Instance Methods

errors() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 25
def errors
  @errors ||= begin
    error_nodes.map do |error_node|
      {
        code: element_value(error_node, 'SifraGreske'),
        message: element_value(error_node, 'PorukaGreske')
      }
    end
  end
end
errors?() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 21
def errors?
  error_nodes.any?
end
processed_at() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 17
def processed_at
  element_value(root, 'DatumVrijeme')
end
uuid() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 13
def uuid
  element_value(root, 'IdPoruke')
end

Private Instance Methods

element_value(root_node, element) click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 38
def element_value(root_node, element)
  element = find(root_node, element).first
  return if element.nil?

  element.text
end
error_nodes() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 53
def error_nodes
  @error_nodes ||= find(root, 'Greska')
end
find(root_node, element) click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 45
def find(root_node, element)
  root_node.xpath("//tns:#{element}", 'tns' => TNS)
end
root() click to toggle source
# File lib/fiscalizer/deserializers/base.rb, line 49
def root
  Nokogiri::XML(raw_response).root
end