implements graceful error handling for sync

This commit is contained in:
Christian Beutel
2025-03-28 17:51:38 +01:00
parent af106d4859
commit c8dcebff26
2 changed files with 28 additions and 18 deletions

View File

@@ -65,7 +65,7 @@ func SyncKomoot(app core.App) error {
warning := fmt.Sprintf("error fetching tours from komoot: %v\n", err) warning := fmt.Sprintf("error fetching tours from komoot: %v\n", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
hasNewTours, err = syncTrailWithTours(app, k, komootIntegration, userId, tours) hasNewTours, err = syncTrailWithTours(app, k, komootIntegration, userId, tours)
@@ -73,7 +73,7 @@ func SyncKomoot(app core.App) error {
warning := fmt.Sprintf("error syncing komoot tours with trails: %v\n", err) warning := fmt.Sprintf("error syncing komoot tours with trails: %v\n", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
page += 1 page += 1
} }
@@ -186,19 +186,23 @@ func syncTrailWithTours(app core.App, k *KomootApi, i KomootIntegration, user st
hasNewTours = true hasNewTours = true
detailedTour, err := k.fetchDetailedTour(tour) detailedTour, err := k.fetchDetailedTour(tour)
if err != nil { if err != nil {
return hasNewTours, err app.Logger().Warn(fmt.Sprintf("Unable to fetch details for tour '%s': %v", tour.Name, err))
continue
} }
gpx, err := generateTourGPX(detailedTour) gpx, err := generateTourGPX(detailedTour)
if err != nil { if err != nil {
return hasNewTours, err app.Logger().Warn(fmt.Sprintf("Unable to generate GPX for tour '%s': %v", tour.Name, err))
continue
} }
wpIds, err := createWaypointsFromTour(app, detailedTour, user) wpIds, err := createWaypointsFromTour(app, detailedTour, user)
if err != nil { if err != nil {
return hasNewTours, err app.Logger().Warn(fmt.Sprintf("Unable to create waypoints for tour '%s': %v", tour.Name, err))
continue
} }
err = createTrailFromTour(app, detailedTour, gpx, user, wpIds) err = createTrailFromTour(app, detailedTour, gpx, user, wpIds)
if err != nil { if err != nil {
return hasNewTours, err app.Logger().Warn(fmt.Sprintf("Unable to create trail for tour '%s': %v", tour.Name, err))
continue
} }
} }

View File

@@ -91,20 +91,20 @@ func SyncStrava(app core.App) error {
for hasNewRoutes { for hasNewRoutes {
routes, err := fetchStravaRoutes(r.AccessToken, page) routes, err := fetchStravaRoutes(r.AccessToken, page)
page += 1
if err != nil { if err != nil {
warning := fmt.Sprintf("error fetching routes from strava: %v\n", err) warning := fmt.Sprintf("error fetching routes from strava: %v\n", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
hasNewRoutes, err = syncTrailsWithRoutes(app, r.AccessToken, userId, routes) hasNewRoutes, err = syncTrailsWithRoutes(app, r.AccessToken, userId, routes)
if err != nil { if err != nil {
warning := fmt.Sprintf("error syncing strava routes with trails: %v\n", err) warning := fmt.Sprintf("error syncing strava routes with trails: %v\n", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
page += 1
} }
} }
if stravaIntegration.Activities { if stravaIntegration.Activities {
@@ -112,20 +112,20 @@ func SyncStrava(app core.App) error {
hasNewActivities := true hasNewActivities := true
for hasNewActivities { for hasNewActivities {
activities, err := fetchStravaActivities(r.AccessToken, page) activities, err := fetchStravaActivities(r.AccessToken, page)
page += 1
if err != nil { if err != nil {
warning := fmt.Sprintf("error fetching activities from strava: %v", err) warning := fmt.Sprintf("error fetching activities from strava: %v", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
hasNewActivities, err = syncTrailsWithActivities(app, r.AccessToken, userId, activities) hasNewActivities, err = syncTrailsWithActivities(app, r.AccessToken, userId, activities)
if err != nil { if err != nil {
warning := fmt.Sprintf("error syncing strava activities with trails: %v", err) warning := fmt.Sprintf("error syncing strava activities with trails: %v", err)
fmt.Print(warning) fmt.Print(warning)
app.Logger().Warn(warning) app.Logger().Warn(warning)
break continue
} }
page += 1
} }
} }
} }
@@ -234,15 +234,18 @@ func syncTrailsWithRoutes(app core.App, accessToken string, user string, routes
hasNewRoutes = true hasNewRoutes = true
gpx, err := fetchRouteGPX(route, accessToken) gpx, err := fetchRouteGPX(route, accessToken)
if err != nil { if err != nil {
return hasNewRoutes, err app.Logger().Warn(fmt.Sprintf("Unable to fetch GPX for route '%s': %v", route.Name, err))
continue
} }
wpIds, err := createWaypointsFromRoute(app, route, user) wpIds, err := createWaypointsFromRoute(app, route, user)
if err != nil { if err != nil {
return hasNewRoutes, err app.Logger().Warn(fmt.Sprintf("Unable to create waypoints for route '%s': %v", route.Name, err))
continue
} }
err = createTrailFromRoute(app, route, gpx, user, wpIds) err = createTrailFromRoute(app, route, gpx, user, wpIds)
if err != nil { if err != nil {
return hasNewRoutes, err app.Logger().Warn(fmt.Sprintf("Unable to create trail for route '%s': %v", route.Name, err))
continue
} }
} }
@@ -388,15 +391,18 @@ func syncTrailsWithActivities(app core.App, accessToken string, user string, act
hasNewActivites = true hasNewActivites = true
detailedActivity, err := fetchDetailedActivity(activity, accessToken) detailedActivity, err := fetchDetailedActivity(activity, accessToken)
if err != nil { if err != nil {
return hasNewActivites, err app.Logger().Warn(fmt.Sprintf("Unable to fetch detailed activity '%s': %v", activity.Name, err))
continue
} }
gpx, err := generateActivityGPX(detailedActivity, accessToken) gpx, err := generateActivityGPX(detailedActivity, accessToken)
if err != nil { if err != nil {
return hasNewActivites, err app.Logger().Warn(fmt.Sprintf("Unable to fetch GPX for activity '%s': %v", activity.Name, err))
continue
} }
err = createTrailFromActivity(app, detailedActivity, gpx, user) err = createTrailFromActivity(app, detailedActivity, gpx, user)
if err != nil { if err != nil {
return hasNewActivites, err app.Logger().Warn(fmt.Sprintf("Unable to create trail from activity '%s': %v", activity.Name, err))
continue
} }
} }