class Yardi::Validator::EmptyResponse
Ensure that the response contains data. Sometimes Yardi
will respond with just the outer shell of XML. For an example, @see empty_response.xml. We will also raise an error if Yardi
returns a completely empty response.
Attributes
action[R]
response[R]
Public Class Methods
new(action:, parsed_response:)
click to toggle source
@param parsed_response [Hash<String, Object>] the XML response parsed
into a Hash
@param action [String] The SOAP action this response is for. Yardi's
responses have nodes whose names include the SOAP action for the request that was made.
# File lib/yardi/validator/empty_response.rb, line 14 def initialize(action:, parsed_response:) @action = action @response = parsed_response end
Public Instance Methods
validate!()
click to toggle source
@raise [Yardi::Error::EmptyResponse] if the response is effectively
empty
# File lib/yardi/validator/empty_response.rb, line 21 def validate! return unless error? raise Error::EmptyResponse, 'Yardi response contains no Result node.' end
Private Instance Methods
error?()
click to toggle source
# File lib/yardi/validator/empty_response.rb, line 30 def error? return true if response.empty? envelope = response['soap:Envelope'] return true if envelope.nil? body = envelope['soap:Body'] # Fault responses will be handled by the FaultResponse validator return false unless body['soap:Fault'].nil? body["#{action}Response"]["#{action}Result"].nil? end