From 06d7fdf26f4db30a1574bb1009fdf76ee8ece86a Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Mon, 28 Aug 2023 14:31:52 +0200 Subject: [PATCH] fix(GODT-2805): Ignore Contact Group Labels --- internal/services/imapservice/helpers.go | 2 +- internal/services/imapservice/service_label_events.go | 8 ++++++++ internal/services/imapservice/sync_update_applier.go | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/internal/services/imapservice/helpers.go b/internal/services/imapservice/helpers.go index 83d4a021..327d1415 100644 --- a/internal/services/imapservice/helpers.go +++ b/internal/services/imapservice/helpers.go @@ -133,7 +133,7 @@ func toIMAPMessage(message proton.MessageMetadata) imap.Message { func WantLabel(label proton.Label) bool { if label.Type != proton.LabelTypeSystem { - return true + return label.Type != proton.LabelTypeContactGroup } // nolint:exhaustive diff --git a/internal/services/imapservice/service_label_events.go b/internal/services/imapservice/service_label_events.go index 472a7a29..9821c266 100644 --- a/internal/services/imapservice/service_label_events.go +++ b/internal/services/imapservice/service_label_events.go @@ -38,6 +38,10 @@ func (s *Service) HandleLabelEvents(ctx context.Context, events []proton.LabelEv for _, event := range events { switch event.Action { case proton.EventCreate: + if !WantLabel(event.Label) { + continue + } + updates := onLabelCreated(ctx, s, event) if err := waitOnIMAPUpdates(ctx, updates); err != nil { @@ -45,6 +49,10 @@ func (s *Service) HandleLabelEvents(ctx context.Context, events []proton.LabelEv } case proton.EventUpdateFlags, proton.EventUpdate: + if !WantLabel(event.Label) { + continue + } + updates, err := onLabelUpdated(ctx, s, event) if err != nil { return fmt.Errorf("failed to handle update label event: %w", err) diff --git a/internal/services/imapservice/sync_update_applier.go b/internal/services/imapservice/sync_update_applier.go index a202ddbf..58230ae5 100644 --- a/internal/services/imapservice/sync_update_applier.go +++ b/internal/services/imapservice/sync_update_applier.go @@ -191,7 +191,8 @@ func syncLabels(ctx context.Context, labels map[string]proton.Label, connectors } default: - return nil, fmt.Errorf("unknown label type: %d", label.Type) + logrus.Errorf("Unknown label type: %d", label.Type) + continue } }