From be27e7306ceaf745f30f9a318e2197be8ec38c2d Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 26 Feb 2024 20:07:42 +0300 Subject: [PATCH] sort-fix --- resolvers/reaction.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/resolvers/reaction.py b/resolvers/reaction.py index 31838fcf..416f5b4e 100644 --- a/resolvers/reaction.py +++ b/resolvers/reaction.py @@ -378,7 +378,7 @@ async def load_reactions_by(_, info, by, limit=50, offset=0): # pagination q = q.limit(limit).offset(offset) - reactions = [] + reactions = set() with local_session() as session: result_rows = session.execute(q) for [ @@ -398,16 +398,14 @@ async def load_reactions_by(_, info, by, limit=50, offset=0): 'reacted': reacted_stat, 'commented': commented_stat, } - reactions.append(reaction) # Используем список для хранения реакций + reactions.add(reaction) # Используем список для хранения реакций - # sort if by stat is present - stat_sort = by.get('stat') - if stat_sort: - reactions = sorted( - reactions, - key=lambda r: r.stat.get(stat_sort) or r.created_at, - reverse=stat_sort.startswith('-'), - ) + # sort + reactions = sorted( + list(reactions), + key=lambda r: r.stat.get(by.get('stat')) or r.created_at, + reverse=by.get('stat', '').startswith('-'), + ) return reactions