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)
}
// RemoveMembership removes the membership of which the `join` membership event
// ID matches with the given event ID.
// RemoveMembership removes the membership linking the user matching a given
// localpart and the room matching a given room ID.
// 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)
}

View file

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