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