class Cobo::Request
Public Class Methods
get(command, params = {} )
click to toggle source
# File lib/cobo/request.rb, line 4 def self.get(command, params = {} ) url = host + command headers = headers(command, 'GET', params) result = RestClient::Request.execute(method: :get, url: url, headers: headers.merge({params: params})) JSON.parse result end
headers(command, method = 'GET', params = {})
click to toggle source
# File lib/cobo/request.rb, line 22 def self.headers(command, method = 'GET', params = {}) nonce = (Time.zone.now.to_f * 1000).to_i.to_s params_str = params.stringify_keys.sort.map{|array| "#{array.first}=#{array.last}" }.join("&") content = [method, command, nonce, params_str].join("|") digest = OpenSSL::Digest.new('sha256') sign = OpenSSL::HMAC.hexdigest(digest, Cobo.secret, content) {"BIZ-API-KEY" => Cobo.key, "BIZ-API-SIGNATURE" => sign, "BIZ-API-NONCE" => nonce} end
host()
click to toggle source
# File lib/cobo/request.rb, line 18 def self.host Cobo.sandbox ? "https://api.sandbox.cobo.com" : "https://api.custody.cobo.com" end
post( command, params = {} )
click to toggle source
# File lib/cobo/request.rb, line 11 def self.post( command, params = {} ) url = host + command headers = headers(command, 'POST', params) result = RestClient::Request.execute(method: :post, url: url, payload: params, headers: headers) JSON.parse result end