class Vaultoro::TradingAPI::Client

Public Class Methods

get(endpoint, params = {}) click to toggle source
# File lib/vaultoro/trading_api/client.rb, line 9
def self.get(endpoint, params = {})
  begin
    uri = URI.parse([Vaultoro.api_uri, "/#{Vaultoro.api_version.to_s}", endpoint].join)
    params.merge!(nonce: nonce, apikey: Vaultoro.api_key)
    uri.query = URI.encode_www_form(params)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = uri.scheme == 'https'
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    headers.merge!("X-Signature" => signature)
    request = Net::HTTP::Get.new(uri, headers)
    response = http.request(request)
  rescue StandardError => error
    puts "Request failed (#{error.message})"
  end
end
post(endpoint, params = {}) click to toggle source
# File lib/vaultoro/trading_api/client.rb, line 25
def self.post(endpoint, params = {})
  begin
    uri = URI.parse([Vaultoro.api_uri, endpoint].join)
    params.merge!(nonce: nonce, apikey: Vaultoro.api_key)
    uri.query = URI.encode_www_form(params)
    # body = URI.encode_www_form(params)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = uri.scheme == 'https'
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    headers.merge!("X-Signature" => signature)
    request = Net::HTTP::Post.new(uri, headers)
    request.add_field "Content-Type", "application/x-www-form-urlencoded"
    # request.body = body
    response = http.request(request)
  rescue StandardError => error
    puts "Request failed (#{error.message})"
  end
end

Private Instance Methods

headers() click to toggle source
# File lib/vaultoro/trading_api/client.rb, line 46
def headers
  { 'User-Agent' => Vaultoro::VERSION::SUMMARY, 'Accept' => 'application/json' }
end
nonce() click to toggle source
# File lib/vaultoro/trading_api/client.rb, line 54
def nonce
  Time.to_i
end
signature(uri) click to toggle source
# File lib/vaultoro/trading_api/client.rb, line 50
def signature(uri)
  OpenSSL::HMAC.hexdigest('sha256', Vaultoro.api_secret, uri.to_s)
end