aboutsummaryrefslogtreecommitdiff
path: root/clientapi/routing/sendevent.go
diff options
context:
space:
mode:
Diffstat (limited to 'clientapi/routing/sendevent.go')
-rw-r--r--clientapi/routing/sendevent.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go
index 17200171..a167a5a7 100644
--- a/clientapi/routing/sendevent.go
+++ b/clientapi/routing/sendevent.go
@@ -316,10 +316,17 @@ func generateSendEvent(
}
}
senderID, err := rsAPI.QuerySenderIDForUser(ctx, *validRoomID, *fullUserID)
- if err != nil || senderID == nil {
+ if err != nil {
return nil, &util.JSONResponse{
- Code: http.StatusNotFound,
- JSON: spec.NotFound("Unable to find senderID for user"),
+ Code: http.StatusInternalServerError,
+ JSON: spec.NotFound("internal server error"),
+ }
+ } else if senderID == nil {
+ // TODO: is it always the case that lack of a sender ID means they're not joined?
+ // And should this logic be deferred to the roomserver somehow?
+ return nil, &util.JSONResponse{
+ Code: http.StatusForbidden,
+ JSON: spec.Forbidden("not joined to room"),
}
}