From 30644f65134da5665ee99eadf884f3844629de06 Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 1 Sep 2025 09:07:37 +0300 Subject: [PATCH] author-debug --- resolvers/author.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/resolvers/author.py b/resolvers/author.py index d0c9b324..76867b9e 100644 --- a/resolvers/author.py +++ b/resolvers/author.py @@ -138,7 +138,19 @@ async def get_authors_with_stats( """ # Формируем ключ кеша с помощью универсальной функции order_value = by.get("order", "default") if by else "default" - cache_key = f"authors:stats:limit={limit}:offset={offset}:order={order_value}" + + # Добавляем фильтры в ключ кэша для правильного кэширования + filter_parts = [] + if by: + if by.get("slug"): + filter_parts.append(f"slug={by['slug']}") + if by.get("id"): + filter_parts.append(f"id={by['id']}") + if by.get("stat"): + filter_parts.append(f"stat={by['stat']}") + + filter_str = ":".join(filter_parts) if filter_parts else "all" + cache_key = f"authors:stats:limit={limit}:offset={offset}:order={order_value}:filter={filter_str}" # Функция для получения авторов из БД async def fetch_authors_with_stats() -> list[Any]: @@ -742,8 +754,10 @@ async def get_author( author_dict = None try: - author_id = get_author_id_from(slug=slug, user="", author_id=author_id) - if not author_id: + logger.debug(f"🔍 get_author called with slug='{slug}', author_id={author_id}") + resolved_author_id = get_author_id_from(slug=slug, user="", author_id=author_id) + logger.debug(f"🔍 get_author_id_from returned: {resolved_author_id}") + if not resolved_author_id: msg = "cant find" raise ValueError(msg) @@ -753,8 +767,10 @@ async def get_author( filter_by: AuthorsBy = {} if slug: filter_by["slug"] = slug - elif author_id: - filter_by["id"] = author_id + logger.debug(f"🔍 Using slug filter: {slug}") + elif resolved_author_id: + filter_by["id"] = resolved_author_id + logger.debug(f"🔍 Using id filter: {resolved_author_id}") authors_with_stats = await get_authors_with_stats(limit=1, offset=0, by=filter_by) if authors_with_stats and len(authors_with_stats) > 0: @@ -767,7 +783,7 @@ async def get_author( if slug: author = session.query(Author).filter_by(slug=slug).first() else: - author = session.query(Author).filter_by(id=author_id).first() + author = session.query(Author).filter_by(id=resolved_author_id).first() if author: author_dict = author.dict(is_admin) except Exception as e: @@ -777,7 +793,7 @@ async def get_author( if slug: author = session.query(Author).filter_by(slug=slug).first() else: - author = session.query(Author).filter_by(id=author_id).first() + author = session.query(Author).filter_by(id=resolved_author_id).first() if author: author_dict = author.dict(is_admin) except ValueError: