Explorar el Código

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>
tags/v0.33.2rc1
Serban Constantin hace 5 años
committed by Serban Constantin
padre
commit
70af98e361
No se encontró ninguna clave conocida en la base de datos para esta firma ID de clave GPG: 554787E6E1B43DCE
Se han modificado 3 ficheros con 7 adiciones y 3 borrados
  1. +4
    -1
      AUTHORS.rst
  2. +1
    -0
      changelog.d/2952.bugfix
  3. +2
    -2
      synapse/rest/client/v1/directory.py

+ 4
- 1
AUTHORS.rst Ver fichero

@@ -62,4 +62,7 @@ Christoph Witzany <christoph at web.crofting.com>
* Add LDAP support for authentication

Pierre Jaury <pierre at jaury.eu>
* Docker packaging
* Docker packaging

Serban Constantin <serban.constantin at gmail dot com>
* Small bug fix

+ 1
- 0
changelog.d/2952.bugfix Ver fichero

@@ -0,0 +1 @@
/directory/list API returns 404 for room not found instead of 400

+ 2
- 2
synapse/rest/client/v1/directory.py Ver fichero

@@ -18,7 +18,7 @@ import logging

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.types import RoomAlias

@@ -159,7 +159,7 @@ class ClientDirectoryListServer(ClientV1RestServlet):
def on_GET(self, request, room_id):
room = yield self.store.get_room(room_id)
if room is None:
raise SynapseError(400, "Unknown room")
raise NotFoundError("Unknown room")

defer.returnValue((200, {
"visibility": "public" if room["is_public"] else "private"


Cargando…
Cancelar
Guardar