mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-08 09:32:43 -04:00
Include bundled aggregations for the latest event in a thread. (#12273)
The `latest_event` field of the bundled aggregations for `m.thread` relations did not include bundled aggregations itself. This resulted in clients needing to immediately request the event from the server (and thus making it useless that the latest event itself was serialized instead of just including an event ID).
This commit is contained in:
parent
01e625513a
commit
75dff3dc98
5 changed files with 197 additions and 50 deletions
|
@ -445,8 +445,8 @@ class RelationsWorkerStore(SQLBaseStore):
|
|||
@cachedList(cached_method_name="get_thread_summary", list_name="event_ids")
|
||||
async def get_thread_summaries(
|
||||
self, event_ids: Collection[str]
|
||||
) -> Dict[str, Optional[Tuple[int, EventBase, Optional[EventBase]]]]:
|
||||
"""Get the number of threaded replies, the latest reply (if any), and the latest edit for that reply for the given event.
|
||||
) -> Dict[str, Optional[Tuple[int, EventBase]]]:
|
||||
"""Get the number of threaded replies and the latest reply (if any) for the given events.
|
||||
|
||||
Args:
|
||||
event_ids: Summarize the thread related to this event ID.
|
||||
|
@ -458,7 +458,6 @@ class RelationsWorkerStore(SQLBaseStore):
|
|||
Each summary is a tuple of:
|
||||
The number of events in the thread.
|
||||
The most recent event in the thread.
|
||||
The most recent edit to the most recent event in the thread, if applicable.
|
||||
"""
|
||||
|
||||
def _get_thread_summaries_txn(
|
||||
|
@ -544,9 +543,6 @@ class RelationsWorkerStore(SQLBaseStore):
|
|||
|
||||
latest_events = await self.get_events(latest_event_ids.values()) # type: ignore[attr-defined]
|
||||
|
||||
# Check to see if any of those events are edited.
|
||||
latest_edits = await self.get_applicable_edits(latest_event_ids.values())
|
||||
|
||||
# Map to the event IDs to the thread summary.
|
||||
#
|
||||
# There might not be a summary due to there not being a thread or
|
||||
|
@ -557,8 +553,7 @@ class RelationsWorkerStore(SQLBaseStore):
|
|||
|
||||
summary = None
|
||||
if latest_event:
|
||||
latest_edit = latest_edits.get(latest_event_id)
|
||||
summary = (counts[parent_event_id], latest_event, latest_edit)
|
||||
summary = (counts[parent_event_id], latest_event)
|
||||
summaries[parent_event_id] = summary
|
||||
|
||||
return summaries
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue