From 454f73745d0da8aa61cc3644b89f481184ccdbc4 Mon Sep 17 00:00:00 2001 From: Hubert Chathi Date: Tue, 30 Oct 2018 00:22:28 -0400 Subject: [PATCH] handle empty backups according to latest spec proposal fixes #4056 --- synapse/handlers/e2e_room_keys.py | 3 --- synapse/rest/client/v2_alpha/room_keys.py | 10 ++++++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/synapse/handlers/e2e_room_keys.py b/synapse/handlers/e2e_room_keys.py index 5edb3cfe0445..bae30b8b2d44 100644 --- a/synapse/handlers/e2e_room_keys.py +++ b/synapse/handlers/e2e_room_keys.py @@ -67,9 +67,6 @@ def get_room_keys(self, user_id, version, room_id=None, session_id=None): user_id, version, room_id, session_id ) - if results['rooms'] == {}: - raise SynapseError(404, "No room_keys found") - defer.returnValue(results) @defer.inlineCallbacks diff --git a/synapse/rest/client/v2_alpha/room_keys.py b/synapse/rest/client/v2_alpha/room_keys.py index 45b5817d8b7e..7b25c628c72e 100644 --- a/synapse/rest/client/v2_alpha/room_keys.py +++ b/synapse/rest/client/v2_alpha/room_keys.py @@ -209,9 +209,15 @@ def on_GET(self, request, room_id, session_id): ) if session_id: - room_keys = room_keys['rooms'][room_id]['sessions'][session_id] + if room_keys['rooms'] == {}: + raise SynapseError(404, "No room_keys found", Codes.NOT_FOUND) + else: + room_keys = room_keys['rooms'][room_id]['sessions'][session_id] elif room_id: - room_keys = room_keys['rooms'][room_id] + if room_keys['rooms'] == {}: + room_keys = {'sessions': {}} + else: + room_keys = room_keys['rooms'][room_id] defer.returnValue((200, room_keys))