class CognitiveVision::Connection

Constants

ENDPOINT

Public Class Methods

new() click to toggle source
# File lib/cognitive_vision/connection.rb, line 8
def initialize
  @uri          = URI(ENDPOINT)
  @http         = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl = @uri.scheme == 'https'
end

Public Instance Methods

post(path, params, body) click to toggle source
# File lib/cognitive_vision/connection.rb, line 14
def post(path, params, body)
  uri = prepare_uri(path, params)
  request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
  request['Ocp-Apim-Subscription-Key'] = CognitiveVision.configuration.key
  request.body = body.to_json
  request_json(request)
end

Private Instance Methods

prepare_uri(path, query_params) click to toggle source
# File lib/cognitive_vision/connection.rb, line 24
def prepare_uri(path, query_params)
  uri       = @uri.dup
  uri.path += path
  uri.query = URI.encode_www_form(query_params)
  uri
end
request_json(request) click to toggle source
# File lib/cognitive_vision/connection.rb, line 31
def request_json(request)
  response = @http.request(request)
  body     = JSON.parse(response.body)

  raise RateLimitError if response.code.to_i == 429
  OpenStruct.new(code: response.code.to_i, body: body)
end