Sha256: d00a879fb53eaa6296907f8f1a8ad27a103b7838b110b36ff21c490bc9be2640

Contents?: true

Size: 914 Bytes

Versions: 1

Compression:

Stored size: 914 Bytes

Contents

# frozen_string_literal: true

module Authsignal
  class ApiError < StandardError
    attr_reader :status_code, :error_code, :error_description

    def initialize(status_code, error_code, error_description = nil)
      message = format_message(status_code, error_code, error_description)

      super(message)

      @status_code = status_code
      @error_code = error_code
      @error_description = error_description
    end

    def to_s
      "#{super} status_code: #{status_code}, error_code: #{error_code}, error_description: #{error_description}"
    end

    private

    def format_message(status_code, error_code, error_description)
      "AuthsignalError: #{status_code} - #{format_description(error_code, error_description)}"
    end

    def format_description(error_code, error_description)
      error_description && error_description.length > 0 ? error_description : error_code
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
authsignal-ruby-5.0.0 lib/authsignal/api_error.rb