From 3f91689bc9a4560b29bac1b48ac81aebe83e3c2a Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Tue, 11 Aug 2026 14:33:27 +0200 Subject: feat: Save Strava activities without routes --- strava/sync.go | 6 ++++-- strava/sync_test.go | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'strava') diff --git a/strava/sync.go b/strava/sync.go index 45b13d3..28ba925 100644 --- a/strava/sync.go +++ b/strava/sync.go @@ -13,6 +13,8 @@ import ( const garminTrackPointExtensionNamespace = "http://www.garmin.com/xmlschemas/TrackPointExtension/v1" +var ErrNoTrackPoints = errors.New("activity has no track points") + type Activity struct { ID int64 `json:"id"` Name string `json:"name"` @@ -77,7 +79,7 @@ func (c *Client) Get(id int64) (Activity, []byte, error) { } gpxData, err := activityGPX(activity, streams) if err != nil { - return Activity{}, nil, err + return activity, nil, err } return activity, gpxData, nil } @@ -139,7 +141,7 @@ func (c *Client) activityStreams(id int64) (activityStreams, error) { func activityGPX(activity Activity, streams activityStreams) ([]byte, error) { if len(streams.LatLng) == 0 { - return nil, errors.New("activity has no track points") + return nil, ErrNoTrackPoints } points := make([]gpx.GPXPoint, len(streams.LatLng)) for i := range streams.LatLng { diff --git a/strava/sync_test.go b/strava/sync_test.go index c55f97b..9223c95 100644 --- a/strava/sync_test.go +++ b/strava/sync_test.go @@ -128,7 +128,8 @@ func TestGetRejectsActivityWithoutTrackPoints(t *testing.T) { } }) - _, _, err := client.Get(14701658670) + activity, _, err := client.Get(14701658670) + assert.Equal(t, int64(14701658670), activity.ID) require.EqualError(t, err, "activity has no track points") } -- cgit v1.2.3