class BestBuy::Products

Constants

CONDITIONS
PRODUCTS_API

Public Instance Methods

get_by(conditions) click to toggle source
# File lib/best_buy/products.rb, line 17
def get_by(conditions)
  add_search_conditions_to_query(conditions.except(:pagination))

  pagination = conditions[:pagination] || {}

  get_all(search_query: search_query_builder.build, pagination: pagination)
end

Protected Instance Methods

add_search_conditions_to_query(conditions) click to toggle source
# File lib/best_buy/products.rb, line 43
def add_search_conditions_to_query(conditions)
  applying_conditions = CONDITIONS.map do |condition|
    condition.new(conditions)
  end.select(&:valid?)

  applying_conditions.each do |applying_condition|
    search_query_builder.add(applying_condition.search_query)
  end
end
api_url() click to toggle source
# File lib/best_buy/products.rb, line 35
def api_url
  PRODUCTS_API
end
collection_name() click to toggle source
# File lib/best_buy/products.rb, line 31
def collection_name
  :products
end
model_class() click to toggle source
# File lib/best_buy/products.rb, line 27
def model_class
  Product
end
search_query_builder() click to toggle source
# File lib/best_buy/products.rb, line 39
def search_query_builder
  @search_query_builder ||= SearchQueryBuilder.new
end