Exception: ApiBrasil::Core::Errors::ApiBrasilError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/api_brasil/core/errors.rb

Overview

Erro base lancado pelo cliente ApiBrasil::Client. Subclasses especificas permitem tratar cada categoria com rescue:

  • ValidationError (400/422), AuthenticationError (401), InsufficientBalanceError (402), PermissionError (403), NotFoundError (404/410), RateLimitError (429), ServerError (5xx)
  • NetworkError / TimeoutError para falhas antes da resposta.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, status: nil, code: nil, response: nil, previous: nil) ⇒ ApiBrasilError

Returns a new instance of ApiBrasilError.



29
30
31
32
33
34
35
# File 'lib/api_brasil/core/errors.rb', line 29

def initialize(message, status: nil, code: nil, response: nil, previous: nil)
  super(message)
  @status = status
  @error_code = code
  @response = response
  @previous = previous
end

Instance Attribute Details

#error_codeString? (readonly)

Returns codigo de erro retornado pela API (ex: NOT_FOUND).

Returns:

  • (String, nil)

    codigo de erro retornado pela API (ex: NOT_FOUND).



21
22
23
# File 'lib/api_brasil/core/errors.rb', line 21

def error_code
  @error_code
end

#previousException? (readonly)

Returns erro original, quando houver.

Returns:

  • (Exception, nil)

    erro original, quando houver.



27
28
29
# File 'lib/api_brasil/core/errors.rb', line 27

def previous
  @previous
end

#responseObject? (readonly)

Returns corpo completo da resposta de erro.

Returns:

  • (Object, nil)

    corpo completo da resposta de erro.



24
25
26
# File 'lib/api_brasil/core/errors.rb', line 24

def response
  @response
end

#statusInteger? (readonly)

Returns status HTTP retornado pela API (ex: 401, 402).

Returns:

  • (Integer, nil)

    status HTTP retornado pela API (ex: 401, 402).



18
19
20
# File 'lib/api_brasil/core/errors.rb', line 18

def status
  @status
end

Class Method Details

.from(error) ⇒ ApiBrasilError

Converte qualquer erro em um ApiBrasilError.

Parameters:

  • error (Object)

Returns:



51
52
53
54
55
56
# File 'lib/api_brasil/core/errors.rb', line 51

def self.from(error)
  return error if error.is_a?(ApiBrasilError)
  return new(error.message, previous: error) if error.is_a?(Exception)

  new(error.to_s)
end

Instance Method Details

#insufficient_balance?Boolean

true quando a falha foi por saldo/creditos insuficientes (HTTP 402).

Returns:

  • (Boolean)


38
39
40
# File 'lib/api_brasil/core/errors.rb', line 38

def insufficient_balance?
  status == 402
end

#unauthorized?Boolean

true quando a falha foi de autenticacao (HTTP 401).

Returns:

  • (Boolean)


43
44
45
# File 'lib/api_brasil/core/errors.rb', line 43

def unauthorized?
  status == 401
end