mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 04:36:43 +00:00
feat(BRIDGE-379): mailbox pre-checker on startup & conflict resolver for bridge internal mailboxes; TODO potentially add this for system mailboxes as well
This commit is contained in:
@ -94,6 +94,7 @@ type Service struct {
|
||||
|
||||
observabilitySender observability.Sender
|
||||
labelConflictManager *LabelConflictManager
|
||||
LabelConflictChecker *LabelConflictChecker
|
||||
}
|
||||
|
||||
func NewService(
|
||||
@ -129,7 +130,7 @@ func NewService(
|
||||
syncMessageBuilder := NewSyncMessageBuilder(rwIdentity)
|
||||
syncReporter := newSyncReporter(identityState.User.ID, eventPublisher, time.Second)
|
||||
|
||||
return &Service{
|
||||
service := &Service{
|
||||
cpc: cpc.NewCPC(),
|
||||
client: client,
|
||||
log: log,
|
||||
@ -163,6 +164,9 @@ func NewService(
|
||||
observabilitySender: observabilitySender,
|
||||
labelConflictManager: labelConflictManager,
|
||||
}
|
||||
|
||||
service.LabelConflictChecker = NewConflictChecker(service, reporter, gluonIDProvider, serverManager)
|
||||
return service
|
||||
}
|
||||
|
||||
func (s *Service) Start(
|
||||
@ -663,7 +667,7 @@ func (s *Service) setShowAllMail(v bool) {
|
||||
|
||||
func (s *Service) startSyncing() {
|
||||
s.isSyncing.Store(true)
|
||||
s.syncHandler.Execute(s.syncReporter, s.labels.GetLabelMap(), s.syncUpdateApplier, s.syncMessageBuilder, syncservice.DefaultRetryCoolDown)
|
||||
s.syncHandler.Execute(s.syncReporter, s.labels.GetLabelMap(), s.syncUpdateApplier, s.syncMessageBuilder, syncservice.DefaultRetryCoolDown, s.LabelConflictChecker)
|
||||
}
|
||||
|
||||
func (s *Service) cancelSync() {
|
||||
@ -671,6 +675,10 @@ func (s *Service) cancelSync() {
|
||||
s.isSyncing.Store(false)
|
||||
}
|
||||
|
||||
func (s *Service) getConnectors() []*Connector {
|
||||
return maps.Values(s.connectors)
|
||||
}
|
||||
|
||||
type resyncReq struct{}
|
||||
|
||||
type getLabelsReq struct{}
|
||||
|
||||
Reference in New Issue
Block a user