Class: Operto::AccessTokens::Upsert

Inherits:
Object
  • Object
show all
Includes:
Operation
Defined in:
lib/operto/access_tokens/upsert.rb,
sig/operto.rbs

Overview

Ensures a live access token: reuse the stored one, else refresh, else log in fresh. All persistence/caching/expiry policy lives in the injected token store (Operto.config.token_store).

Constant Summary collapse

OAUTH_ENDPOINT =
'oauth/login'.freeze
REFRESH_ENDPOINT =
'oauth/refresh'.freeze

Instance Method Summary collapse

Methods included from Operation

#call!, included

Instance Method Details

#call::Dry::Monads::Result[untyped]

RBS:

  • () -> Dry::Monads::Result[untyped]

Returns:

  • (::Dry::Monads::Result[untyped])


13
14
15
16
17
18
19
20
# File 'lib/operto/access_tokens/upsert.rb', line 13

def call
  token = store.active
  return Success(token) if token

  attempt_refresh || request_new_token
rescue StandardError => e
  Failure(e)
end