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