From e9f95821104f5f782b110a4f0b28a8be27e08897 Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 18 Nov 2024 22:21:15 +0300 Subject: [PATCH] sqlsynt2 --- resolvers/rating.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/resolvers/rating.py b/resolvers/rating.py index aa2886f2..9124be88 100644 --- a/resolvers/rating.py +++ b/resolvers/rating.py @@ -51,17 +51,15 @@ async def get_my_rates_shouts(_, info, shouts): author_dict = info.context.get("author") if info.context else None author_id = author_dict.get("id") if author_dict else None - # Возвращаем пустой список вместо None/error if not author_id: return [] with local_session() as session: try: - result = session.execute( - select([ - Reaction.shout.label("shout_id"), - Reaction.kind.label("my_rate") - ]).where( + stmt = ( + select( + Reaction + ).where( and_( Reaction.shout.in_(shouts), Reaction.reply_to.is_(None), @@ -73,14 +71,18 @@ async def get_my_rates_shouts(_, info, shouts): Reaction.shout, Reaction.created_at.desc() ).distinct(Reaction.shout) - ).all() + ) + + result = session.execute(stmt).all() return [ - {"shout_id": row.shout_id, "my_rate": row.my_rate} + { + "shout_id": row[0].shout, # Получаем shout_id из объекта Reaction + "my_rate": row[0].kind # Получаем kind (my_rate) из объекта Reaction + } for row in result ] except Exception as e: - # В случае ошибки тоже возвращаем пустой список logger.error(f"Error in get_my_rates_shouts: {e}") return []