class FourTell

Constants

VERSION

Public Class Methods

new(api_user, api_password, client_alias) click to toggle source

@param [String] api_user @param [String] api_password @param [String] client_alias

# File lib/four_tell.rb, line 12
def initialize(api_user, api_password, client_alias)
  @api_user     = api_user
  @api_password = api_password
  @client_alias = client_alias
end

Public Instance Methods

build_request() click to toggle source

@return [FourTell::Request]

# File lib/four_tell.rb, line 36
def build_request
  FourTell::Request.new(@client_alias)
end
recommendations(request, timeout: 3) click to toggle source

Retrieve a list of recommended product IDs for a given request.

@param [FourTell::Request] request @param [Fixnum] timeout Seconds to wait before timing out the request @raise [Timeout::Error, Errno::ECONNREFUSED, Errno::ECONNRESET] @return [Array]

# File lib/four_tell.rb, line 24
def recommendations(request, timeout: 3)
  url = URI(request.url)
  response = Timeout::timeout(timeout) {
    http = Net::HTTP::Persistent.new 'fourtell'
    req = Net::HTTP::Get.new(url.request_uri)
    req.basic_auth(@api_user, @api_password)
    http.request(url, req)
  }
  (response && response.code == '200') ? JSON.parse(response.body) : []
end