class TopDMC::Resources::Base

Public Class Methods

new(client) click to toggle source
# File lib/topdmc/resources/base.rb, line 13
def initialize(client)
  @client = client
end

Private Instance Methods

perform_request(request_method, path, params={}) click to toggle source
# File lib/topdmc/resources/base.rb, line 18
def perform_request(request_method, path, params={})

  # 处理请求参数
  base_params ={
      timestamp: Time.now.to_i,
      nonce: nonce,
      client_id: @client.client_id
  }

  # get请求合并参数
  if request_method=='GET' then
    base_params.merge! params
  end

  base_params[:sign] = sign(request_method,path,base_params,@client.client_secure)

  # 处理请求地址
  path = "#{@client.url}#{path}"

  payload={}
  payload = params if request_method=='POST'

  begin
    response = RestClient::Request.execute(
        method: request_method,
        url: path,
        headers: {
            params: base_params,
            payload: payload,
            user_agent: @client.user_agent,
            :content_type => :json,
            :accept => :json}
    )
    return JSON.parse(response.body)
  rescue => e
    begin
      return JSON.parse(e.response.body)
    rescue => ex
      raise ex
    end
  end
end