diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-11 14:33:27 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-08-11 14:33:27 +0200 |
| commit | 3f91689bc9a4560b29bac1b48ac81aebe83e3c2a (patch) | |
| tree | 30baec5c2681ebba956acef3fd6dcb3e7976c444 /strava | |
| parent | 7d13374eec8c33c4e14cc5b0c3de36e4f620ce0e (diff) | |
feat: Save Strava activities without routes
Diffstat (limited to 'strava')
| -rw-r--r-- | strava/sync.go | 6 | ||||
| -rw-r--r-- | strava/sync_test.go | 3 |
2 files changed, 6 insertions, 3 deletions
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") } |