diff options
author | Eric Eastwood <eric.eastwood@beta.gouv.fr> | 2024-07-24 17:10:38 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-24 17:10:38 -0500 |
commit | 729026e604276f2816b45ac7511b8deba0df21fd (patch) | |
tree | 05417020c62271ff929253f5ab970cf30114fa8f /synapse/rest/client/sync.py | |
parent | Sliding Sync: ensure bump stamp ignores backfilled events (#17478) (diff) | |
download | synapse-729026e604276f2816b45ac7511b8deba0df21fd.tar.xz |
Sliding Sync: Add Account Data extension (MSC3959) (#17477)
Extensions based on [MSC3575](https://github.com/matrix-org/matrix-spec-proposals/pull/3575): Sliding Sync
Diffstat (limited to 'synapse/rest/client/sync.py')
-rw-r--r-- | synapse/rest/client/sync.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py index d72dfa2b10..7cf1f56435 100644 --- a/synapse/rest/client/sync.py +++ b/synapse/rest/client/sync.py @@ -929,7 +929,6 @@ class SlidingSyncRestServlet(RestServlet): return 200, response_content - # TODO: Is there a better way to encode things? async def encode_response( self, requester: Requester, @@ -1117,6 +1116,24 @@ class SlidingSyncRestServlet(RestServlet): extensions.e2ee.device_list_updates.left ) + if extensions.account_data is not None: + serialized_extensions["account_data"] = { + # Same as the the top-level `account_data.events` field in Sync v2. + "global": [ + {"type": account_data_type, "content": content} + for account_data_type, content in extensions.account_data.global_account_data_map.items() + ], + # Same as the joined room's account_data field in Sync v2, e.g the path + # `rooms.join["!foo:bar"].account_data.events`. + "rooms": { + room_id: [ + {"type": account_data_type, "content": content} + for account_data_type, content in event_map.items() + ] + for room_id, event_map in extensions.account_data.account_data_by_room_map.items() + }, + } + return serialized_extensions |