diff options
author | Erik Johnston <erikj@element.io> | 2024-07-10 11:58:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 11:58:42 +0100 |
commit | 4ca13ce0dd6d1dc931cfde7e06191200ca0ec066 (patch) | |
tree | 1efce62ab2279a8881926e32275ecbb40f4725d7 /synapse/rest | |
parent | Merge branch 'release-v1.111' into develop (diff) | |
download | synapse-4ca13ce0dd6d1dc931cfde7e06191200ca0ec066.tar.xz |
Handle to-device extensions to Sliding Sync (#17416)
Implements MSC3885 --------- Co-authored-by: Eric Eastwood <eric.eastwood@beta.gouv.fr>
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/client/sync.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py index 13aed1dc85..94d5faf9f7 100644 --- a/synapse/rest/client/sync.py +++ b/synapse/rest/client/sync.py @@ -942,7 +942,9 @@ class SlidingSyncRestServlet(RestServlet): response["rooms"] = await self.encode_rooms( requester, sliding_sync_result.rooms ) - response["extensions"] = {} # TODO: sliding_sync_result.extensions + response["extensions"] = await self.encode_extensions( + requester, sliding_sync_result.extensions + ) return response @@ -1054,6 +1056,19 @@ class SlidingSyncRestServlet(RestServlet): return serialized_rooms + async def encode_extensions( + self, requester: Requester, extensions: SlidingSyncResult.Extensions + ) -> JsonDict: + result = {} + + if extensions.to_device is not None: + result["to_device"] = { + "next_batch": extensions.to_device.next_batch, + "events": extensions.to_device.events, + } + + return result + def register_servlets(hs: "HomeServer", http_server: HttpServer) -> None: SyncRestServlet(hs).register(http_server) |