Method: ActionWebService::Protocol::Soap::SoapProtocol#decode_response

Defined in:
lib/action_web_service/protocol/soap_protocol.rb

#decode_response(raw_response) ⇒ Object



83
84
85
86
87
88
89
90
91
92
# File 'lib/action_web_service/protocol/soap_protocol.rb', line 83

def decode_response(raw_response)
  envelope = SOAP::Processor.unmarshal(raw_response)
  unless envelope
    raise ProtocolError, "Failed to parse SOAP request message"
  end
  method_name = envelope.body.request.elename.name
  return_value = envelope.body.response
  return_value = marshaler.soap_to_ruby(return_value) unless return_value.nil?
  [method_name, return_value]
end