class QuestradeApi::REST::Position

Public Class Methods

endpoint(account_id) click to toggle source
# File lib/questrade_api/rest/position.rb, line 27
def self.endpoint(account_id)
  "#{BASE_ENDPOINT}/accounts/#{account_id}/positions"
end
fetch(authorization, account_number) click to toggle source
Calls superclass method QuestradeApi::REST::Base#fetch
# File lib/questrade_api/rest/position.rb, line 13
def self.fetch(authorization, account_number)
  response = super(access_token: authorization.access_token,
                   endpoint: endpoint(account_number),
                   url: authorization.url)

  result = OpenStruct.new(positions: [])

  if response.status == 200
    result.positions = parse_positions(account_number, response.body)
  end

  result
end
new(params) click to toggle source
# File lib/questrade_api/rest/position.rb, line 6
def initialize(params)
  @account_id = params[:account_id]

  @raw_body = params[:data]
  build_data(params[:data]) if @raw_body
end

Private Class Methods

parse_positions(account_id, body) click to toggle source
# File lib/questrade_api/rest/position.rb, line 31
def self.parse_positions(account_id, body)
  raw = JSON.parse(body)

  positions = []

  raw['positions'].each do |position|
    positions << new(account_id: account_id, data: position)
  end

  positions
end