class DeGiro::FindProductById

Public Class Methods

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

Public Instance Methods

find_product_by_id(id:) click to toggle source
# File lib/degiro_client/find_product_by_id.rb, line 9
def find_product_by_id(id:)
  parse_product(JSON.parse(find_by_id(id).body))
end

Private Instance Methods

find_by_id(product_id) click to toggle source
# File lib/degiro_client/find_product_by_id.rb, line 15
def find_by_id(product_id)
  @connection.post(url) do |req|
    req.headers['Content-Type'] = 'application/json; charset=UTF-8'
    req.body = [product_id].to_json
  end
end
parse_product(response) click to toggle source
# File lib/degiro_client/find_product_by_id.rb, line 22
def parse_product(response)
  {
    id:          response['data'].values[0]['id'].to_s,
    ticker:      response['data'].values[0]['symbol'].to_s,
    exchange_id: response['data'].values[0]['exchangeId'].to_s,
    isin:        response['data'].values[0]['isin'].to_s
  }
end
url() click to toggle source
# File lib/degiro_client/find_product_by_id.rb, line 31
def url
  "#{@connection.urls_map['product_search_url']}/v5/products/info" \
  "?intAccount=#{@connection.user_data['int_account']}" \
  "&sessionId=#{@connection.session_id}"
end