class DeGiro::GetOrders

Public Class Methods

new(connection) click to toggle source
# File lib/degiro_client/get_orders.rb, line 5
def initialize(connection)
  @connection = connection
end

Public Instance Methods

get_orders() click to toggle source
# File lib/degiro_client/get_orders.rb, line 9
def get_orders
  params = URI.encode_www_form(orders: 0, historicalOrders: 0, transactions: 0)
  parse_orders(JSON.parse(@connection.get(url(params)).body))
end

Private Instance Methods

parse_orders(response) click to toggle source
# File lib/degiro_client/get_orders.rb, line 16
def parse_orders(response)
  response['orders']['value'].map do |order|
    {
      id:         order['id'],
      type:       order['value'].find { |field| field['name'] == 'buysell' }['value'],
      size:       order['value'].find { |field| field['name'] == 'size' }['value'],
      price:      order['value'].find { |field| field['name'] == 'price' }['value'],
      product_id: order['value'].find { |field| field['name'] == 'productId' }['value'].to_s,
      product:    order['value'].find { |field| field['name'] == 'product' }['value']
    }
  end
end
url(params) click to toggle source
# File lib/degiro_client/get_orders.rb, line 29
def url(params)
  "#{@connection.urls_map['trading_url']}/v5/update/" \
  "#{@connection.user_data['int_account']};jsessionid=#{@connection.session_id}" \
  "?#{params}"
end