Class: DeGiro::Connection
- Inherits:
-
Object
- Object
- DeGiro::Connection
- Extended by:
- Forwardable
- Defined in:
- lib/degiro/connection.rb
Constant Summary collapse
- BASE_TRADER_URL =
'https://trader.degiro.nl'.freeze
Instance Attribute Summary collapse
-
#session_id ⇒ Object
readonly
Returns the value of attribute session_id.
-
#urls_map ⇒ Object
readonly
Returns the value of attribute urls_map.
-
#user_data ⇒ Object
readonly
Returns the value of attribute user_data.
Instance Method Summary collapse
-
#initialize(login, password) ⇒ Connection
constructor
A new instance of Connection.
Constructor Details
#initialize(login, password) ⇒ Connection
Returns a new instance of Connection.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/degiro/connection.rb', line 18 def initialize(login, password) @conn = Faraday.new(url: BASE_TRADER_URL) do |builder| builder.use :cookie_jar builder.use Faraday::Response::RaiseError builder.adapter Faraday.default_adapter end response = @conn.post('/login/secure/login') do |req| req.headers['Content-Type'] = 'application/json' req.body = { username: login, password: password, isPassCodeReset: false, isRedirectToMobile: false, queryParams: { reason: 'session_expired' } }.to_json end @session_id = response.headers['set-cookie'][/JSESSIONID=(.*?);/m, 1] raise MissingSessionIdError, 'Could not find valid session id' if @session_id == '' || @session_id.nil? @urls_map = UrlsMap.new(JSON.parse(@conn.get('/login/secure/config').body)) @user_data = UserData.new(JSON.parse(@conn.get("#{@urls_map['pa_url']}/client?sessionId=#{@session_id}").body)['data']) end |
Instance Attribute Details
#session_id ⇒ Object (readonly)
Returns the value of attribute session_id.
14 15 16 |
# File 'lib/degiro/connection.rb', line 14 def session_id @session_id end |
#urls_map ⇒ Object (readonly)
Returns the value of attribute urls_map.
14 15 16 |
# File 'lib/degiro/connection.rb', line 14 def urls_map @urls_map end |
#user_data ⇒ Object (readonly)
Returns the value of attribute user_data.
14 15 16 |
# File 'lib/degiro/connection.rb', line 14 def user_data @user_data end |