Actually we need to order these properly
otherwise we'll end up returning the wrong 20pull/892/head
parent
f73fdb04a6
commit
b5fb7458d5
|
@ -184,7 +184,8 @@ class EventPushActionsStore(SQLBaseStore):
|
|||
"get_unread_push_actions_for_user_in_range", get_no_receipt
|
||||
)
|
||||
|
||||
defer.returnValue([
|
||||
# Make a list of dicts from the two sets of results.
|
||||
notifs = [
|
||||
{
|
||||
"event_id": row[0],
|
||||
"room_id": row[1],
|
||||
|
@ -192,7 +193,16 @@ class EventPushActionsStore(SQLBaseStore):
|
|||
"actions": json.loads(row[3]),
|
||||
"received_ts": row[4],
|
||||
} for row in after_read_receipt + no_read_receipt
|
||||
][:limit])
|
||||
]
|
||||
|
||||
# Now sort it so it's ordered correctly, since currently it will
|
||||
# contain results from the first query, correctly ordered, followed
|
||||
# by results from the second query, but we want them all ordered
|
||||
# by received_ts
|
||||
notifs.sort(key=lambda r: -(r['received_ts'] or 0))
|
||||
|
||||
# Now return the first `limit`
|
||||
defer.returnValue(notifs[:limit])
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_time_of_last_push_action_before(self, stream_ordering):
|
||||
|
|
Loading…
Reference in New Issue