return NotFoundError if room not found
Per the Client-Server API[0] we should return `M_NOT_FOUND` if the room isn't found instead of generic SynapseError. This ensures that /directory/list API returns 404 for room not found instead of 400. [0]: https://matrix.org/docs/spec/client_server/unstable.html#get-matrix-client-r0-directory-list-room-roomid Signed-off-by: Serban Constantin <serban.constantin@gmail.com>
This commit is contained in:
parent
5e2ee64660
commit
70af98e361
|
@ -63,3 +63,6 @@ Christoph Witzany <christoph at web.crofting.com>
|
||||||
|
|
||||||
Pierre Jaury <pierre at jaury.eu>
|
Pierre Jaury <pierre at jaury.eu>
|
||||||
* Docker packaging
|
* Docker packaging
|
||||||
|
|
||||||
|
Serban Constantin <serban.constantin at gmail dot com>
|
||||||
|
* Small bug fix
|
|
@ -0,0 +1 @@
|
||||||
|
/directory/list API returns 404 for room not found instead of 400
|
|
@ -18,7 +18,7 @@ import logging
|
||||||
|
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
|
|
||||||
from synapse.api.errors import AuthError, Codes, SynapseError
|
from synapse.api.errors import AuthError, Codes, NotFoundError, SynapseError
|
||||||
from synapse.http.servlet import parse_json_object_from_request
|
from synapse.http.servlet import parse_json_object_from_request
|
||||||
from synapse.types import RoomAlias
|
from synapse.types import RoomAlias
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ class ClientDirectoryListServer(ClientV1RestServlet):
|
||||||
def on_GET(self, request, room_id):
|
def on_GET(self, request, room_id):
|
||||||
room = yield self.store.get_room(room_id)
|
room = yield self.store.get_room(room_id)
|
||||||
if room is None:
|
if room is None:
|
||||||
raise SynapseError(400, "Unknown room")
|
raise NotFoundError("Unknown room")
|
||||||
|
|
||||||
defer.returnValue((200, {
|
defer.returnValue((200, {
|
||||||
"visibility": "public" if room["is_public"] else "private"
|
"visibility": "public" if room["is_public"] else "private"
|
||||||
|
|
Loading…
Reference in New Issue