51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
from fastapi import APIRouter, Depends
|
|
from db.handlers.stock import StockHandler
|
|
from db.handlers.toolbox import ToolboxHandler
|
|
from utils import requestDict, logger
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/", summary="Добавление ящика")
|
|
async def add_toolbox(reqDict=Depends(requestDict)):
|
|
logger.info(f"Добавление ящика")
|
|
response = {"status": "error"}
|
|
userId = reqDict.get("body").get("userId")
|
|
toolboxData = reqDict.get("body").get("toolboxData")
|
|
result = await ToolboxHandler.add(toolboxData, userId)
|
|
if result:
|
|
response["status"] = "ok"
|
|
return response
|
|
|
|
|
|
@router.put("/", summary="Обновление ящика")
|
|
async def update_toolbox(reqDict=Depends(requestDict)):
|
|
toolboxId = reqDict.get("body").get("toolboxId")
|
|
logger.info(f"Обновление ящика #{toolboxId}")
|
|
response = {"status": "error"}
|
|
userId = reqDict.get("body").get("userId")
|
|
toolboxData = reqDict.get("body").get("editToolboxData")
|
|
result = await ToolboxHandler.edit(toolboxId, **toolboxData, user_id=userId)
|
|
if result:
|
|
response["status"] = "ok"
|
|
return response
|
|
|
|
|
|
@router.delete("/", summary="Удаление ящика")
|
|
async def delete_toolbox(reqDict=Depends(requestDict)):
|
|
toolboxId = reqDict.get("body").get("toolboxId")
|
|
logger.info(f"Удаление ящика #{toolboxId}")
|
|
response = {"status": "error"}
|
|
stocksData = await StockHandler.getByToolboxId(toolboxId, False)
|
|
if stocksData:
|
|
response["message"] = (
|
|
"Через этот склад были проведены операции, удаление невозможно"
|
|
)
|
|
return response
|
|
userId = reqDict.get("body").get("userId")
|
|
result = await ToolboxHandler.delete(toolboxId, userId)
|
|
if result:
|
|
response["status"] = "ok"
|
|
return response
|