diff options
author | David Baker <dave@matrix.org> | 2015-12-18 17:47:00 +0000 |
---|---|---|
committer | David Baker <dave@matrix.org> | 2015-12-18 17:47:00 +0000 |
commit | 413d0d6a2404c579b1fa39ece9a698f9df8349db (patch) | |
tree | 6664c149a4564e6b649ce2449c984c6a159ba631 /synapse/storage/event_actions.py | |
parent | still very WIP, but now sends unread_notifications_count in the room object o... (diff) | |
download | synapse-413d0d6a2404c579b1fa39ece9a698f9df8349db.tar.xz |
Make unread notification count sending work: put the correct count in incremental syncs too, where necessary, and fix silly bugs like only select the event actions for that user...
Diffstat (limited to 'synapse/storage/event_actions.py')
-rw-r--r-- | synapse/storage/event_actions.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/synapse/storage/event_actions.py b/synapse/storage/event_actions.py index 40ac8e2d27..f7fe78e554 100644 --- a/synapse/storage/event_actions.py +++ b/synapse/storage/event_actions.py @@ -42,12 +42,9 @@ class EventActionsStore(SQLBaseStore): defer.returnValue(ret) @defer.inlineCallbacks - def get_unread_event_actions_by_room(self, room_id, last_read_event_id): - #events = yield self._get_events( - # [last_read_event_id], - # check_redacted=False - #) - + def get_unread_event_actions_by_room_for_user( + self, room_id, user_id, last_read_event_id + ): def _get_unread_event_actions_by_room(txn): sql = ( "SELECT stream_ordering, topological_ordering" @@ -65,10 +62,11 @@ class EventActionsStore(SQLBaseStore): topological_ordering = results[0][1] sql = ( - "SELECT ea.actions" + "SELECT ea.event_id, ea.actions" " FROM event_actions ea, events e" " WHERE ea.room_id = e.room_id" " AND ea.event_id = e.event_id" + " AND ea.user_id = ?" " AND ea.room_id = ?" " AND (" " e.topological_ordering > ?" @@ -76,9 +74,14 @@ class EventActionsStore(SQLBaseStore): ")" ) txn.execute(sql, - (room_id, topological_ordering, topological_ordering, stream_ordering) + ( + user_id, room_id, + topological_ordering, topological_ordering, stream_ordering + ) ) - return txn.fetchall() + return [ + { "event_id": row[0], "actions": row[1] } for row in txn.fetchall() + ] ret = yield self.runInteraction( "get_unread_event_actions_by_room", |