class Lazop::LazopClient
Public Class Methods
new(serverUrl,appkey,appSecret)
click to toggle source
# File lib/LazopClient.rb, line 15 def initialize(serverUrl,appkey,appSecret) @serverUrl,@appkey,@appSecret = serverUrl,appkey,appSecret end
Public Instance Methods
execute(request,accessToken = nil)
click to toggle source
# File lib/LazopClient.rb, line 19 def execute(request,accessToken = nil) sys_params = Hash.new sys_params[:app_key] = @appkey timestamp = request.timestamp if timestamp == nil timestamp = (Time.now.to_f * 1000).to_i end sys_params[:timestamp] = timestamp sys_params[:sign_method] = 'hmac' if accessToken != nil sys_params[:access_token] = accessToken end sys_params[:sign] = sign_api_request(sys_params,request.api_params) rpcUrl = get_rest_url(@serverUrl,request.api_name) fullUrl = get_full_url(rpcUrl,sys_params) obj = nil if request.file_params.size() > 0 || request.http_method == 'POST' obj = perform_post(fullUrl,request.api_params,request.file_params,request.header_params) else obj = perform_get(fullUrl,request.api_params,request.header_params) end puts obj return Lazop::LazopResponse.new(obj['type'],obj['code'],obj['message'],obj['request_id'],obj) end
get_full_url(url,params)
click to toggle source
# File lib/LazopClient.rb, line 118 def get_full_url(url,params) full_url = url param_str = '' params.each do |k,v| if param_str.length() > 0 param_str += '&' end param_str += k.to_s() param_str += '=' param_str += v.to_s() end full_url += '?' full_url += param_str return full_url end
get_rest_url(url,api_name)
click to toggle source
# File lib/LazopClient.rb, line 109 def get_rest_url(url,api_name) length = url.length() if url[length -1] == '/' return url + api_name.index('/'); end return url + api_name; end
perform_get(url,api_params,header_params)
click to toggle source
# File lib/LazopClient.rb, line 52 def perform_get url,api_params,header_params param_str = '' if api_params != nil api_params.each do |k,v| param_str += '&' param_str += k.to_s() param_str += '=' param_str += v.to_s() end end puts url + param_str res = JSON.parse(RestClient.get(url + param_str, header_params)) return res end
perform_post(url, api_params,file_params,header_params)
click to toggle source
# File lib/LazopClient.rb, line 73 def perform_post url, api_params,file_params,header_params all_params = api_params if file_params != nil file_params.each do |k,v| all_params[k] = File.open(v, "rb") end end res = JSON.parse(RestClient.post(url,all_params)) return res end
sign_api_request(sys_params,api_params)
click to toggle source
# File lib/LazopClient.rb, line 87 def sign_api_request(sys_params,api_params) sort_arrays = nil if api_params != nil sort_arrays = sys_params.merge(api_params).sort_by do |k,v| k.to_s() end else sort_arrays = sys_params.sort_by do |k,v| k end end sign_str = '' sort_arrays.each do |k,v| sign_str += k.to_s() sign_str += v.to_s() end return OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('md5'), @appSecret, sign_str).upcase end