aboutsummaryrefslogtreecommitdiff
path: root/federationapi
diff options
context:
space:
mode:
authoroliverpool <3864879+oliverpool@users.noreply.github.com>2020-08-25 22:04:35 +0200
committerGitHub <noreply@github.com>2020-08-25 21:04:35 +0100
commit3205b9212d76f61301efae3c554bf9c3fbfc94c8 (patch)
tree6ec60e814c018c85e88ccf3acba1206b43adc96c /federationapi
parent55498c8deb262e564e1b79bf4409eb5593f3034e (diff)
[readability] use event.StateKeyEquals where relevant and minor for-loop refactoring (#1339)
* use event.StateKeyEquals where relevant Signed-off-by: Olivier Charvin <git@olivier.pfad.fr> * use userID
Diffstat (limited to 'federationapi')
-rw-r--r--federationapi/routing/join.go11
-rw-r--r--federationapi/routing/leave.go19
2 files changed, 16 insertions, 14 deletions
diff --git a/federationapi/routing/join.go b/federationapi/routing/join.go
index 4874f4d1..ffdadd52 100644
--- a/federationapi/routing/join.go
+++ b/federationapi/routing/join.go
@@ -165,7 +165,7 @@ func SendJoin(
}
// Check that a state key is provided.
- if event.StateKey() == nil || (event.StateKey() != nil && *event.StateKey() == "") {
+ if event.StateKey() == nil || event.StateKeyEquals("") {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.BadJSON(
@@ -253,11 +253,12 @@ func SendJoin(
// there isn't much point in sending another join event into the room.
alreadyJoined := false
for _, se := range stateAndAuthChainResponse.StateEvents {
+ if !se.StateKeyEquals(*event.StateKey()) {
+ continue
+ }
if membership, merr := se.Membership(); merr == nil {
- if se.StateKey() != nil && *se.StateKey() == *event.StateKey() {
- alreadyJoined = (membership == "join")
- break
- }
+ alreadyJoined = (membership == gomatrixserverlib.Join)
+ break
}
}
diff --git a/federationapi/routing/leave.go b/federationapi/routing/leave.go
index d265886b..d2fbfc71 100644
--- a/federationapi/routing/leave.go
+++ b/federationapi/routing/leave.go
@@ -81,15 +81,16 @@ func MakeLeave(
// event. This means that /send_leave will be a no-op, which helps
// to reject invites multiple times - hopefully.
for _, state := range queryRes.StateEvents {
- if state.Type() == gomatrixserverlib.MRoomMember && state.StateKeyEquals(userID) {
- if mem, merr := state.Membership(); merr == nil && mem == gomatrixserverlib.Leave {
- return util.JSONResponse{
- Code: http.StatusOK,
- JSON: map[string]interface{}{
- "room_version": event.RoomVersion,
- "event": state,
- },
- }
+ if !state.StateKeyEquals(userID) {
+ continue
+ }
+ if mem, merr := state.Membership(); merr == nil && mem == gomatrixserverlib.Leave {
+ return util.JSONResponse{
+ Code: http.StatusOK,
+ JSON: map[string]interface{}{
+ "room_version": event.RoomVersion,
+ "event": state,
+ },
}
}
}