diff --git a/resolvers/seen.py b/resolvers/seen.py index b61a901..bfbc260 100644 --- a/resolvers/seen.py +++ b/resolvers/seen.py @@ -2,7 +2,7 @@ from sqlalchemy import and_ from orm.notification import NotificationSeen from services.db import local_session from resolvers.model import Notification, NotificationSeenResult, NotificationReaction -from typing import List + import strawberry import logging import json @@ -61,15 +61,35 @@ class Mutation: [shout_id, reply_to_id] = thread.split("::") with local_session() as session: # TODO: handle new follower and new shout notifications - new_reaction_notifications = session.query(Notification).filter(Notification.action == "create", Notification.entity == "reaction", Notification.created_at > after).all() - removed_reaction_notifications = session.query(Notification).filter(Notification.action == "delete", Notification.entity == "reaction", Notification.created_at > after).all() + new_reaction_notifications = ( + session.query(Notification) + .filter( + Notification.action == "create", + Notification.entity == "reaction", + Notification.created_at > after, + ) + .all() + ) + removed_reaction_notifications = ( + session.query(Notification) + .filter( + Notification.action == "delete", + Notification.entity == "reaction", + Notification.created_at > after, + ) + .all() + ) exclude = set([]) for nr in removed_reaction_notifications: reaction: NotificationReaction = json.loads(nr.payload) exclude.add(reaction.id) for n in new_reaction_notifications: reaction: NotificationReaction = json.loads(n.payload) - if reaction.id not in exclude and str(reaction.shout) == str(shout_id) and str(reaction.reply_to) == str(reply_to_id): + if ( + reaction.id not in exclude + and str(reaction.shout) == str(shout_id) + and str(reaction.reply_to) == str(reply_to_id) + ): try: ns = NotificationSeen(notification=n.id, viewer=author_id) session.add(ns)