This commit is contained in:
Neil Alexander 2020-05-04 16:42:01 +01:00
parent 993d973cfa
commit c79b1294ee
3 changed files with 21 additions and 10 deletions

View file

@ -33,6 +33,15 @@ func MakeLeave(
rsAPI api.RoomserverInternalAPI, rsAPI api.RoomserverInternalAPI,
roomID, userID string, roomID, userID string,
) util.JSONResponse { ) util.JSONResponse {
verReq := api.QueryRoomVersionForRoomRequest{RoomID: roomID}
verRes := api.QueryRoomVersionForRoomResponse{}
if err := rsAPI.QueryRoomVersionForRoom(httpReq.Context(), &verReq, &verRes); err != nil {
return util.JSONResponse{
Code: http.StatusInternalServerError,
JSON: jsonerror.InternalServerError(),
}
}
_, domain, err := gomatrixserverlib.SplitID('@', userID) _, domain, err := gomatrixserverlib.SplitID('@', userID)
if err != nil { if err != nil {
return util.JSONResponse{ return util.JSONResponse{
@ -87,7 +96,10 @@ func MakeLeave(
return util.JSONResponse{ return util.JSONResponse{
Code: http.StatusOK, Code: http.StatusOK,
JSON: map[string]interface{}{"event": builder}, JSON: map[string]interface{}{
"room_version": verRes.RoomVersion,
"event": builder,
},
} }
} }

View file

@ -193,11 +193,8 @@ func (r *FederationSenderInternalAPI) PerformLeave(
// Work out if we support the room version that has been supplied in // Work out if we support the room version that has been supplied in
// the make_leave response. // the make_leave response.
if respMakeLeave.RoomVersion == "" {
respMakeLeave.RoomVersion = gomatrixserverlib.RoomVersionV1
}
if _, err = respMakeLeave.RoomVersion.EventFormat(); err != nil { if _, err = respMakeLeave.RoomVersion.EventFormat(); err != nil {
return fmt.Errorf("respMakeLeave.RoomVersion.EventFormat: %w", err) return gomatrixserverlib.UnsupportedRoomVersionError{}
} }
// Build the leave event. // Build the leave event.

View file

@ -155,9 +155,6 @@ func (r *RoomserverInternalAPI) performRejectInvite(
return fmt.Errorf("fsAPI.PerformLeave: %w", err) return fmt.Errorf("fsAPI.PerformLeave: %w", err)
} }
// If this succeeded then we can clean up the invite.
fmt.Println("REMOVE THE INVITE!")
return nil return nil
} }
@ -189,14 +186,19 @@ func (r *RoomserverInternalAPI) isInvitePending(
if err != nil { if err != nil {
return "", fmt.Errorf("r.DB.GetInvitesForUser: %w", err) return "", fmt.Errorf("r.DB.GetInvitesForUser: %w", err)
} }
fmt.Println("Sender user NIDs:", senderUserNIDs) if len(senderUserNIDs) == 0 {
return "", fmt.Errorf("no senderUserNIDs")
}
// Look up the user ID from the NID. // Look up the user ID from the NID.
senderUsers, err := r.DB.EventStateKeys(ctx, senderUserNIDs) senderUsers, err := r.DB.EventStateKeys(ctx, senderUserNIDs)
if err != nil { if err != nil {
return "", fmt.Errorf("r.DB.EventStateKeys: %w", err) return "", fmt.Errorf("r.DB.EventStateKeys: %w", err)
} }
fmt.Println("Sender users:", senderUsers) if len(senderUsers) == 0 {
return "", fmt.Errorf("no senderUsers")
}
senderUser, senderUserFound := senderUsers[senderUserNIDs[0]] senderUser, senderUserFound := senderUsers[senderUserNIDs[0]]
if !senderUserFound { if !senderUserFound {
return "", fmt.Errorf("missing user for NID %d (%+v)", senderUserNIDs[0], senderUsers) return "", fmt.Errorf("missing user for NID %d (%+v)", senderUserNIDs[0], senderUsers)