Include whether the requesting user has participated in a thread. (#11577)
Per updates to MSC3440.
This is implement as a separate method since it needs to be cached
on a per-user basis, instead of a per-thread basis.
3 files changed, 13 insertions, 5 deletions
diff --git a/synapse/handlers/pagination.py b/synapse/handlers/pagination.py
index 472688f045..973f262964 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
@@ -537,7 +537,7 @@ class PaginationHandler:
state_dict = await self.store.get_events(list(state_ids.values()))
state = state_dict.values()
- aggregations = await self.store.get_bundled_aggregations(events)
+ aggregations = await self.store.get_bundled_aggregations(events, user_id)
time_now = self.clock.time_msec()
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 3d47163f25..f963078e59 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -1182,12 +1182,18 @@ class RoomContextHandler:
results["event"] = filtered[0]
# Fetch the aggregations.
- aggregations = await self.store.get_bundled_aggregations([results["event"]])
+ aggregations = await self.store.get_bundled_aggregations(
+ [results["event"]], user.to_string()
+ )
aggregations.update(
- await self.store.get_bundled_aggregations(results["events_before"])
+ await self.store.get_bundled_aggregations(
+ results["events_before"], user.to_string()
+ )
)
aggregations.update(
- await self.store.get_bundled_aggregations(results["events_after"])
+ await self.store.get_bundled_aggregations(
+ results["events_after"], user.to_string()
+ )
)
results["aggregations"] = aggregations
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index e1df9b3106..ffc6b748e8 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -637,7 +637,9 @@ class SyncHandler:
# as clients will have all the necessary information.
bundled_aggregations = None
if limited or newly_joined_room:
- bundled_aggregations = await self.store.get_bundled_aggregations(recents)
+ bundled_aggregations = await self.store.get_bundled_aggregations(
+ recents, sync_config.user.to_string()
+ )
return TimelineBatch(
events=recents,
|