class WsdlMapper::Runtime::Middlewares::SimpleRequestFactory

Public Instance Methods

call(operation, message) click to toggle source

Serializes the `message`, sets the service URL and adds SOAPAction and Content-Type headers. For serialization it relies on {WsdlMapper::Runtime::Operation#input_s8r} to return the proper input serializer for this operation. @param [WsdlMapper::Runtime::Operation] operation @param [WsdlMapper::Runtime::Message] message @return [Array<WsdlMapper::Runtime::Operation, WsdlMapper::Runtime::Request>]

# File lib/wsdl_mapper/runtime/middlewares/simple_request_factory.rb, line 12
def call(operation, message)
  request = WsdlMapper::Runtime::Request.new message
  serialize_envelope request, operation, message
  set_url request, operation, message
  add_http_headers request, operation, message

  [operation, request]
end

Protected Instance Methods

add_http_headers(request, _operation, message) click to toggle source
# File lib/wsdl_mapper/runtime/middlewares/simple_request_factory.rb, line 22
def add_http_headers(request, _operation, message)
  request.add_http_header 'SOAPAction', message.action
  request.add_http_header 'Content-Type', 'text/xml'
end
serialize_envelope(request, operation, message) click to toggle source
# File lib/wsdl_mapper/runtime/middlewares/simple_request_factory.rb, line 31
def serialize_envelope(request, operation, message)
  request.xml = operation.input_s8r.to_xml(message.envelope)
end
set_url(request, _operation, message) click to toggle source
# File lib/wsdl_mapper/runtime/middlewares/simple_request_factory.rb, line 27
def set_url(request, _operation, message)
  request.url = URI(message.address)
end