Class: TRMNLP::OAuth::Session

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

Instance Method Summary collapse

Constructor Details

#initialize(provider:, token_store:, client:) ⇒ Session

Returns a new instance of Session.



8
9
10
11
12
# File 'lib/trmnlp/oauth/session.rb', line 8

def initialize(provider:, token_store:, client:)
  @provider = provider
  @token_store = token_store
  @client = client
end

Instance Method Details

#access_tokenObject



25
# File 'lib/trmnlp/oauth/session.rb', line 25

def access_token = current_bundle&.access_token

#authorize_url(redirect_uri:, state:, code_challenge: nil) ⇒ Object



38
39
40
# File 'lib/trmnlp/oauth/session.rb', line 38

def authorize_url(redirect_uri:, state:, code_challenge: nil)
  client.authorize_url(redirect_uri:, state:, code_challenge:)
end

#complete(code:, redirect_uri:, code_verifier: nil) ⇒ Object



42
43
44
# File 'lib/trmnlp/oauth/session.rb', line 42

def complete(code:, redirect_uri:, code_verifier: nil)
  token_store.write(client.exchange_code(code:, redirect_uri:, code_verifier:))
end

#configured?Boolean

Returns:

  • (Boolean)


14
# File 'lib/trmnlp/oauth/session.rb', line 14

def configured? = provider.configured?

#connected?Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
# File 'lib/trmnlp/oauth/session.rb', line 18

def connected?
  return false unless configured?

  stored = token_store.read
  !stored.nil? && !stored.access_token.nil?
end

#disconnectObject



46
# File 'lib/trmnlp/oauth/session.rb', line 46

def disconnect = token_store.clear

#liquid_variablesObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/trmnlp/oauth/session.rb', line 27

def liquid_variables
  return {} unless connected?

  bundle = current_bundle
  {
    'oauth_access_token' => bundle.access_token,
    'oauth_token_type' => bundle.token_type,
    'oauth_client_id' => provider.client_id
  }
end

#pkce?Boolean

Returns:

  • (Boolean)


16
# File 'lib/trmnlp/oauth/session.rb', line 16

def pkce? = provider.pkce?