sagace.auth.infrastructure package — sagace 2025 documentation

# sagace.auth.infrastructure package

## Submodules

## sagace.auth.infrastructure.authentication_api module

### Descrição:

Este módulo implementa a autenticação de usuários no sistema SAGACE utilizando uma API externa. A classe AuthenticationAPI herda de AuthenticationRepository, garantindo a conformidade com o princípio de Dependency Inversion (D do SOLID), permitindo a substituição da implementação sem afetar os consumidores da interface.

Principais funcionalidades:

- Realiza autenticação via API externa.

- Armazena o token JWT utilizando TokenStorage.

- Lança exceções apropriadas em caso de falha.

Classes:

- `AuthenticationAPI`: Implementação do repositório de autenticação via API.

Exemplo de uso:

    from sagace.infrastructure import AuthenticationAPI
    from sagace.core import TokenStorage

    auth_api = AuthenticationAPI()
    token_storage = TokenStorage()
    token = auth_api.authenticate("https://api.sagace.online", "usuario", "senha", "app_token", token_storage)
    print(token)

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

class sagace.auth.infrastructure.authentication_api.AuthenticationAPI

  Bases: `AuthenticationRepository`

  Implementação da autenticação via API externa.

  Esta classe implementa AuthenticationRepository, garantindo que qualquer mudança na forma de autenticação possa ser feita sem impactar os consumidores desta interface.

  Princípios utilizados: - Dependency Inversion (D - SOLID): Utiliza uma abstração (AuthenticationRepository) para evitar dependências diretas. - Single Responsibility (S - SOLID): Responsável exclusivamente por autenticação via API. - Clean Architecture: Implementação no nível de infraestrutura, garantindo separação entre domínio e serviços externos.

  AUTH_URL = 'auth/base/login/'
  BASE_URL = 'https://demo.sagace.online/'
  _abc_impl = <_abc._abc_data object>
  authenticate(base_url: str, username: str, password: str, token: str, token_storage: TokenStorage) → Token

    Autentica um usuário via API e retorna um token JWT.

    Parameters:

      - base_url (str) – URL base da API de autenticação.

      - username (str) – Nome de usuário para autenticação.

      - password (str) – Senha do usuário.

      - token (str) – Token da aplicação para autenticação.

      - token_storage (TokenStorage) – Instância responsável por armazenar o token JWT.

    Returns:

      Token JWT retornado pela API.

    Return type:

      Token

    Raises:

      - APIRequestError – Se a API retornar um erro na requisição.

      - AuthenticationFailedError – Se os dados esperados não estiverem presentes na resposta.

## Module contents

### Description:

Obs.:

Author: @diego.yosiura Last Update: 27/02/2025 15:29 Created: 27/02/2025 15:29 Copyright: (c) Ampere Consultoria Ltda Original Project: sagace-v2-package IDE: PyCharm