class Promobox
Constants
- API_URL
- API_VERSION
Public Class Methods
new(api_key, login, password)
click to toggle source
# File lib/promobox.rb, line 14 def initialize(api_key, login, password) @api_key = api_key @login = login @password = password @hash_password = Digest::MD5.digest("#{@password}{#{@api_key}}").unpack('H*').first end
Public Instance Methods
coupon(id)
click to toggle source
# File lib/promobox.rb, line 28 def coupon(id) url = build_query("#{__method__}/#{id}") decode_url(url) end
shop(id)
click to toggle source
# File lib/promobox.rb, line 33 def shop(id) url = build_query("#{__method__}/#{id}") decode_url(url) end
Private Instance Methods
build_query(action, params = {})
click to toggle source
# File lib/promobox.rb, line 47 def build_query(action, params = {}) ts = Time.now.to_i token = Base64.encode64(Digest::SHA1.digest("#{@hash_password}#{ts}#{@api_key}")).chomp query = { ts: ts.to_s, login: @login, token: token } auth_params = URI.encode_www_form query encoded_params = URI.encode_www_form params url = "#{API_URL}/#{action}?#{auth_params}" url += "&#{encoded_params}" unless params.nil? || params.empty? url end
decode_url(url)
click to toggle source
# File lib/promobox.rb, line 40 def decode_url(url) response = Kernel.open(url) MultiJson.decode(response) rescue nil end