From 34940178ad39afd158fdafd7e78bbae49c2ad9a7 Mon Sep 17 00:00:00 2001 From: Untone Date: Sat, 2 Dec 2023 09:25:08 +0300 Subject: [PATCH] resolvers-fix --- resolvers/reader.py | 13 +++++++++++-- resolvers/topic.py | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/resolvers/reader.py b/resolvers/reader.py index ab1cb045..2c3d2c44 100644 --- a/resolvers/reader.py +++ b/resolvers/reader.py @@ -149,15 +149,24 @@ async def load_shouts_by(_, info, options): .where(Shout.deleted_at.is_(None)) ) + # counters q = add_stat_columns(q) + + # filters q = apply_filters(q, options.get("filters", {})) + # group + q = q.group_by(Shout.id, Author.user) + + # order order_by = options.get("order_by", Shout.published_at) query_order_by = desc(order_by) if options.get("order_by_desc", True) else asc(order_by) + q = q.order_by(nulls_last(query_order_by)) + + # limit offset offset = options.get("offset", 0) limit = options.get("limit", 10) - - q = q.group_by(Shout.id).order_by(nulls_last(query_order_by)).limit(limit).offset(offset) + q = q.limit(limit).offset(offset) shouts = [] shouts_map = {} diff --git a/resolvers/topic.py b/resolvers/topic.py index 571a9105..4391db60 100644 --- a/resolvers/topic.py +++ b/resolvers/topic.py @@ -26,7 +26,7 @@ def add_topic_stat_columns(q): .add_columns(func.count(distinct(ShoutTopic.shout)).label("shouts_stat")) .outerjoin(aliased_shout_author, ShoutTopic.shout == aliased_shout_author.shout) - .add_columns(func.count(distinct(aliased_shout_author.user)).label("authors_stat")) + .add_columns(func.count(distinct(aliased_shout_author.author)).label("authors_stat")) .outerjoin(aliased_topic_follower) .add_columns(func.count(distinct(aliased_topic_follower.follower)).label("followers_stat"))