def get_user_notification(self, user, notification): user = User.guess_instance(user) notification = Notification.guess_instance(notification) return UserNotification.query() \ .filter(UserNotification.notification == notification) \ .filter(UserNotification.user == user).scalar()
def mark_read(self, user, notification): try: notification = Notification.guess_instance(notification) user = User.guess_instance(user) if notification and user: obj = UserNotification.query() \ .filter(UserNotification.user == user) \ .filter(UserNotification.notification == notification) \ .one() obj.read = True return True except Exception: log.error(traceback.format_exc()) raise
def delete(self, user, notification): # we don't want to remove actual notification just the assignment try: notification = Notification.guess_instance(notification) user = User.guess_instance(user) if notification and user: obj = UserNotification.query() \ .filter(UserNotification.user == user) \ .filter(UserNotification.notification == notification) \ .one() Session().delete(obj) return True except Exception: log.error(traceback.format_exc()) raise