wip
Some checks failed
CloudSave/pipeline/head There was a failure building this commit

This commit is contained in:
2025-09-11 17:41:57 +02:00
parent d15de3c6a1
commit 5f7ca22b8f
5 changed files with 100 additions and 23 deletions

View File

@@ -19,7 +19,7 @@ type (
service *data.Service
stateCallback func(s State, g repository.Metadata)
errorCallback func(err error)
errorCallback func(err error, g repository.Metadata)
conflictCallback func(a, b repository.Metadata) ConflictResolution
}
)
@@ -63,7 +63,7 @@ func (s *Syncer) SetStateCallback(fn func(s State, g repository.Metadata)) {
s.stateCallback = fn
}
func (s *Syncer) SetErrorCallback(fn func(err error)) {
func (s *Syncer) SetErrorCallback(fn func(err error, g repository.Metadata)) {
s.errorCallback = fn
}
@@ -74,20 +74,20 @@ func (s *Syncer) SetConflictCallback(fn func(a, b repository.Metadata) ConflictR
func (s *Syncer) Sync() {
games, err := s.service.AllGames()
if err != nil {
s.errorCallback(fmt.Errorf("failed to get all games: %w", err))
s.errorCallback(fmt.Errorf("failed to get all games: %w", err), repository.Metadata{})
return
}
for _, g := range games {
r, err := remote.One(g.ID)
if err != nil {
s.errorCallback(fmt.Errorf("%w: %s", ErrDatastore, err))
s.errorCallback(fmt.Errorf("%w: %s", ErrDatastore, err), g)
}
if r.URL != s.cli.BaseURL() {
continue
}
if err := s.sync(g); err != nil {
s.errorCallback(err)
s.errorCallback(err, g)
}
}
}