From f1aef383b75710ad6990b0eccfbfa94d2992026f Mon Sep 17 00:00:00 2001 From: Atanas Janeshliev Date: Tue, 5 Nov 2024 16:45:15 +0100 Subject: [PATCH] fix(BRIDGE-258): fixed issue with draft updates and sending during synchronization --- .../services/imapservice/service_sync_events.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/services/imapservice/service_sync_events.go b/internal/services/imapservice/service_sync_events.go index 42905f75..eb9a2c84 100644 --- a/internal/services/imapservice/service_sync_events.go +++ b/internal/services/imapservice/service_sync_events.go @@ -65,6 +65,22 @@ func (s syncMessageEventHandler) HandleMessageEvents(ctx context.Context, events return err } + case proton.EventUpdate: + if event.Message.IsDraft() || (event.Message.Flags&proton.MessageFlagSent != 0) { + updates, err := onMessageUpdateDraftOrSent( + logging.WithLogrusField(ctx, "action", "update draft or sent message (sync)"), + s.service, + event, + ) + if err != nil { + return fmt.Errorf("failed to handle update draft event (sync): %w", err) + } + + if err := waitOnIMAPUpdates(ctx, updates); err != nil { + return err + } + } + case proton.EventDelete: updates := onMessageDeleted( logging.WithLogrusField(ctx, "action", "delete message (sync)"),