class Webull::Account
Public Class Methods
new(params = {})
click to toggle source
# File lib/webull/account.rb, line 7 def initialize(params = {}) @tokens = params[:tokens] || raise('API tokens not provided') @udid = params[:udid] || raise('Device ID (udid) not provided') end
Public Instance Methods
account_id()
click to toggle source
# File lib/webull/account.rb, line 22 def account_id return @account_id if @account_id resp = HTTParty.get( 'https://tradeapi.webullbroker.com/api/trade/account/getSecAccountList/v4', headers: headers ) raise("Account ID request failed: #{resp.code}") unless resp.success? raise("Account ID error received: #{resp['msg']}") unless resp['success'] @account_id = resp['data'].first['secAccountId'] end
orders(params = {})
click to toggle source
# File lib/webull/account.rb, line 33 def orders(params = {}) HTTParty.get( 'https://tradeapi.webullbroker.com/api/trade/v2/option/list', query: { secAccountId: account_id }.merge(params), headers: headers ) end
refresh()
click to toggle source
# File lib/webull/account.rb, line 12 def refresh resp = HTTParty.post( 'https://userapi.webull.com/api/passport/refreshToken', query: { refreshToken: @tokens.refresh }, headers: headers ) raise("Refresh request failed: #{resp.code}") unless resp.success? @tokens = Tokens.from_resp(resp) end
Private Instance Methods
headers()
click to toggle source
# File lib/webull/account.rb, line 43 def headers { 'did' => @udid, 'access_token' => @tokens.access, 'Accept' => '*/*', 'Accept-Encoding' => 'gzip, deflate', 'Content-Type' => 'application/json' } end