class Kin::Client

Attributes

apikey[RW]

Public Class Methods

new(apikey) click to toggle source
# File lib/kin.rb, line 21
def initialize(apikey)
  @apikey = apikey.to_s
end

Public Instance Methods

active_sales() click to toggle source
# File lib/kin.rb, line 25
def active_sales
  sales = make_request(Kin.domain + "sales/active.json")['sales']
  sales.each_with_index do |sale, i|
    sales[i] = Kin::Sale.new(sale)
  end
  sales
end
active_sales_in_store(store_key) click to toggle source
# File lib/kin.rb, line 33
def active_sales_in_store(store_key)
  raise "Invalid Store Key" unless validate_store_key(store_key)
  make_request(Kin.domain + "sales/" + store_key + "/active.json")
end
product_detail(product_id) click to toggle source
# File lib/kin.rb, line 52
def product_detail(product_id)
  make_request(Kin.domain + "products/" + product_id.to_s + "/detail.json")
end
product_detail_from_url(url) click to toggle source
# File lib/kin.rb, line 56
def product_detail_from_url(url)
  raise 'Invalid URL' unless validate_url(url)
  make_request(url)
end
sale_detail(store_key, sale_key) click to toggle source
# File lib/kin.rb, line 47
def sale_detail(store_key, sale_key)
  raise "Invalid Store Key" unless validate_store_key(store_key)
  make_request(Kin.domain + "sales/" + store_key + "/" + sale_key + "/detail.json")
end
upcoming_sales() click to toggle source
# File lib/kin.rb, line 38
def upcoming_sales
  make_request(Kin.domain + "sales/upcoming.json")
end
upcoming_sales_in_store(store_key) click to toggle source
# File lib/kin.rb, line 42
def upcoming_sales_in_store(store_key)
  raise "Invalid Store Key" unless validate_store_key(store_key)
  make_request(Kin.domain + "sales/" + store_key + "/upcoming.json")
end

Private Instance Methods

make_request(url_string) click to toggle source
# File lib/kin.rb, line 63
def make_request(url_string)
  url = URI.parse(url_string)
  
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true if url.scheme == 'https'
  
  request = Net::HTTP::Get.new(url.path + '?apikey=' + @apikey)
  # request.set_form_data(params)
  JSON.parse(http.request(request).body)
end
validate_store_key(store_key) click to toggle source
# File lib/kin.rb, line 74
def validate_store_key(store_key) 
  Kin.stores.include?(store_key) 
end
validate_url(url) click to toggle source
# File lib/kin.rb, line 78
def validate_url(url)
  url =~ /^#{Regexp.quote(Kin.domain + "products/")}\w+#{Regexp.quote('/detail.json')}$/
end