feat: added CRUD operations for timers, created decorator for error handling, added schema ; refactor: updated functions and ; test: moved tests from to , written tests for CRUD operations on timers and database.

This commit is contained in:
Arduinum628
2025-05-28 22:09:41 +03:00
parent 310f7c2680
commit 50e76d4726
11 changed files with 262 additions and 65 deletions

View File

@@ -0,0 +1,27 @@
from typing import Any, Callable, Optional
from sqlalchemy.exc import IntegrityError, OperationalError, NoResultFound
from pydantic import ValidationError
from kawai_focus.main import Logger
from kawai_focus.utils.errors import ErrorMessage
def crud_error_guard(func: Callable[..., Any]) -> Callable[..., Optional[Any]] | None:
"""Декоратор для обработки ошибок CRUD"""
def wrapper(*args: Any, **kwargs: Any) -> Optional[Any] | None:
try:
result = func(*args, **kwargs)
return result
except ConnectionError as err:
Logger.error(f'{ErrorMessage.CONNECTION_ERROR.value}: {err}')
except IntegrityError as err:
Logger.error(f'{ErrorMessage.INTEGRITY_ERROR.value}: {err}')
except OperationalError as err:
Logger.error(f'{ErrorMessage.OPERATIONAL_ERROR.value}: {err}')
except ValidationError as err:
Logger.error(f'{ErrorMessage.VALIDATION_ERROR.value}: {err}')
except NoResultFound as err:
Logger.error(f'{ErrorMessage.NO_RESULT_FOUND.value}: {err}')
return wrapper