From 65e59a1af961928dd2ec4a31707acf471f2dff0c Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Fri, 11 Sep 2020 22:31:32 +0100 Subject: [PATCH] support SendEventWithState with optional event --- roomserver/api/wrapper.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/roomserver/api/wrapper.go b/roomserver/api/wrapper.go index 82a4a5719..2e0e0273f 100644 --- a/roomserver/api/wrapper.go +++ b/roomserver/api/wrapper.go @@ -42,10 +42,11 @@ func SendEvents( // SendEventWithState writes an event with KindNew to the roomserver // with the state at the event as KindOutlier before it. Will not send any event that is -// marked as `true` in haveEventIDs +// marked as `true` in haveEventIDs. The event itself is optional in case +// hou just want to write outliers to the roomserver. func SendEventWithState( ctx context.Context, rsAPI RoomserverInternalAPI, state *gomatrixserverlib.RespState, - event gomatrixserverlib.HeaderedEvent, haveEventIDs map[string]bool, + event *gomatrixserverlib.HeaderedEvent, haveEventIDs map[string]bool, ) error { outliers, err := state.Events() if err != nil { @@ -69,13 +70,15 @@ func SendEventWithState( stateEventIDs[i] = state.StateEvents[i].EventID() } - ires = append(ires, InputRoomEvent{ - Kind: KindNew, - Event: event, - AuthEventIDs: event.AuthEventIDs(), - HasState: true, - StateEventIDs: stateEventIDs, - }) + if event != nil { + ires = append(ires, InputRoomEvent{ + Kind: KindNew, + Event: *event, + AuthEventIDs: event.AuthEventIDs(), + HasState: true, + StateEventIDs: stateEventIDs, + }) + } return SendInputRoomEvents(ctx, rsAPI, ires) }