class Sterling::API::Client

Attributes

base_url[R]
config[R]
conn[R]

Public Class Methods

new() click to toggle source
# File lib/sterling/api/client.rb, line 7
def initialize
  @config = self.verify_config(Sterling.configuration)
  @base_url = "#{host}.retailigence.com/v#{version}/" 
  @conn = Faraday.new(url: "http://#{@base_url}")
end

Public Instance Methods

products(user_location, query, requestor_id) click to toggle source
# File lib/sterling/api/client.rb, line 13
def products(user_location, query, requestor_id)
  params = { user_location: user_location, keywords: query, requestor_id: requestor_id }
  Product.search(self, params)
end

Protected Instance Methods

host() click to toggle source
# File lib/sterling/api/client.rb, line 20
def host
  if self.valid_api_host?(@config.api_host)
    @config.api_host
  else
    raise Sterling::Error::InvalidAPIHost
  end
end
invalid_path() click to toggle source
# File lib/sterling/api/client.rb, line 44
def invalid_path
  {error: 'Invalid path'}
end
valid_api_host?(host) click to toggle source
# File lib/sterling/api/client.rb, line 40
def valid_api_host?(host)
  ['apitest', 'api'].include?(host)
end
valid_api_version?(version) click to toggle source
# File lib/sterling/api/client.rb, line 36
def valid_api_version?(version)
  ['2.1'].include?(version)
end
verify_config(config) click to toggle source
# File lib/sterling/api/client.rb, line 48
def verify_config(config)
  if config.api_version.nil? || config.api_key.nil? || config.api_host.nil?
    raise Sterling::Error::MissingAPIConfiguration.new('Invalid configuration')
  else
    config
  end
end
version() click to toggle source
# File lib/sterling/api/client.rb, line 28
def version
  if self.valid_api_version?(@config.api_version)
    @config.api_version
  else
    raise Sterling::Error::InvalidAPIVersion
  end
end