Module: Arcp::Credentials

Defined in:
lib/arcp/credential_provisioner.rb

Defined Under Namespace

Classes: CredentialStore, InMemoryProvisioner, InMemoryStore

Constant Summary collapse

BUDGET_EXHAUSTED_CODES =
%w[BUDGET_EXHAUSTED budget_exhausted insufficient_quota].freeze

Class Method Summary collapse

Class Method Details

.budget_exhausted?(error) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
# File 'lib/arcp/credential_provisioner.rb', line 29

def self.budget_exhausted?(error)
  code = error.respond_to?(:code) ? error.code.to_s : nil
  status = error.respond_to?(:status) ? error.status.to_i : nil
  BUDGET_EXHAUSTED_CODES.include?(code) || status == 402
end

.translate_upstream_error(error) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/arcp/credential_provisioner.rb', line 20

def self.translate_upstream_error(error)
  return error unless budget_exhausted?(error)

  Arcp::Errors::BudgetExhausted.new(
    error.message,
    details: { 'upstream_class' => error.class.name }
  )
end