module QuestradeClient

Constants

USER_AGENT
VERSION

Public Class Methods

login(refresh_token, practice = false) click to toggle source
# File lib/questrade_client/client.rb, line 8
  def self.login(refresh_token, practice = false)
    url = if practice
      "https://practicelogin.questrade.com/oauth2/"
    else
      "https://login.questrade.com/oauth2/"
    end

    conn = Faraday.new @endpoint do |f|
        f.headers[:user_agent] = QuestradeClient::USER_AGENT
        f.headers['Content-length'] = '0'
        f.response :json, content_type: /\bjson$/
        f.adapter Faraday.default_adapter
      end
    endpoint = "#{url}token?grant_type=refresh_token&refresh_token=#{refresh_token}"
    r = conn.send(:post, endpoint)

    if r.success?
#      puts "New refresh token: #{r.body['refresh_token']}"
      endpoint = r.body['api_server']
      token = r.body['access_token']
      return Client.new(endpoint: endpoint, token: token)
    else
#      puts "Login failed!"
#      puts r.body
      return nil
    end
  end