class Yardi::Validator::FaultResponse

Ensure that the response has no Fault nodes

Attributes

action[R]
response[R]

Public Class Methods

new(action:, parsed_response:) click to toggle source

@param parsed_response [Hash<String, Object>] XML response parsed into a

Hash
# File lib/yardi/validator/fault_response.rb, line 9
def initialize(action:, parsed_response:)
  @action = action
  @response = parsed_response
end

Public Instance Methods

validate!() click to toggle source

@raise [Yardi::Error::FaultResponse] if the response has a Fault node

# File lib/yardi/validator/fault_response.rb, line 15
def validate!
  return unless error?
  raise Error::FaultResponse, error_message
end

Private Instance Methods

body() click to toggle source
# File lib/yardi/validator/fault_response.rb, line 24
def body
  response['soap:Envelope']['soap:Body']
end
error?() click to toggle source
# File lib/yardi/validator/fault_response.rb, line 28
def error?
  !body['soap:Fault'].nil?
end
error_message() click to toggle source
# File lib/yardi/validator/fault_response.rb, line 32
def error_message
  fault = body['soap:Fault']
  fault_message = "#{fault['faultcode']}: #{fault['faultstring']}."
  details = fault['detail']
  details.nil? ? fault_message : "#{fault_message} Details: #{details}"
end