From 6e6c67967d34879397c561f73a59e671dbc0017c Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 1 Oct 2024 17:32:58 +0300 Subject: [PATCH] handlewhatsapp,matrix: provide stream order in messages [skip cd] --- pkg/connector/events.go | 9 +++++++++ pkg/connector/handlematrix.go | 1 + 2 files changed, 10 insertions(+) diff --git a/pkg/connector/events.go b/pkg/connector/events.go index 646e592f..698dfe26 100644 --- a/pkg/connector/events.go +++ b/pkg/connector/events.go @@ -93,12 +93,17 @@ type WAMessageEvent struct { postHandle func() } +func (evt *WAMessageEvent) GetStreamOrder() int64 { + return evt.Info.Timestamp.Unix() +} + var ( _ bridgev2.RemoteMessage = (*WAMessageEvent)(nil) _ bridgev2.RemoteMessageUpsert = (*WAMessageEvent)(nil) _ bridgev2.RemoteMessageWithTransactionID = (*WAMessageEvent)(nil) _ bridgev2.RemoteEventWithTimestamp = (*WAMessageEvent)(nil) _ bridgev2.RemoteEventThatMayCreatePortal = (*WAMessageEvent)(nil) + _ bridgev2.RemoteEventWithStreamOrder = (*WAMessageEvent)(nil) _ bridgev2.RemoteReaction = (*WAMessageEvent)(nil) _ bridgev2.RemoteReactionRemove = (*WAMessageEvent)(nil) _ bridgev2.RemoteReactionWithMeta = (*WAMessageEvent)(nil) @@ -303,6 +308,10 @@ func (evt *WAUndecryptableMessage) ConvertMessage(ctx context.Context, portal *b }, nil } +func (evt *WAUndecryptableMessage) GetStreamOrder() int64 { + return evt.Info.Timestamp.Unix() +} + type WAMediaRetry struct { *events.MediaRetry wa *WhatsAppClient diff --git a/pkg/connector/handlematrix.go b/pkg/connector/handlematrix.go index 0bb7efd4..006ed36e 100644 --- a/pkg/connector/handlematrix.go +++ b/pkg/connector/handlematrix.go @@ -53,6 +53,7 @@ func (wa *WhatsAppClient) HandleMatrixMessage(ctx context.Context, msg *bridgev2 SenderDeviceID: wa.JID.Device, }, }, + StreamOrder: resp.Timestamp.Unix(), RemovePending: networkid.TransactionID(wrappedMsgID), }, nil }