class BadgerVision::Request

Attributes

client[R]
data[R]
http_method[R]

Public Class Methods

new(http_method, endpoint) click to toggle source

Initialize a Request

@param http_method [Symbol] HTTP verb as sysmbol @param endpoint [String] The relative API endpoint @param data [Hash] Attributes / Options as a Hash

# File lib/badger_vision/request.rb, line 12
def initialize(http_method, endpoint)
  @data        = data
  @endpoint    = endpoint
  @http_method = http_method
end
post(endpoint, options = {}) click to toggle source

Make a HTTP POST Request

@param endpoint [String] The relative API endpoint @param options [Hash] The additional query params @return Hash

# File lib/badger_vision/request.rb, line 33
def self.post(endpoint, options = {})
  new(:post, endpoint).request(options)
end

Public Instance Methods

request(options = {}) click to toggle source

Make a HTTP Request

@param options [Hash] Additonal options hash @return Hash

# File lib/badger_vision/request.rb, line 23
def request(options = {})
  connection.send(http_method, api_endpoint, default_options.merge(options)).body
end

Private Instance Methods

api_endpoint() click to toggle source
# File lib/badger_vision/request.rb, line 58
def api_endpoint
  ["", config.base_path, @endpoint].join("/").squeeze("/")
end
config() click to toggle source
# File lib/badger_vision/request.rb, line 41
def config
  BadgerVision.configuration
end
connection() click to toggle source
# File lib/badger_vision/request.rb, line 68
def connection
  @connection ||= Faraday.new(faraday_options) do |faraday|
    faraday.request  :url_encoded             # form-encode POST params
    faraday.response :logger                  # log requests to STDOUT
    faraday.adapter  Faraday.default_adapter  # make requests with Net::HTTP
  end
end
default_options() click to toggle source
# File lib/badger_vision/request.rb, line 45
def default_options
  {
    random: Time.now.to_i * 1000,
    data: nil,
    date: Time.now.to_i * 1000,
    demoimg: 0,
  }
end
faraday_options() click to toggle source
# File lib/badger_vision/request.rb, line 62
def faraday_options
  {
    url: places_host
  }
end
places_host() click to toggle source
# File lib/badger_vision/request.rb, line 54
def places_host
  config.api_host
end