This commit is contained in:
2025-12-14 18:48:06 +03:00
parent ccec507033
commit 1a51349eed
17 changed files with 1081 additions and 134 deletions
+11 -13
View File
@@ -6,21 +6,20 @@ from db.handlers.records import ServiceRecordsHandler
class AccessLevelHandler:
async def add(newData):
async def add(newData, userId: int = None):
title = newData.get("title", None)
if not title:
logger.error("Не указано название уровня доступа")
return {}
return {"error": "Не указано название уровня доступа"}
exists = await CRUD.read(select(AccessLevel).where(AccessLevel.title == title))
if exists:
logger.error("Уровень доступа с таким названием уже существует")
return {}
return {"error": "Уровень доступа с таким названием уже существует"}
try:
logger.info(f"Создание уровня доступа {title}")
user_id = newData.pop("user_id", None)
accessData = await AccessLevel(**newData).save()
await ServiceRecordsHandler.add(
user_id, {"Добавлен уровень доступа": accessData.toDict()}
userId, {"Добавлен уровень доступа": accessData.toDict()}
)
except Exception as e:
logger.error(f"Ошибка создания уровня доступа: {str(e)}")
@@ -36,23 +35,22 @@ class AccessLevelHandler:
return {}
return accessData.toDict()
async def edit(accessId: int, **kwargs):
query = select(AccessLevel).where(AccessLevel.id == accessId)
async def edit(levelData, userId: int = None):
query = select(AccessLevel).where(AccessLevel.id == levelData.pop("id"))
accessData = await CRUD.read(query)
if not accessData:
logger.error("Уровень доступа не найден")
return {}
return {"error": "Уровень доступа не найден"}
try:
user_id = kwargs.pop("user_id", None)
editedAccessData = await accessData.edit(**kwargs)
editedAccessData = await accessData.edit(**levelData)
await ServiceRecordsHandler.add(
user_id, {"Обновлен уровень доступа": editedAccessData.toDict()}
userId, {"Обновлен уровень доступа": editedAccessData.toDict()}
)
except Exception as e:
logger.error(f"Ошибка обновления уровня доступа: {str(e)}")
return {}
return {"error": "Ошибка обновления уровня доступа"}
logger.info(
f"Уровень доступа {editedAccessData.title} успешно обновлен, изменены данные: {kwargs.keys()}"
f"Уровень доступа {editedAccessData.title} успешно обновлен, изменены данные: {levelData.keys()}"
)
return editedAccessData.toDict()