class DeGiro::GetPortfolio

Public Class Methods

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

Public Instance Methods

get_portfolio() click to toggle source
# File lib/degiro_client/get_portfolio.rb, line 9
def get_portfolio
  params = URI.encode_www_form(portfolio: 0)
  parse_portfolio(JSON.parse(@connection.get(url(params)).body))
end

Private Instance Methods

parse_portfolio(response) click to toggle source
# File lib/degiro_client/get_portfolio.rb, line 16
def parse_portfolio(response)
  portfolio = response['portfolio']['value'].map do |order|
    {
      size:       order['value'].find { |field| field['name'] == 'size' }['value'],
      value:      order['value'].find { |field| field['name'] == 'price' }['value'],
      product_id: order['value'].find { |field| field['name'] == 'id' }['value'].to_s
    }
  end
  portfolio.select { |entry| entry[:size] > 0 }
end
url(params) click to toggle source
# File lib/degiro_client/get_portfolio.rb, line 27
def url(params)
  "#{@connection.urls_map['trading_url']}/v5/update/" \
  "#{@connection.user_data['int_account']};jsessionid=#{@connection.session_id}" \
  "?#{params}"
end