Handle invite in appservice roomserver consumer
@@ -83,12 +83,13 @@ func (s *OutputRoomEventConsumer) onMessage(ctx context.Context, msg *nats.Msg)
return true
}
- if output.Type != api.OutputTypeNewRoomEvent || output.NewRoomEvent == nil {
- return true
- }
+ log.WithFields(log.Fields{
+ "type": output.Type,
+ }).Debug("Got a message in OutputRoomEventConsumer")
+ events := []*gomatrixserverlib.HeaderedEvent{}
+ if output.Type == api.OutputTypeNewRoomEvent && output.NewRoomEvent != nil {
newEventID := output.NewRoomEvent.Event.EventID()
- events := make([]*gomatrixserverlib.HeaderedEvent, 0, len(output.NewRoomEvent.AddsStateEventIDs))
events = append(events, output.NewRoomEvent.Event)
if len(output.NewRoomEvent.AddsStateEventIDs) > 0 {
eventsReq := &api.QueryEventsByIDRequest{
@@ -107,6 +108,14 @@ func (s *OutputRoomEventConsumer) onMessage(ctx context.Context, msg *nats.Msg)
events = append(events, eventsRes.Events...)
}
}
+ } else if output.Type == api.OutputTypeNewInviteEvent && output.NewInviteEvent != nil {
+ events = append(events, output.NewInviteEvent.Event)
+ } else {
+ log.WithFields(log.Fields{
+ "type": output.Type,
+ }).Debug("appservice OutputRoomEventConsumer ignoring event", string(msg.Data))
+ return true
+ }
// Send event to any relevant application services
if err := s.filterRoomserverEvents(context.TODO(), events); err != nil {
