diff options
author | oliverpool <3864879+oliverpool@users.noreply.github.com> | 2020-08-25 22:04:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-25 21:04:35 +0100 |
commit | 3205b9212d76f61301efae3c554bf9c3fbfc94c8 (patch) | |
tree | 6ec60e814c018c85e88ccf3acba1206b43adc96c /federationapi | |
parent | 55498c8deb262e564e1b79bf4409eb5593f3034e (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.go | 11 | ||||
-rw-r--r-- | federationapi/routing/leave.go | 19 |
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, + }, } } } |