class BaiduPush::Request
Constants
- HTTP_METHOD
Attributes
client[R]
Public Class Methods
new(client)
click to toggle source
# File lib/baidu_push/request.rb, line 13 def initialize(client) @client = client set_base_uri end
Public Instance Methods
fetch(method, params = {})
click to toggle source
# File lib/baidu_push/request.rb, line 19 def fetch(method, params = {}) params.merge!({method: method, apikey: @client.api_key, timestamp: Time.now.to_i}) sign = generate_sign(params) params.merge!({ sign: sign }) options = { body: params } self.class.send(HTTP_METHOD, "/#{@client.resource}", options) end
generate_sign(sign_params)
click to toggle source
# File lib/baidu_push/request.rb, line 30 def generate_sign(sign_params) params_string = sign_params.sort.map{ |h| h.join('=') }.join gather = "#{HTTP_METHOD.to_s.upcase}#{self.class.base_uri}/#{@client.resource}#{params_string}#{@client.secret_key}" Digest::MD5.hexdigest(URI::encode_www_form_component(gather)) end
Private Instance Methods
set_base_uri()
click to toggle source
# File lib/baidu_push/request.rb, line 38 def set_base_uri self.class.base_uri "#{@client.api_url}" end