From 0577bfca55d1478bd1076d02f0b0623a3d3802a8 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Wed, 24 Jun 2020 09:59:59 +0100 Subject: Pass join errors through internal API boundaries (#1157) * Pass join errors through internal API boundaries Required for certain invite sytests. We will need to think of a better way of handling this going forwards. * Include m.room.avatar in stripped state; handle trailing slashes when GETing state events * Update whitelist * Update whitelist --- roomserver/api/perform.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'roomserver/api') diff --git a/roomserver/api/perform.go b/roomserver/api/perform.go index 3e5cae1b..0f5394c9 100644 --- a/roomserver/api/perform.go +++ b/roomserver/api/perform.go @@ -5,6 +5,17 @@ import ( "github.com/matrix-org/util" ) +type JoinError int + +const ( + // JoinErrorNotAllowed means the user is not allowed to join this room (e.g join_rule:invite or banned) + JoinErrorNotAllowed JoinError = 1 + // JoinErrorBadRequest means the request was wrong in some way (invalid user ID, wrong server, etc) + JoinErrorBadRequest JoinError = 2 + // JoinErrorNoRoom means that the room being joined doesn't exist. + JoinErrorNoRoom JoinError = 3 +) + type PerformJoinRequest struct { RoomIDOrAlias string `json:"room_id_or_alias"` UserID string `json:"user_id"` @@ -13,7 +24,12 @@ type PerformJoinRequest struct { } type PerformJoinResponse struct { + // The room ID, populated on success. RoomID string `json:"room_id"` + // The reason why the join failed. Can be blank. + Error JoinError `json:"error"` + // Debugging description of the error. Always present on failure. + ErrMsg string `json:"err_msg"` } type PerformLeaveRequest struct { -- cgit v1.2.3