Class: HttpTransportProvider

Inherits:
SoarTransportApi::TransportAPI
  • Object
show all
Defined in:
lib/http_transport_provider.rb

Defined Under Namespace

Classes: NotConfigured

Instance Method Summary collapse

Constructor Details

#initialize(transport_identifier) ⇒ HttpTransportProvider

Returns a new instance of HttpTransportProvider.



11
12
13
14
# File 'lib/http_transport_provider.rb', line 11

def initialize(transport_identifier)
  super(transport_identifier)
  @message_response = []
end

Instance Method Details

#configure(config) ⇒ Object



16
17
18
19
20
# File 'lib/http_transport_provider.rb', line 16

def configure(config)
  if ConfigurationValidation.valid?(config)
    @configuration = config
  end
end

#receive_messageObject



35
36
37
# File 'lib/http_transport_provider.rb', line 35

def receive_message
  @message_response.pop.body
end

#send_message(uri, message) ⇒ Object

Raises:



23
24
25
26
27
28
29
30
31
32
33
# 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