class AlfaInsurance::Response

Public Class Methods

new(soap_response) click to toggle source
# File lib/alfa_insurance/response.rb, line 3
def initialize(soap_response)
  @raw_response = soap_response
end

Public Instance Methods

body() click to toggle source
# File lib/alfa_insurance/response.rb, line 19
def body
  @body ||= @raw_response.body.values.first
end
error_code() click to toggle source
# File lib/alfa_insurance/response.rb, line 11
def error_code
  body.dig(:return_code, :code) unless success?
end
error_description() click to toggle source
# File lib/alfa_insurance/response.rb, line 15
def error_description
  body.dig(:return_code, :error_message) unless success?
end
success?() click to toggle source
# File lib/alfa_insurance/response.rb, line 7
def success?
  body.dig(:return_code, :code) == 'OK'
end

Private Instance Methods

risk_currency(risk_type) click to toggle source
# File lib/alfa_insurance/response.rb, line 41
def risk_currency(risk_type)
  risk_currency_data = policy.dig(:risk_currency)
  if risk_currency_data.is_a?(Array)
    risk_currency_data.find { |currency_hash| currency_hash[:@risk_type] == risk_type }[:@value]
  else
    risk_currency_data[:@value]
  end
end
risk_values_from(data, currency: nil) click to toggle source
# File lib/alfa_insurance/response.rb, line 25
def risk_values_from(data, currency: nil)
  raw_values = data[:risk_value]
  raw_values = [raw_values] unless raw_values.is_a?(Array)

  raw_values.each_with_object({}) do |item, result|
    risk_type = item[:@risk_type]
    risk_value = item[:@value]
    value_currency = currency || risk_currency(risk_type)
    result[risk_type] = to_money(risk_value, value_currency)
  end
end
to_money(amount, currency) click to toggle source
# File lib/alfa_insurance/response.rb, line 37
def to_money(amount, currency)
  Money.from_amount(amount.to_f, currency)
end