class OKEX::API::Base

Attributes

config[R]
key[R]
secret[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/okex/api/base.rb, line 12
def initialize(args = {})
  @config = OKEX::API::Config.new(args.dig(:config))
  @key = args.dig(:key)
  @secret = args.dig(:secret)
end

Protected Instance Methods

send_request(method, path, headers, query) click to toggle source
# File lib/okex/api/base.rb, line 20
def send_request(method, path, headers, query)
  uuid = SecureRandom.uuid
  print_log(:info, "[API] #{uuid} #{method.upcase} '#{path}' query = #{query}")

  if method == :get
    body_or_query = :query
  else
    body_or_query = :body
    query = query.to_json
  end

  begin
    response = self.class.send(
      method, 
      path, 
      headers: headers,
      timeout: @config.timeout,
      body_or_query.to_sym => query
    )

    print_log(:info, "[API] #{uuid} response #{response}")
    return parse_response(response)
  rescue => error
    print_log(:error, "[API] #{uuid} raise exception #{error.message}")
    raise error
  end
end

Private Instance Methods

parse_response(response) click to toggle source
# File lib/okex/api/base.rb, line 50
def parse_response(response)
  response.parsed_response.symbolize_keys
end
print_log(method, message) click to toggle source