diff --git a/packages/v1/administrativo/endpoints/auth_endpoint.py b/packages/v1/administrativo/endpoints/auth_endpoint.py new file mode 100644 index 0000000..03cfde9 --- /dev/null +++ b/packages/v1/administrativo/endpoints/auth_endpoint.py @@ -0,0 +1,30 @@ +# Importação de bibliotecas +from typing import Optional +from fastapi import APIRouter, Body, Depends, status +from actions.jwt.get_current_user import get_current_user +from packages.v1.administrativo.controllers.usuario_controller import UsuarioController +from packages.v1.administrativo.schemas.usuario_schema import ( + UsuarioAuthenticateSchema, +) + +# Inicializa o roteador para as rotas de usuário +router = APIRouter() + +# Instânciamento do controller desejado +user_controller = UsuarioController() + + +# Autenticação de usuário +@router.post( + "", + status_code=status.HTTP_200_OK, + summary="Autentica e cria o token de acesso do usuário", + response_description="Retorna o token de acesso do usuário", +) +async def index(user_authenticate_schema: UsuarioAuthenticateSchema): + + # Efetua a autenticação de um usuário junto ao sistema + response = user_controller.authenticate(user_authenticate_schema) + + # Retorna os dados localizados + return response diff --git a/packages/v1/api.py b/packages/v1/api.py index 41bd07d..ff339d0 100644 --- a/packages/v1/api.py +++ b/packages/v1/api.py @@ -6,6 +6,7 @@ from packages.v1.administrativo.endpoints import ato_principal_endpoint from packages.v1.administrativo.endpoints import usuario_endpoint from packages.v1.administrativo.endpoints import ato_documento_endpoint from packages.v1.administrativo.endpoints import ato_parte_endpoint +from packages.v1.administrativo.endpoints import auth_endpoint from packages.v1.administrativo.endpoints import atos_endpoint # Cria uma instância do APIRouter que vai agregar todas as rotas da API @@ -37,6 +38,14 @@ api_router.include_router( ato_principal_endpoint.router, prefix="/ato", tags=["Dados do Ato"] ) +# Inclui a rota de autenticação de usuário +api_router.include_router( + auth_endpoint.router, + prefix="/auth", + tags=["Autentica o usuário e retorna o token de acesso"], +) + + # Inclui as rotas de ato_principal api_router.include_router( atos_endpoint.router, prefix="/atos", tags=["Retorna o ato e suas dependências"]