class QuestradeApi::REST::Symbol
Public Class Methods
endpoint(extra = '')
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 29 def self.endpoint(extra = '') "#{BASE_ENDPOINT}/symbols/#{extra}" end
fetch(authorization, params = {})
click to toggle source
Calls superclass method
QuestradeApi::REST::Base#fetch
# File lib/questrade_api/rest/symbol.rb, line 42 def self.fetch(authorization, params = {}) params[:ids] = params[:ids].join(',') if params[:ids] params[:names] = params[:names].join(',') if params[:names] response = super(access_token: authorization.access_token, endpoint: endpoint, url: authorization.url, params: params) build_symbols(authorization, response) end
new(authorization, params = {})
click to toggle source
Calls superclass method
QuestradeApi::REST::Base::new
# File lib/questrade_api/rest/symbol.rb, line 6 def initialize(authorization, params = {}) super(authorization) @id = params[:id] @raw_body = params[:data] build_data(params[:data]) if @raw_body end
search(authorization, params = {})
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 33 def self.search(authorization, params = {}) response = superclass.fetch(access_token: authorization.access_token, endpoint: endpoint('search'), url: authorization.url, params: params) build_symbols(authorization, response) end
Private Class Methods
build_symbols(authorization, response)
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 64 def self.build_symbols(authorization, response) result = response if response.status == 200 result = OpenStruct.new(symbols: []) result.symbols = parse_symbols(authorization, response.body) end result end
parse_symbols(authorization, body)
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 75 def self.parse_symbols(authorization, body) raw = JSON.parse(body) symbols = [] results = raw['symbols'] || raw['symbol'] if results results.each do |symbol| symbols << new(authorization, id: symbol['symbolId'], data: symbol) end end symbols end
Public Instance Methods
endpoint()
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 25 def endpoint self.class.endpoint + "#{id}" end
fetch()
click to toggle source
Calls superclass method
QuestradeApi::REST::Base#fetch
# File lib/questrade_api/rest/symbol.rb, line 15 def fetch response = super(endpoint: endpoint) if response.status == 200 parse_symbols(response.body) end response end
Private Instance Methods
parse_symbols(body)
click to toggle source
# File lib/questrade_api/rest/symbol.rb, line 56 def parse_symbols(body) raw = JSON.parse(body) raw['symbols'].each do |symbol| build_data(symbol) end end