Управление категориями

This commit is contained in:
2025-12-11 23:07:22 +03:00
parent 56584cc8ff
commit 8b38d69980
11 changed files with 902 additions and 38 deletions
+15 -4
View File
@@ -1,4 +1,5 @@
from sqlalchemy import select
from db.handlers.toolkit import ToolkitHandler
from utils import logger
from db import CRUD
from db.schemas.categories import Category
@@ -32,15 +33,21 @@ class CategoryHandler:
)
return newCategory.toDict()
async def edit(categoryId: int, **kwargs):
async def edit(categoryData: dict, userId: int):
categoryId = categoryData.pop("id", None)
if not categoryId:
logger.error("Не указан id категории")
return {}
query = select(Category).where(Category.id == categoryId)
category = await CRUD.read(query)
if not category:
logger.error("Категория не найдена")
return {}
try:
user_id = kwargs.get("user_id", None)
editedCategory = await category.edit(**kwargs)
logger.info(
f"Обновление категории {category.title} -> {categoryData.get('title')}"
)
editedCategory = await category.edit(**categoryData)
except Exception as e:
logger.error(f"Ошибка обновления категории: {str(e)}")
return {}
@@ -48,7 +55,7 @@ class CategoryHandler:
logger.error("Категория не обновлена")
return {}
await ServiceRecordsHandler.add(
user_id, {f"Обновлена категория {category.title}": editedCategory.toDict()}
userId, {f"Обновлена категория {category.title}": editedCategory.toDict()}
)
logger.info(f"Категория {editedCategory.title} успешно обновлена")
return editedCategory.toDict()
@@ -64,6 +71,10 @@ class CategoryHandler:
return [category.toDict() for category in categories] if categories else []
async def delete(categoryId: int, user_id: int = None):
categoryInUse = await ToolkitHandler.checkCatogoryUse(categoryId)
if categoryInUse:
logger.error("Категория используется в инструментах")
return True
query = select(Category).where(Category.id == categoryId)
category = await CRUD.read(query)
if not category: