135 lines
3.9 KiB
Python
135 lines
3.9 KiB
Python
# Importação de bibliotecas
|
|
from fastapi import APIRouter, Depends, status
|
|
from actions.jwt.get_current_user import get_current_user
|
|
from packages.v1.administrativo.controllers.t_pessoa_controller import TPessoaController
|
|
from packages.v1.administrativo.schemas.t_pessoa_schema import (
|
|
TPessoaIdSchema,
|
|
TPessoaNameSchema,
|
|
TPessoaSaveSchema,
|
|
TPessoaUpdateSchema,
|
|
TPessoaTipoSchema,
|
|
)
|
|
|
|
# Inicializa o roteador para as rotas do regime de bens
|
|
router = APIRouter()
|
|
|
|
# Instânciamento do controller desejado
|
|
t_pessoa_controller = TPessoaController()
|
|
|
|
|
|
# Lista todos as pessoas
|
|
@router.get(
|
|
"/tipo/{pessoa_tipo}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Lista todos as pessoas cadastrados",
|
|
response_description="Lista todos as pessoas cadastrados",
|
|
)
|
|
async def index(pessoa_tipo: str, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
t_pessoa_tipo_schema = TPessoaTipoSchema(pessoa_tipo=pessoa_tipo)
|
|
|
|
# Busca todos as pessoas cadastrados
|
|
response = t_pessoa_controller.index(t_pessoa_tipo_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um regime de bens pela descrição
|
|
@router.get(
|
|
"/nome",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Busca um registro em específico pelo nome",
|
|
response_description="Busca um registro em específico",
|
|
)
|
|
async def get_by_nome(nome: str, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
t_pessoa_nome_schema = TPessoaNameSchema(nome=nome)
|
|
|
|
# Busca um regime de bens específico pela descrição
|
|
response = t_pessoa_controller.get_by_nome(t_pessoa_nome_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza um regime de bens pelo ID
|
|
@router.get(
|
|
"/{pessoa_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Busca um registro em específico pelo ID da pessoa",
|
|
response_description="Busca um registro em específico",
|
|
)
|
|
async def show(pessoa_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
t_pessoa_id_schema = TPessoaIdSchema(pessoa_id=pessoa_id)
|
|
|
|
# Busca um regime de bens específico pelo ID
|
|
response = t_pessoa_controller.show(t_pessoa_id_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Cadastro de regime de bens
|
|
@router.post(
|
|
"/",
|
|
status_code=status.HTTP_201_CREATED,
|
|
summary="Cadastra um regime de bens",
|
|
response_description="Cadastra um regime de bens",
|
|
)
|
|
async def save(
|
|
t_pessoa_save_schema: TPessoaSaveSchema,
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
|
|
# Efetua o cadastro no banco de dados
|
|
response = t_pessoa_controller.save(t_pessoa_save_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Atualiza os dados de um regime de bens
|
|
@router.put(
|
|
"/{pessoa_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Atualiza um regime de bens",
|
|
response_description="Atualiza um regime de bens",
|
|
)
|
|
async def update(
|
|
pessoa_id: int,
|
|
t_pessoa_update_schema: TPessoaUpdateSchema,
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
|
|
# Adiciona o ID do registro ao schema
|
|
t_pessoa_update_schema.pessoa_id = pessoa_id
|
|
|
|
# Efetua a atualização dos dados
|
|
response = t_pessoa_controller.update(t_pessoa_update_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Exclui um determinado regime de bens
|
|
@router.delete(
|
|
"/{pessoa_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Remove um regime de bens",
|
|
response_description="Remove um regime de bens",
|
|
)
|
|
async def delete(pessoa_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
t_pessoa_id_schema = TPessoaIdSchema(pessoa_id=pessoa_id)
|
|
|
|
# Efetua a exclusão do regime de bens
|
|
response = t_pessoa_controller.delete(t_pessoa_id_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|