mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-18 08:06:59 +00:00
GODT-2122: Handle check for updates failure
This commit is contained in:
@ -365,7 +365,7 @@ func (bridge *Bridge) init(tlsReporter TLSReporter) error {
|
||||
|
||||
version, err := bridge.updater.GetVersionInfo(ctx, bridge.api, bridge.vault.GetUpdateChannel())
|
||||
if err != nil {
|
||||
logrus.WithError(err).Error("Failed to check for updates")
|
||||
bridge.publish(events.UpdateCheckFailed{Error: err})
|
||||
} else {
|
||||
bridge.handleUpdate(version)
|
||||
}
|
||||
|
||||
@ -111,3 +111,14 @@ type UpdateForced struct {
|
||||
func (event UpdateForced) String() string {
|
||||
return "UpdateForced"
|
||||
}
|
||||
|
||||
// UpdateCheckFailed is published when the update check fails.
|
||||
type UpdateCheckFailed struct {
|
||||
eventBase
|
||||
|
||||
Error error
|
||||
}
|
||||
|
||||
func (event UpdateCheckFailed) String() string {
|
||||
return fmt.Sprintf("UpdateCheckFailed: Error: %s", event.Error)
|
||||
}
|
||||
|
||||
@ -504,17 +504,24 @@ func (s *Service) CheckUpdate(context.Context, *emptypb.Empty) (*emptypb.Empty,
|
||||
go func() {
|
||||
defer s.panicHandler.HandlePanic()
|
||||
|
||||
updateCh, done := s.bridge.GetEvents(events.UpdateAvailable{}, events.UpdateNotAvailable{})
|
||||
updateCh, done := s.bridge.GetEvents(
|
||||
events.UpdateAvailable{},
|
||||
events.UpdateNotAvailable{},
|
||||
events.UpdateCheckFailed{},
|
||||
)
|
||||
defer done()
|
||||
|
||||
s.bridge.CheckForUpdates()
|
||||
|
||||
switch (<-updateCh).(type) {
|
||||
case events.UpdateNotAvailable:
|
||||
_ = s.SendEvent(NewUpdateIsLatestVersionEvent())
|
||||
|
||||
case events.UpdateAvailable:
|
||||
// ... this is handled by the main event loop
|
||||
|
||||
case events.UpdateNotAvailable:
|
||||
_ = s.SendEvent(NewUpdateIsLatestVersionEvent())
|
||||
case events.UpdateCheckFailed:
|
||||
// ... maybe show an error? but do nothing for now
|
||||
}
|
||||
|
||||
_ = s.SendEvent(NewUpdateCheckFinishedEvent())
|
||||
|
||||
Reference in New Issue
Block a user