133 lines
3.7 KiB
Python
133 lines
3.7 KiB
Python
# Importação de bibliotecas
|
|
from typing import Optional
|
|
from fastapi import APIRouter, Depends, status
|
|
from actions.jwt.get_current_user import get_current_user
|
|
from packages.v1.administrativo.controllers.ato_parte_controller import (
|
|
AtoParteController,
|
|
)
|
|
from packages.v1.administrativo.schemas.ato_parte_schema import (
|
|
AtoParteSchema,
|
|
AtoParteSaveSchema,
|
|
AtoParteUpdateSchema,
|
|
AtoParteIdSchema,
|
|
)
|
|
|
|
# Inicializa o roteador para as rotas de ato_parte
|
|
router = APIRouter()
|
|
|
|
# Instânciamento do controller desejado
|
|
ato_parte_controller = AtoParteController()
|
|
|
|
|
|
# Lista todas as partes
|
|
@router.get(
|
|
"/",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Lista todas as partes cadastradas",
|
|
response_description="Lista todas as partes cadastradas",
|
|
)
|
|
async def index(current_user: dict = Depends(get_current_user)):
|
|
|
|
# Busca todas as partes cadastradas
|
|
response = ato_parte_controller.index()
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza uma parte pelo ato_principal_id
|
|
@router.get(
|
|
"/ato_principal/{ato_principal_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Busca um registro em especifico pelo ID do ato principal",
|
|
response_description="Busca um registro em especifico",
|
|
)
|
|
async def showAtoPrincipal(
|
|
ato_principal_id: int, current_user: dict = Depends(get_current_user)
|
|
):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
ato_parte_schema = AtoParteSchema(ato_principal_id=ato_principal_id)
|
|
|
|
# Busca uma parte especifica pelo ID do ato principal
|
|
response = ato_parte_controller.showAtoPrincipal(ato_parte_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Localiza uma parte pelo ID
|
|
@router.get(
|
|
"/{ato_parte_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Busca um registro em especifico pelo ID da parte",
|
|
response_description="Busca um registro em especifico",
|
|
)
|
|
async def show(ato_parte_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
ato_parte_schema = AtoParteSchema(ato_parte_id=ato_parte_id)
|
|
|
|
# Busca uma parte especifica pelo ID
|
|
response = ato_parte_controller.show(ato_parte_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Cadastro de partes
|
|
@router.post(
|
|
"/",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Cadastra uma parte",
|
|
response_description="Cadastra uma parte",
|
|
)
|
|
async def save(
|
|
ato_parte_schema: AtoParteSaveSchema,
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
|
|
# Efetua o cadastro da parte junto ao banco de dados
|
|
response = ato_parte_controller.save(ato_parte_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Atualiza os dados de uma parte
|
|
@router.put(
|
|
"/{ato_parte_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Atualiza uma parte",
|
|
response_description="Atualiza uma parte",
|
|
)
|
|
async def update(
|
|
ato_parte_id: int,
|
|
ato_parte_schema: AtoParteUpdateSchema,
|
|
current_user: dict = Depends(get_current_user),
|
|
):
|
|
|
|
# Efetua a atualização dos dados da parte
|
|
response = ato_parte_controller.update(ato_parte_id, ato_parte_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|
|
|
|
|
|
# Exclui uma determinada parte
|
|
@router.delete(
|
|
"/{ato_parte_id}",
|
|
status_code=status.HTTP_200_OK,
|
|
summary="Remove uma parte",
|
|
response_description="Remove uma parte",
|
|
)
|
|
async def delete(ato_parte_id: int, current_user: dict = Depends(get_current_user)):
|
|
|
|
# Cria o schema com os dados recebidos
|
|
ato_parte_schema = AtoParteSchema(ato_parte_id=ato_parte_id)
|
|
|
|
# Efetua a exclusão de uma determinada parte
|
|
response = ato_parte_controller.delete(ato_parte_schema)
|
|
|
|
# Retorna os dados localizados
|
|
return response
|