Class: Coyodlee::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/coyodlee/session.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_facade:, session_authorization:) ⇒ Session

Returns a new instance of Session.



19
20
21
22
# File 'lib/coyodlee/session.rb', line 19

def initialize(request_facade:, session_authorization:)
  @api = request_facade
  @authorization = session_authorization
end

Instance Attribute Details

#authorizationObject (readonly)

Returns the value of attribute authorization.



7
8
9
# File 'lib/coyodlee/session.rb', line 7

def authorization
  @authorization
end

#session_token_klass=(value) ⇒ Object (writeonly)

Sets the attribute session_token_klass

Parameters:

  • value

    the value to set the attribute session_token_klass to.



8
9
10
# File 'lib/coyodlee/session.rb', line 8

def session_token_klass=(value)
  @session_token_klass = value
end

Class Method Details

.create(request_facade) ⇒ Object



11
12
13
14
15
16
# File 'lib/coyodlee/session.rb', line 11

def create(request_facade)
  new(request_facade: request_facade,
      session_authorization: SessionAuthorization.new).tap do |session|
    session.session_token_klass = SessionToken
  end
end

Instance Method Details

#login_cobrand(login_name:, password:) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/coyodlee/session.rb', line 24

def (login_name:, password:)
  @api.(login_name: ,
                     password: password).tap do |res|
    body = JSON.parse(res.body)
    token = body.dig('session', 'cobSession')
    @authorization.authorize_cobrand(@session_token_klass.new(token))
    @api.authorize(@authorization)
  end
end

#login_user(login_name:, password:) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/coyodlee/session.rb', line 34

def (login_name:, password:)
  @api.(login_name: ,
                  password: password).tap do |res|
    body = JSON.parse(res.body)
    token = body.dig('user', 'session', 'userSession')
    @authorization.authorize_user(@session_token_klass.new(token))
    @api.authorize(@authorization)
  end
end