Fixed membership removal

This commit is contained in:
Brendan Abolivier 2017-07-14 11:02:47 +01:00
parent 837e3a62bb
commit 3624952372
No known key found for this signature in database
GPG key ID: 8EF1500759F70623
2 changed files with 12 additions and 5 deletions

View file

@ -122,10 +122,17 @@ func (d *Database) SaveMembership(localpart string, roomID string, eventID strin
return d.memberships.insertMembership(localpart, roomID, eventID) return d.memberships.insertMembership(localpart, roomID, eventID)
} }
// RemoveMembership removes the membership of which the `join` membership event // RemoveMembership removes the membership linking the user matching a given
// ID matches with the given event ID. // localpart and the room matching a given room ID.
// If the removal fails, or if there is no membership to remove, returns an error // If the removal fails, or if there is no membership to remove, returns an error
func (d *Database) RemoveMembership(eventID string) error { func (d *Database) RemoveMembership(localpart string, roomID string) error {
return d.memberships.deleteMembership(localpart, roomID)
}
// RemoveMembershipByEventID removes the membership of which the `join` membership
// event ID matches a given event ID
// If the removal fails, or if there is no membership to remove, returns an error
func (d *Database) RemoveMembershipByEventID(eventID string) error {
return d.memberships.deleteMembershipByEventID(eventID) return d.memberships.deleteMembershipByEventID(eventID)
} }

View file

@ -101,7 +101,7 @@ func (s *OutputRoomEvent) onMessage(msg *sarama.ConsumerMessage) error {
} }
for _, id := range output.NewRoomEvent.RemovesStateEventIDs { for _, id := range output.NewRoomEvent.RemovesStateEventIDs {
if err := s.db.RemoveMembership(id); err != nil { if err := s.db.RemoveMembershipByEventID(id); err != nil {
return err return err
} }
} }
@ -183,7 +183,7 @@ func (s *OutputRoomEvent) updateMembership(ev gomatrixserverlib.Event) error {
} }
case "leave": case "leave":
case "ban": case "ban":
if err := s.db.RemoveMembership(eventID); err != nil { if err := s.db.RemoveMembership(localpart, roomID); err != nil {
return err return err
} }
} }