class QuestradeApi::REST::Quote

Public Class Methods

endpoint() click to toggle source
# File lib/questrade_api/rest/quote.rb, line 43
def self.endpoint
  "#{BASE_ENDPOINT}/markets/quotes"
end
fetch(authorization, ids) click to toggle source
Calls superclass method QuestradeApi::REST::Base#fetch
# File lib/questrade_api/rest/quote.rb, line 24
def self.fetch(authorization, ids)
  response = super(access_token: authorization.access_token,
                   endpoint: endpoint,
                   url: authorization.url,
                   params: { ids: ids.join(',') })

  if response.status == 200
    result = OpenStruct.new(quotes: [])
    result.quotes = parse_quotes(authorization, response.body)
    response = result
  end

  response
end
new(params) click to toggle source
Calls superclass method QuestradeApi::REST::Base::new
# File lib/questrade_api/rest/quote.rb, line 6
def initialize(params)
  super(params[:authorization])
  @id = params[:id]

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

Private Class Methods

parse_quotes(authorization, body) click to toggle source
# File lib/questrade_api/rest/quote.rb, line 47
def self.parse_quotes(authorization, body)
  raw = JSON.parse(body)

  quotes = []

  raw['quotes'].each do |quote|
    quotes << new(authorization: authorization,
                  id: quote['symbolId'], data: quote)
  end

  quotes
end

Public Instance Methods

endpoint() click to toggle source
# File lib/questrade_api/rest/quote.rb, line 39
def endpoint
  self.class.endpoint + "/#{id}"
end
fetch() click to toggle source
Calls superclass method QuestradeApi::REST::Base#fetch
# File lib/questrade_api/rest/quote.rb, line 14
def fetch
  response = super(endpoint: endpoint)

  if response.status == 200
    parse_quotes(response.body)
  end

  response
end

Private Instance Methods

parse_quotes(body) click to toggle source
# File lib/questrade_api/rest/quote.rb, line 64
def parse_quotes(body)
  raw = JSON.parse(body)

  raw['quotes'].each do |quote|
    build_data(quote)
  end
end