Sha256: 570444fe032478c1e96249e3a7c3df33d4e2d16ae515537f6cad6248b7f8faf7

Contents?: true

Size: 829 Bytes

Versions: 5

Compression:

Stored size: 829 Bytes

Contents

require "multi_xml"
require "rexml"

module Experian
  class Report
    attr_reader :response, :url, :raw_xml, :xml

    def initialize(response)
      @response = response
      @url = response.env.url.to_s
      @raw_xml = response.body
      MultiXml.parser = :rexml
      @xml = MultiXml.parse(@raw_xml)

      raise error, error_message if error
    end

    protected

    def data
      xml.dig("ServicioWebAxesor", "ListaPaquetesNegocio")
    end

    def error
      return Experian::AuthenticationError if authentication_error?

      Experian::Error if any_other_error?
    end

    def error_message
      xml.dig("DatosError", "DesError")
    end

    def any_other_error?
      xml.dig("DatosError", "CodError")
    end

    def authentication_error?
      xml.dig("DatosError", "CodError") == "1"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ruby-experian-0.1.3 lib/experian/report.rb
ruby-experian-0.1.2 lib/experian/report.rb
ruby-experian-0.1.1 lib/experian/report.rb
ruby-experian-0.0.9 lib/experian/report.rb
ruby-experian-0.0.8 lib/experian/report.rb