class A4Tools::HTTPTransporter

Public Class Methods

new(uri) click to toggle source
Calls superclass method A4Tools::Transporter::new
# File lib/acres_client.rb, line 48
def initialize(uri)
  super()
  @uri = uri
  @http = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl = @uri.scheme == 'https'
  @http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

Public Instance Methods

response_body(result) click to toggle source
# File lib/acres_client.rb, line 56
def response_body(result)
  return nil unless result.code.to_i >= 200 and result.code.to_i < 300

  jsonrpc = symbolify JSON.parse(result.body)
  return nil unless jsonrpc[:jsonrpc] == "2.0"
  return nil unless jsonrpc[:error].nil?
  return nil if jsonrpc[:result].nil?

  return jsonrpc[:result][:body] unless jsonrpc[:result][:body].nil?

  return jsonrpc[:result]
end
send_message(msg) click to toggle source
# File lib/acres_client.rb, line 69
def send_message(msg)
  req = Net::HTTP::Post.new(@uri.to_s,
    initheader = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
    )
  req.body = msg
  signal(:sent, msg)
  response = @http.request(req)
  signal(:message, response.body)

  response
end