Class: QuestradeApi::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/questrade_api/client.rb

Overview

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}, mode = :practice) ⇒ Client

Returns a new instance of Client.

See Also:



19
20
21
22
# File 'lib/questrade_api/client.rb', line 19

def initialize(params = {}, mode = :practice)
  @authorization = QuestradeApi::Authorization.new(params, mode)
  refresh_token if refresh_token?
end

Instance Attribute Details

#authorizationObject (readonly)

Returns the value of attribute authorization.



16
17
18
# File 'lib/questrade_api/client.rb', line 16

def authorization
  @authorization
end

Instance Method Details

#accountsArray<QuestradeApi::REST::Account>

Fetch all accounts associated with user.

Returns:



43
44
45
# File 'lib/questrade_api/client.rb', line 43

def accounts
  QuestradeApi::REST::.all(@authorization).accounts
end

#activities(account_id, params = {}) ⇒ Object



69
70
71
# File 'lib/questrade_api/client.rb', line 69

def activities(, params = {})
  QuestradeApi::REST::Activity.all(@authorization, , params)
end

#balances(account_id) ⇒ OpenStruct(per_currency_balances)

Fetch all balances associated with account.

Parameters:

  • account_id (String)

    to which balances will be fetched.

Returns:

  • (OpenStruct(per_currency_balances))


61
62
63
# File 'lib/questrade_api/client.rb', line 61

def balances()
  QuestradeApi::REST::Balance.all(@authorization, )
end

#executions(account_id, params = {}) ⇒ Object



65
66
67
# File 'lib/questrade_api/client.rb', line 65

def executions(, params = {})
  QuestradeApi::REST::Execution.all(@authorization, , params)
end

#marketsObject



77
78
79
# File 'lib/questrade_api/client.rb', line 77

def markets
  QuestradeApi::REST::Market.all(@authorization)
end

#orders(account_id, params = {}) ⇒ Object



73
74
75
# File 'lib/questrade_api/client.rb', line 73

def orders(, params = {})
  QuestradeApi::REST::Activity.all(@authorization, , params)
end

#positions(account_id) ⇒ Array<QuestradeApi::REST::Position>

Fetch all positions associated with account.

Parameters:

  • account_id (String)

    to which positions will be fetched.

Returns:



52
53
54
# File 'lib/questrade_api/client.rb', line 52

def positions()
  QuestradeApi::REST::Position.all(@authorization, ).positions
end

#refresh_tokenObject

Fetches a new access_token. (see QuestradeApi::Authorization#refresh_token)



25
26
27
# File 'lib/questrade_api/client.rb', line 25

def refresh_token
  @authorization.refresh_token
end

#search_symbols(params) ⇒ Object



85
86
87
# File 'lib/questrade_api/client.rb', line 85

def search_symbols(params)
  QuestradeApi::REST::Symbol.search(@authorization, params)
end

#symbols(params) ⇒ Object



81
82
83
# File 'lib/questrade_api/client.rb', line 81

def symbols(params)
  QuestradeApi::REST::Symbol.all(@authorization, params)
end

#timeDateTime?

Fetch current server time.

Returns:

  • (DateTime)

    if no issues to call /time endpoint occurs.

  • (nil)

    if current server time cannot be fetched.



33
34
35
36
37
38
# File 'lib/questrade_api/client.rb', line 33

def time
  time = QuestradeApi::REST::Time.new(@authorization)
  time.get

  time.data && time.data.time
end