Class: BaiduPush::Request

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/baidu_push/request.rb

Constant Summary collapse

HTTP_METHOD =
:post

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Request

Returns a new instance of Request.



13
14
15
16
17
# File 'lib/baidu_push/request.rb', line 13

def initialize(client)
  @client = client

  set_base_uri
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



11
12
13
# File 'lib/baidu_push/request.rb', line 11

def client
  @client
end

Instance Method Details

#fetch(method, params = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# 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) ⇒ Object



30
31
32
33
34
35
# 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