def push_user_notification(self, event_uuid, team_id, user_id): ''' Push to one user ''' if team_id in self.notify_connections and user_id in self.notify_connections[team_id]: json = Notification.by_event_uuid(event_uuid).to_dict() for wsocket in self.notify_connections[team_id][user_id]: wsocket.write_message(json) Notification.delivered(wsocket.user_id, event_uuid)
def push_user_notification(self, event_uuid, team_id, user_id): ''' Push to one user ''' if team_id in self.notify_connections and user_id in self.notify_connections[ team_id]: json = Notification.by_event_uuid(event_uuid).to_dict() for wsocket in self.notify_connections[team_id][user_id]: wsocket.write_message(json) Notification.delivered(wsocket.user_id, event_uuid)
def push_broadcast_notification(self, event_uuid): ''' Push to everyone ''' json = Notification.by_event_uuid(event_uuid).to_dict() for team_id in self.notify_connections: for user_id in self.notify_connections[team_id]: for wsocket in self.notify_connections[team_id][user_id]: wsocket.write_message(json) # Only mark delivered for non-public users if wsocket.user_id != '$public_user': Notification.delivered(user_id, event_uuid)
def open(self): ''' When we receive a new websocket connect ''' if self.session is not None and 'team_id' in self.session: logging.debug("[Web Socket] Opened new websocket with user id: %s" % ( self.session['user_id'], )) notifications = Notification.new_messages(self.session['user_id']) logging.debug("[Web Socket] %d new notification(s) for user id %d" % ( len(notifications), self.session['user_id']), ) for notify in notifications: self.write_message(notify.to_dict()) Notification.delivered(notify.user_id, notify.event_uuid) else: logging.debug("[Web Socket] Opened public notification socket.") self.start_time = datetime.now() self.manager.add_connection(self)