Fixed membership not being saved on the right conditions + added membership removal

This commit is contained in:
Brendan Abolivier 2017-07-12 19:05:17 +01:00
parent 9120188829
commit 013a0a3732
No known key found for this signature in database
GPG key ID: 8EF1500759F70623

View file

@ -89,9 +89,21 @@ func (s *OutputRoomEvent) onMessage(msg *sarama.ConsumerMessage) error {
if ev.Type() == "m.room.member" && ev.StateKey() != nil {
localpart := getLocalPart(*ev.StateKey())
roomID := ev.RoomID()
if err := s.db.SaveMembership(localpart, roomID); err != nil {
membership, err := ev.Membership()
if err != nil {
return err
}
switch membership {
case "join":
if err := s.db.SaveMembership(localpart, roomID); err != nil {
return err
}
case "leave":
case "ban":
if err := s.db.RemoveMembership(localpart, roomID); err != nil {
return err
}
}
}
return nil