class DeGiro::GetTransactions
Public Class Methods
new(connection)
click to toggle source
# File lib/degiro_client/get_transactions.rb, line 6 def initialize(connection) @connection = connection end
Public Instance Methods
get_transactions(from: (Date.zone.today - (365 * 5)).strftime('%d/%m/%Y'), to: Date.zone.today.strftime('%d/%m/%Y'))
click to toggle source
# File lib/degiro_client/get_transactions.rb, line 10 def get_transactions(from: (Date.zone.today - (365 * 5)).strftime('%d/%m/%Y'), to: Date.zone.today.strftime('%d/%m/%Y')) params = URI.encode_www_form(fromDate: from, toDate: to) parse_transactions(JSON.parse(@connection.get(url(params)).body)) end
Private Instance Methods
parse_transactions(response)
click to toggle source
# File lib/degiro_client/get_transactions.rb, line 17 def parse_transactions(response) response['data'] .sort_by { |transaction| transaction['date'] } .reverse .map do |transaction| { id: transaction['id'], type: transaction['buysell'], size: transaction['quantity'].abs, price: transaction['price'], product_id: transaction['productId'].to_s } end end
url(params)
click to toggle source
# File lib/degiro_client/get_transactions.rb, line 32 def url(params) "#{@connection.urls_map['reporting_url']}/v4/transactions" \ '?orderId=&product=&groupTransactionsByOrder=false' \ "&intAccount=#{@connection.user_data['int_account']}" \ "&sessionId=#{@connection.session_id}" \ "&#{params}" end