diff --git a/resolvers/reaction.py b/resolvers/reaction.py index cc5911b3..5ea435a6 100644 --- a/resolvers/reaction.py +++ b/resolvers/reaction.py @@ -27,10 +27,8 @@ def add_reaction_stat_columns(q, aliased_reaction): """ # Присоединение реакций и добавление статистических колонок q = q.outerjoin(aliased_reaction, aliased_reaction.deleted_at.is_(None)).add_columns( - # Подсчет комментариев func.count(case((aliased_reaction.body.is_not(None), 1), else_=0)).label("comments_stat"), - # Вычисление рейтинга как разница между лайками и дизлайками func.sum( case( @@ -497,13 +495,7 @@ async def load_reactions_by(_, info, by, limit=50, offset=0): reactions = set() with local_session() as session: result_rows = session.execute(q) - for [ - reaction, - author, - shout, - commented_stat, - rating_stat - ] in result_rows: + for [reaction, author, shout, commented_stat, rating_stat] in result_rows: reaction.created_by = author reaction.shout = shout reaction.stat = {"rating": rating_stat, "commented": commented_stat} diff --git a/resolvers/reader.py b/resolvers/reader.py index 1a8d4051..fec79b90 100644 --- a/resolvers/reader.py +++ b/resolvers/reader.py @@ -47,7 +47,7 @@ def query_shouts(): func.concat("slug:", Author.slug), func.concat("pic:", Author.pic), ), - " | " + " | ", ).label("authors"), # Используем символ | как разделитель ) .join(Author, ShoutAuthor.author == Author.id) @@ -67,7 +67,7 @@ def query_shouts(): func.concat("slug:", Topic.slug), func.concat("is_main:", ShoutTopic.main), ), - " | " + " | ", ).label("topics"), # Используем символ | как разделитель ) .join(Topic, ShoutTopic.topic == Topic.id) @@ -105,6 +105,7 @@ def query_shouts(): return q, aliased_reaction + def parse_aggregated_string(aggregated_str): """ Преобразует строку, полученную из string_agg, обратно в список словарей. @@ -120,7 +121,7 @@ def parse_aggregated_string(aggregated_str): for item_str in aggregated_str.split(" | "): item_data = {} for field in item_str.split(";"): - if ':' in field: + if ":" in field: key, value = field.split(":", 1) item_data[key] = value else: @@ -325,6 +326,7 @@ async def get_shout(_, info, slug: str): return shout except Exception as _exc: import traceback + logger.error(traceback.format_exc()) return None