class HttpTransportProvider
Public Class Methods
new(transport_identifier)
click to toggle source
Calls superclass method
# File lib/http_transport_provider.rb, line 11 def initialize(transport_identifier) super(transport_identifier) @message_response = [] end
Public Instance Methods
configure(config)
click to toggle source
# File lib/http_transport_provider.rb, line 16 def configure(config) if ConfigurationValidation.valid?(config) @configuration = config end end
receive_message()
click to toggle source
# File lib/http_transport_provider.rb, line 35 def receive_message @message_response.pop.body end
send_message(uri, message)
click to toggle source
# File lib/http_transport_provider.rb, line 23 def send_message(uri, message) #TODO: Message validation uri = URI::parse uri raise NotConfigured if @configuration.nil? request = Request.build(uri, @configuration, message['body']) response = connection(uri).request(request) @message_response.push(response) map_response_code_to_delivery_status(response.code) end
Private Instance Methods
connection(uri)
click to toggle source
TODO: enable/disable verify_mode
# File lib/http_transport_provider.rb, line 41 def connection(uri) connection = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https', :verify_mode => OpenSSL::SSL::VERIFY_NONE) end
map_response_code_to_delivery_status(code)
click to toggle source
# File lib/http_transport_provider.rb, line 45 def map_response_code_to_delivery_status(code) if code == '200' DELIVERY_SUCCESS elsif code == '408' DELIVERY_TIMEOUT elsif code == '401' DELIVERY_REJECTED elsif code == '500' DELIVERY_FAILURE elsif code == '508' DELIVERY_PENDING elsif code == '208' "Delivery status unkown" else "Delivery status unsupported" end end