Exception: Safire::Errors::TokenError

Inherits:
Error
  • Object
show all
Defined in:
lib/safire/errors.rb

Overview

Raised for token exchange or refresh failures.

Two usage paths: - HTTP failure: provide status, error_code, and/or error_description - Structural failure (missing access_token): provide received_fields

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil) ⇒ TokenError

Returns a new instance of TokenError.



120
121
122
123
124
125
126
# File 'lib/safire/errors.rb', line 120

def initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil)
  @status            = status
  @error_code        = error_code
  @error_description = error_description
  @received_fields   = received_fields
  super(build_message)
end

Instance Attribute Details

#error_codeString? (readonly)

Returns OAuth2 error field (e.g. +“invalid_grant”+).

Returns:

  • (String, nil)

    OAuth2 error field (e.g. +“invalid_grant”+)



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/safire/errors.rb', line 117

class TokenError < Error
  attr_reader :status, :error_code, :error_description, :received_fields

  def initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil)
    @status            = status
    @error_code        = error_code
    @error_description = error_description
    @received_fields   = received_fields
    super(build_message)
  end

  private

  def build_message
    if @received_fields
      "Missing access token in response; received fields: #{@received_fields.join(', ')}"
    else
      parts = ['Token request failed']
      parts << "HTTP #{@status}" if @status
      parts << @error_code if @error_code
      parts << @error_description if @error_description
      parts.join('')
    end
  end
end

#error_descriptionString? (readonly)

Returns OAuth2 error_description field.

Returns:

  • (String, nil)

    OAuth2 error_description field



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/safire/errors.rb', line 117

class TokenError < Error
  attr_reader :status, :error_code, :error_description, :received_fields

  def initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil)
    @status            = status
    @error_code        = error_code
    @error_description = error_description
    @received_fields   = received_fields
    super(build_message)
  end

  private

  def build_message
    if @received_fields
      "Missing access token in response; received fields: #{@received_fields.join(', ')}"
    else
      parts = ['Token request failed']
      parts << "HTTP #{@status}" if @status
      parts << @error_code if @error_code
      parts << @error_description if @error_description
      parts.join('')
    end
  end
end

#received_fieldsArray<String>? (readonly)

Returns field names present in an invalid token response (no values).

Returns:

  • (Array<String>, nil)

    field names present in an invalid token response (no values)



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/safire/errors.rb', line 117

class TokenError < Error
  attr_reader :status, :error_code, :error_description, :received_fields

  def initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil)
    @status            = status
    @error_code        = error_code
    @error_description = error_description
    @received_fields   = received_fields
    super(build_message)
  end

  private

  def build_message
    if @received_fields
      "Missing access token in response; received fields: #{@received_fields.join(', ')}"
    else
      parts = ['Token request failed']
      parts << "HTTP #{@status}" if @status
      parts << @error_code if @error_code
      parts << @error_description if @error_description
      parts.join('')
    end
  end
end

#statusInteger? (readonly)

Returns HTTP status code.

Returns:

  • (Integer, nil)

    HTTP status code



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/safire/errors.rb', line 117

class TokenError < Error
  attr_reader :status, :error_code, :error_description, :received_fields

  def initialize(status: nil, error_code: nil, error_description: nil, received_fields: nil)
    @status            = status
    @error_code        = error_code
    @error_description = error_description
    @received_fields   = received_fields
    super(build_message)
  end

  private

  def build_message
    if @received_fields
      "Missing access token in response; received fields: #{@received_fields.join(', ')}"
    else
      parts = ['Token request failed']
      parts << "HTTP #{@status}" if @status
      parts << @error_code if @error_code
      parts << @error_description if @error_description
      parts.join('')
    end
  end
end