saas_api/packages/v1/administrativo/endpoints/c_caixa_item.py

70 lines
No EOL
2.5 KiB
Python

# 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.c_caixa_item_controller import \
CCaixaItemController
from packages.v1.administrativo.schemas.c_caixa_item_schema import (
CaixaItemSchema, CaixaItemSearchSchema)
# Inicializar o roteaodr para as rotas de produtos
router = APIRouter()
# Instãnciamento do controller desejado
cCaixaItemController = CCaixaItemController()
@router.get("/",
status_code=status.HTTP_200_OK,
summary="Busca itens com filtros opcionais",
response_description="Lista de itens encontrados com base nos critérios de busca.")
async def index(current_user : dict = Depends(get_current_user)):
# Busca todos os produtos cadastrados
response = cCaixaItemController.index()
# Retornar os dados localizados
return response
@router.post('/',
status_code=status.HTTP_201_CREATED,
summary="Cadastrar uma nova receita ou despesa no sistema",
response_description="Confirmação do cadastro da receita ou despesa, incluindo detalhes do item criado.")
async def save(caixa_item_schema: CaixaItemSchema, current_user : dict = Depends(get_current_user)):
# Salva o produto desejado
response = cCaixaItemController.create(caixa_item_schema)
# Retorna a informação desejada
return response
@router.get('/{caixa_item_id}',
status_code=status.HTTP_200_OK,
summary="Busca um registro em específico",
response_description="Busca um registro de acordo com o ID informado")
async def show(caixa_item_id : int, current_user : dict = Depends(get_current_user)):
# Armazena o produto id no Schema
CaixaItemSchema.caixa_item_id = caixa_item_id
# Salva o produto desejado
response = cCaixaItemController.show(CaixaItemSchema)
# Retorna a informação desejada
return response
@router.delete('/{caixa_item_id}',
status_code=status.HTTP_200_OK,
summary="Remove um registro em específico",
response_description="Remove um registro de acordo com o ID informado")
async def delete(caixa_item_id : int, current_user : dict = Depends(get_current_user)):
# Armazena o produto id no Schema
CaixaItemSchema.caixa_item_id = caixa_item_id
# Salva o produto desejado
response = cCaixaItemController.delete(CaixaItemSchema)
# Retorna a informação desejada
return response