module OandaApiV20::Orders

Public Instance Methods

order(*args) click to toggle source

POST /v3/accounts/:account_id/orders GET /v3/accounts/:account_id/orders/:order_id PUT /v3/accounts/:account_id/orders/:order_id PUT /v3/accounts/:account_id/orders/:order_id/clientExtensions PUT /v3/accounts/:account_id/orders/:order_id/cancel

# File lib/oanda_api_v20/orders.rb, line 9
def order(*args)
  id_or_options = args.shift
  id_or_options.is_a?(Hash) ? options = id_or_options : id = id_or_options
  options = args.shift unless args.nil? || args.empty?

  url = id ? "#{base_uri}/accounts/#{account_id}/orders/#{id}" : "#{base_uri}/accounts/#{account_id}/orders"
  url = order_url_for_put(url, options) if http_verb == :put

  options ? Client.send(http_verb, url, headers: headers, body: options.to_json) : Client.send(http_verb, url, headers: headers)
end
orders(options = {}) click to toggle source

GET /v3/accounts/:account_id/orders

# File lib/oanda_api_v20/orders.rb, line 21
def orders(options = {})
  Client.send(http_verb, "#{base_uri}/accounts/#{account_id}/orders", headers: headers, query: options)
end
pending_orders() click to toggle source

GET /v3/accounts/:account_id/pendingOrders

# File lib/oanda_api_v20/orders.rb, line 26
def pending_orders
  Client.send(http_verb, "#{base_uri}/accounts/#{account_id}/pendingOrders", headers: headers)
end

Private Instance Methods

order_url_for_put(url, options = nil) click to toggle source
# File lib/oanda_api_v20/orders.rb, line 32
def order_url_for_put(url, options = nil)
  return "#{url}/cancel" unless options
  return "#{url}/clientExtensions" if options['clientExtensions'] || options['tradeClientExtensions']
  return url if options['order']
  return url
end