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