class Polar::Request
Attributes
response[R]
Public Class Methods
new(api_key, secret_key, session_key, params)
click to toggle source
# File lib/polar/request.rb, line 11 def initialize(api_key, secret_key, session_key, params) @api_key, @session_key, @secret_key = api_key, session_key, secret_key conn = Faraday.new(:url => Polar::BASE_URL) do |c| c.use Faraday::Request::UrlEncoded c.use Faraday::Adapter::NetHttp end conn.headers["Content-Type"] = ["application/x-www-form-urlencoded"]; params[:api_key] = @api_key params[:call_id] = Time.now.to_i params[:session_key] = @session_key params[:format] = "JSON" params[:sig] = SignatureCalculator.new(@secret_key).calculate(params) raw_response = conn.post do |request| request.body = urlencode_params(params) end raise Polar::Error::HTTPError.new(raw_response.status) if (400..599).include?(raw_response.status) @response = JSON.parse(raw_response.body) raise Polar::Error::APIError.new(@response) if renren_api_error? end
Private Instance Methods
renren_api_error?()
click to toggle source
# File lib/polar/request.rb, line 63 def renren_api_error? return false if @response.class == Array @response.has_key?("error_code") && @response.has_key?("error_msg") end
urlencode_params(params_hash)
click to toggle source
# File lib/polar/request.rb, line 37 def urlencode_params(params_hash) params = '' stack = [] params_hash.each do |k, v| if v.is_a?(Hash) stack << [k,v] else params << "#{k}=#{v}&" end end stack.each do |parent, hash| hash.each do |k, v| if v.is_a?(Hash) stack << ["#{parent}[#{k}]", v] else params << "#{parent}[#{k}]=#{v}&" end end end params.chop! # trailing & params end