Tidy a bit

This commit is contained in:
Neil Alexander 2020-05-04 17:16:57 +01:00
parent c79b1294ee
commit 5f28243464
2 changed files with 13 additions and 13 deletions

View file

@ -169,7 +169,7 @@ func (r *FederationSenderInternalAPI) PerformLeave(
) )
if err != nil { if err != nil {
// TODO: Check if the user was not allowed to leave the room. // TODO: Check if the user was not allowed to leave the room.
return fmt.Errorf("r.federation.MakeLeave: %w", err) return err
} }
// Set all the fields to be what they should be, this should be a no-op // Set all the fields to be what they should be, this should be a no-op
@ -225,7 +225,7 @@ func (r *FederationSenderInternalAPI) PerformLeave(
// If we reach here then we didn't complete a leave for some reason. // If we reach here then we didn't complete a leave for some reason.
return fmt.Errorf( return fmt.Errorf(
"failed to leave user %q from room %q through %d server(s)", "Failed to leave room %q through %d server(s)",
request.UserID, request.RoomID, len(request.ServerNames), request.RoomID, len(request.ServerNames),
) )
} }

View file

@ -40,10 +40,7 @@ func (r *RoomserverInternalAPI) performLeaveRoomByID(
// that. // that.
senderUser, err := r.isInvitePending(ctx, req, res) senderUser, err := r.isInvitePending(ctx, req, res)
if err == nil { if err == nil {
fmt.Println("Responding to invite")
return r.performRejectInvite(ctx, req, res, senderUser) return r.performRejectInvite(ctx, req, res, senderUser)
} else {
fmt.Println("Not responding to invite:", err)
} }
// First of all we want to find out if the room exists and if the // First of all we want to find out if the room exists and if the
@ -62,21 +59,21 @@ func (r *RoomserverInternalAPI) performLeaveRoomByID(
return err return err
} }
if !latestRes.RoomExists { if !latestRes.RoomExists {
return fmt.Errorf("room %q does not exist", req.RoomID) return fmt.Errorf("Room %q does not exist", req.RoomID)
} }
// Now let's see if the user is in the room. // Now let's see if the user is in the room.
if len(latestRes.StateEvents) == 0 { if len(latestRes.StateEvents) == 0 {
return fmt.Errorf("user %q is not a member of room %q", req.UserID, req.RoomID) return fmt.Errorf("User %q is not a member of room %q", req.UserID, req.RoomID)
} }
membership, err := latestRes.StateEvents[0].Membership() membership, err := latestRes.StateEvents[0].Membership()
if err != nil { if err != nil {
return fmt.Errorf("error getting membership: %w", err) return fmt.Errorf("Error getting membership: %w", err)
} }
if membership != "join" { if membership != "join" {
// TODO: should be able to handle "invite" in this case too, if // TODO: should be able to handle "invite" in this case too, if
// it's a case of kicking or banning or such // it's a case of kicking or banning or such
return fmt.Errorf("user %q is not joined to the room (membership is %q)", req.UserID, membership) return fmt.Errorf("User %q is not joined to the room (membership is %q)", req.UserID, membership)
} }
// Prepare the template for the leave event. // Prepare the template for the leave event.
@ -102,7 +99,7 @@ func (r *RoomserverInternalAPI) performLeaveRoomByID(
buildRes := api.QueryLatestEventsAndStateResponse{} buildRes := api.QueryLatestEventsAndStateResponse{}
event, err := common.BuildEvent( event, err := common.BuildEvent(
ctx, // the request context ctx, // the request context
&eb, // the template join event &eb, // the template leave event
r.Cfg, // the server configuration r.Cfg, // the server configuration
time.Now(), // the event timestamp to use time.Now(), // the event timestamp to use
r, // the roomserver API to use r, // the roomserver API to use
@ -141,7 +138,7 @@ func (r *RoomserverInternalAPI) performRejectInvite(
) error { ) error {
_, domain, err := gomatrixserverlib.SplitID('@', senderUser) _, domain, err := gomatrixserverlib.SplitID('@', senderUser)
if err != nil { if err != nil {
return fmt.Errorf("user ID %q invalid: %w", senderUser, err) return fmt.Errorf("User ID %q invalid: %w", senderUser, err)
} }
// Ask the federation sender to perform a federated leave for us. // Ask the federation sender to perform a federated leave for us.
@ -152,9 +149,12 @@ func (r *RoomserverInternalAPI) performRejectInvite(
} }
leaveRes := fsAPI.PerformLeaveResponse{} leaveRes := fsAPI.PerformLeaveResponse{}
if err := r.fsAPI.PerformLeave(ctx, &leaveReq, &leaveRes); err != nil { if err := r.fsAPI.PerformLeave(ctx, &leaveReq, &leaveRes); err != nil {
return fmt.Errorf("fsAPI.PerformLeave: %w", err) return err
} }
// TODO: Withdraw the invite, so that the sync API etc are
// notified that we rejected it.
return nil return nil
} }