diff --git a/internal/services/imapservice/sync_update_applier.go b/internal/services/imapservice/sync_update_applier.go index 1c4f9425..eda913a0 100644 --- a/internal/services/imapservice/sync_update_applier.go +++ b/internal/services/imapservice/sync_update_applier.go @@ -111,39 +111,6 @@ func (s *SyncUpdateApplier) ApplySyncUpdates(ctx context.Context, updates []sync return nil } -func (s *SyncUpdateApplier) SyncSystemLabelsOnly(ctx context.Context, labels map[string]proton.Label) error { - request := func(ctx context.Context, _ usertypes.AddressMode, connectors map[string]*Connector) ([]imap.Update, error) { - updates := make([]imap.Update, 0, len(labels)*len(connectors)) - for _, label := range labels { - if !WantLabel(label) { - continue - } - - if label.Type != proton.LabelTypeSystem { - continue - } - - for _, c := range connectors { - update := newSystemMailboxCreatedUpdate(imap.MailboxID(label.ID), label.Name) - updates = append(updates, update) - c.publishUpdate(ctx, update) - } - } - return updates, nil - } - - updates, err := s.sendRequest(ctx, request) - if err != nil { - return err - } - - if err := waitOnIMAPUpdates(ctx, updates); err != nil { - return fmt.Errorf("could not sync system labels: %w", err) - } - - return nil -} - func (s *SyncUpdateApplier) SyncLabels(ctx context.Context, labels map[string]proton.Label) error { request := func(ctx context.Context, _ usertypes.AddressMode, connectors map[string]*Connector) ([]imap.Update, error) { return syncLabels(ctx, labels, maps.Values(connectors)) diff --git a/internal/services/syncservice/handler.go b/internal/services/syncservice/handler.go index 7a82648b..7c9e50ea 100644 --- a/internal/services/syncservice/handler.go +++ b/internal/services/syncservice/handler.go @@ -138,11 +138,10 @@ func (t *Handler) run(ctx context.Context, } if syncStatus.IsComplete() { - t.log.Info("Sync already complete, only system labels will be updated") - - if err := updateApplier.SyncSystemLabelsOnly(ctx, labels); err != nil { - t.log.WithError(err).Error("Failed to sync system labels") + t.log.Info("Sync already complete, updating labels") + if err := updateApplier.SyncLabels(ctx, labels); err != nil { + t.log.WithError(err).Error("Failed to sync labels") return err } diff --git a/internal/services/syncservice/handler_test.go b/internal/services/syncservice/handler_test.go index 7b18f4f4..80af6269 100644 --- a/internal/services/syncservice/handler_test.go +++ b/internal/services/syncservice/handler_test.go @@ -74,8 +74,7 @@ func TestTask_NoStateAndSucceeds(t *testing.T) { } { - call1 := tt.updateApplier.EXPECT().SyncLabels(gomock.Any(), gomock.Eq(labels)).Times(1).Return(nil) - tt.updateApplier.EXPECT().SyncSystemLabelsOnly(gomock.Any(), gomock.Eq(labels)).After(call1).Times(1).Return(nil) + tt.updateApplier.EXPECT().SyncLabels(gomock.Any(), gomock.Eq(labels)).Times(2).Return(nil) } { @@ -203,7 +202,7 @@ func TestTask_StateHasSyncedState(t *testing.T) { }, nil }) - tt.updateApplier.EXPECT().SyncSystemLabelsOnly(gomock.Any(), gomock.Eq(labels)).Return(nil) + tt.updateApplier.EXPECT().SyncLabels(gomock.Any(), gomock.Eq(labels)).Return(nil) err := tt.task.run(context.Background(), tt.syncReporter, labels, tt.updateApplier, tt.messageBuilder) require.NoError(t, err) diff --git a/internal/services/syncservice/interfaces.go b/internal/services/syncservice/interfaces.go index fd286a88..6bbd3571 100644 --- a/internal/services/syncservice/interfaces.go +++ b/internal/services/syncservice/interfaces.go @@ -80,7 +80,6 @@ type MessageBuilder interface { type UpdateApplier interface { ApplySyncUpdates(ctx context.Context, updates []BuildResult) error - SyncSystemLabelsOnly(ctx context.Context, labels map[string]proton.Label) error SyncLabels(ctx context.Context, labels map[string]proton.Label) error } diff --git a/internal/services/syncservice/mocks_test.go b/internal/services/syncservice/mocks_test.go index 53e12612..13fa02c5 100644 --- a/internal/services/syncservice/mocks_test.go +++ b/internal/services/syncservice/mocks_test.go @@ -548,20 +548,6 @@ func (mr *MockUpdateApplierMockRecorder) SyncLabels(arg0, arg1 interface{}) *gom return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncLabels", reflect.TypeOf((*MockUpdateApplier)(nil).SyncLabels), arg0, arg1) } -// SyncSystemLabelsOnly mocks base method. -func (m *MockUpdateApplier) SyncSystemLabelsOnly(arg0 context.Context, arg1 map[string]proton.Label) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "SyncSystemLabelsOnly", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// SyncSystemLabelsOnly indicates an expected call of SyncSystemLabelsOnly. -func (mr *MockUpdateApplierMockRecorder) SyncSystemLabelsOnly(arg0, arg1 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncSystemLabelsOnly", reflect.TypeOf((*MockUpdateApplier)(nil).SyncSystemLabelsOnly), arg0, arg1) -} - // MockMessageBuilder is a mock of MessageBuilder interface. type MockMessageBuilder struct { ctrl *gomock.Controller