class Outliers::Handlers::OutliersApi

Public Instance Methods

post(result, key, url) click to toggle source
# File lib/outliers/handlers/outliers_api.rb, line 8
def post(result, key, url)
  uri = URI.parse url

  host = uri.host
  port = uri.port
  path = uri.path
  use_ssl = uri.scheme == 'https'

  req = Net::HTTP::Post.new path, header
  
  req.body = body(key, result)

  logger.debug "Hanlder URL: #{url}"
  logger.debug "Posting: #{body("XXX", result)}"

  session = Net::HTTP.new(host, port)
  session.use_ssl = use_ssl

  begin
    response = session.start {|http| http.request(req) }
  rescue Errno::ECONNREFUSED
    logger.error "Connection to '#{url}' refused."
    return false
  end

  if response.code == "200"
    logger.debug "Received: #{response.body}"
    logger.debug "Handler completed succesfully."
    true
  else
    logger.error "Received: #{response.body}"
    logger.error "Handler failed with code #{response.code}."
    false
  end
end

Private Instance Methods

body(key, result) click to toggle source
# File lib/outliers/handlers/outliers_api.rb, line 55
def body(key, result)
  { 'key'    => key,
    'result' => result.to_hash }.to_json
end
header() click to toggle source
# File lib/outliers/handlers/outliers_api.rb, line 50
def header
  { 'Content-Type' => 'application/json',
    'Accept'       => 'application/vnd.outliers-v1+json' }
end
logger() click to toggle source
# File lib/outliers/handlers/outliers_api.rb, line 46
def logger
  @logger ||= Outliers.logger
end