Class: REES46::Recommender

Inherits:
Object
  • Object
show all
Defined in:
lib/rees46/recommender.rb

Constant Summary collapse

RECOMMENDER_TYPES =
[:interesting, :also_bought, :similar, :popular, :see_also, :recently_viewed, :buying_now]

Class Method Summary collapse

Class Method Details

.normalize(params, recommender_type) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/rees46/recommender.rb', line 24

def normalize(params, recommender_type)
  result = params.dup
  result = result.merge(recommender_type: recommender_type)

  [:locations, :categories].each do |key|
    if result[key].present? && result[key].any?
      result[key] = result[key].join(',')
    end
  end

  if params[:cart].present?
    params[:cart].each_with_index do |cart_id, i|
      result["cart[#{i}]"] = cart_id
    end

    result.delete(:cart)
  end

  result
end

.recommend(recommender_type, params) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/rees46/recommender.rb', line 12

def recommend(recommender_type, params)
  raise REES46::NotConfiguredError.new('REES46 should be configured first') unless REES46.configured?
  
  result = REES46::Requester.recommend(normalize(params, recommender_type))

  if result.code == 200
    return result.to_a
  else
    return []
  end
end