diff --git a/resolvers/reaction.py b/resolvers/reaction.py index 714fe9fa..36de92f9 100644 --- a/resolvers/reaction.py +++ b/resolvers/reaction.py @@ -576,8 +576,8 @@ async def load_shout_comments(_, info, shout: int, limit=50, offset=0): Shout, func.count(aliased_reaction.id).label("reacted_stat"), func.count(aliased_reaction.body).label("commented_stat"), - func.sum(func.coalesce(aliased_reaction.likes, 0)).label("likes_stat"), - func.sum(func.coalesce(aliased_reaction.dislikes, 0)).label("dislikes_stat"), + func.sum(case((aliased_reaction.kind == str(ReactionKind.LIKE.value), 1), else_=0)).label("likes_stat"), + func.sum(case((aliased_reaction.kind == str(ReactionKind.DISLIKE.value), 1), else_=0)).label("dislikes_stat"), ) .select_from(Reaction) .join(Author, Reaction.created_by == Author.id) @@ -625,8 +625,8 @@ async def load_comment_ratings(_, info, comment: int, limit=50, offset=0): Shout, func.count(aliased_reaction.id).label("reacted_stat"), func.count(aliased_reaction.body).label("commented_stat"), - func.sum(func.coalesce(aliased_reaction.likes, 0)).label("likes_stat"), - func.sum(func.coalesce(aliased_reaction.dislikes, 0)).label("dislikes_stat"), + func.sum(case((aliased_reaction.kind == str(ReactionKind.LIKE.value), 1), else_=0)).label("likes_stat"), + func.sum(case((aliased_reaction.kind == str(ReactionKind.DISLIKE.value), 1), else_=0)).label("dislikes_stat"), ) .select_from(Reaction) .join(Author, Reaction.created_by == Author.id)