Files
core/services/common_result.py

49 lines
1.5 KiB
Python
Raw Normal View History

2024-10-21 10:52:23 +03:00
from dataclasses import dataclass
from typing import Any
2024-10-21 10:52:23 +03:00
2025-07-31 18:55:59 +03:00
from graphql.error import GraphQLError
2025-05-29 23:40:27 +03:00
from auth.orm import Author
2024-10-21 10:52:23 +03:00
from orm.community import Community
from orm.draft import Draft
2024-10-21 10:52:23 +03:00
from orm.reaction import Reaction
from orm.shout import Shout
from orm.topic import Topic
2025-07-31 18:55:59 +03:00
from utils.logger import root_logger as logger
def handle_error(operation: str, error: Exception) -> GraphQLError:
"""Обрабатывает ошибки в резолверах"""
logger.error(f"Ошибка при {operation}: {error}")
return GraphQLError(f"Не удалось {operation}: {error}")
2024-10-21 10:52:23 +03:00
@dataclass
class CommonResult:
"""Общий результат для GraphQL запросов"""
error: str | None = None
drafts: list[Draft] | None = None # Draft objects
draft: Draft | None = None # Draft object
slugs: list[str] | None = None
shout: Shout | None = None
shouts: list[Shout] | None = None
author: Author | None = None
authors: list[Author] | None = None
reaction: Reaction | None = None
reactions: list[Reaction] | None = None
topic: Topic | None = None
topics: list[Topic] | None = None
community: Community | None = None
communities: list[Community] | None = None
@dataclass
class AuthorFollowsResult:
"""Результат для get_author_follows запроса"""
topics: list[Any] | None = None # Topic dicts
authors: list[Any] | None = None # Author dicts
communities: list[Any] | None = None # Community dicts
error: str | None = None