Source code for sagace.exceptions.domain.api_request_error

"""
--------------------------------------------------------------------------------------------------------------------

Descrição:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Este módulo define classes de exceções para tratamento de erros na camada de domínio do sistema SAGACE.
A classe `APIRequestError` representa erros de requisições feitas à API, garantindo um tratamento estruturado
para falhas durante chamadas externas.

Principais funcionalidades:

- Define uma exceção específica para falhas em requisições à API.
- Herdada de `DomainError`, garantindo consistência no tratamento de erros do domínio.

Princípios de Design Aplicados:

- **Single Responsibility Principle (SRP - SOLID)**: Cada classe tem uma única responsabilidade clara.
- **Open/Closed Principle (OCP - SOLID)**: `APIRequestError` pode ser estendida sem modificar seu código-fonte.
- **Encapsulamento**: Centraliza a manipulação de mensagens de erro dentro da exceção.

Classes:

- ``APIRequestError``: Representa erros em requisições à API.

Exemplo de uso:

.. code-block:: python

    from sagace.exceptions import APIRequestError

    try:
        raise APIRequestError(500, "Erro interno no servidor")
    except APIRequestError as e:
        print(f"Erro capturado: {e}")

Autor: Diego Yosiura
Última Atualização: 27/02/2025 16:46
Criado em: 27/02/2025 16:46
Copyright: (c) Ampere Consultoria Ltda
Projeto Original: sagace-v2-package
IDE: PyCharm
"""

from . import DomainError


[docs] class APIRequestError(DomainError): """ Exceção para erros em requisições à API. Esta classe é usada para capturar erros retornados por chamadas de API, fornecendo uma estrutura padronizada para tratamento dessas falhas. Princípios aplicados: - **Single Responsibility Principle (S - SOLID)**: Responsável apenas por representar erros de requisição à API. - **Encapsulamento**: Centraliza a manipulação das mensagens de erro. :param status_code: Código de status HTTP retornado pela API. :type status_code: int :param error: Mensagem de erro retornada pela API. :type error: str """ def __init__(self, status_code: int, error: str): """ Inicializa a exceção `APIRequestError`. :param status_code: Código de status HTTP retornado pela API. :type status_code: int :param error: Mensagem de erro retornada pela API. :type error: str """ super().__init__(f"API Request Error [{status_code}]: {error}.")