nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 25e84e11c81ee9164025d4d01ed3f9241c8cb13b
parent fa9164f5a3c7ea54998cb3410db2e42e9bbb5740
Author: Sergey Orlov <wladimirych@gmail.com>
Date:   Wed, 12 Aug 2020 22:19:04 +0200

tracks: properly handle lisnks to not existing Sportstracker activities

Fixes #512

Diffstat:
Msrc/lib/leaflet.control.track-list/lib/services/sportstracker.js | 5++++-
Mtest/test_track_load.js | 3+--
Atest/track_load_data/testcases/sportstracker_not_exists.json | 8++++++++
Dtest/track_load_data/testcases/sportstracker_not_exists_1.json | 4----
Dtest/track_load_data/testcases/sportstracker_not_exists_2.json | 4----
5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/lib/leaflet.control.track-list/lib/services/sportstracker.js b/src/lib/leaflet.control.track-list/lib/services/sportstracker.js @@ -28,7 +28,7 @@ class SportsTrackerActivity extends SportsTrackerBase { url: urlViaCorsProxy(`https://api.sports-tracker.com/apiserver/v1/workouts/${activityId}/combined`), options: { responseType: 'binarystring', - isResponseSuccess: (xhr) => xhr.status === 200 || xhr.status === 403 + isResponseSuccess: (xhr) => [200, 403, 404].includes(xhr.status) } } ]; @@ -36,6 +36,9 @@ class SportsTrackerActivity extends SportsTrackerBase { parseResponse(responses) { const [dataResponse, metadataResponse] = responses; + if (metadataResponse.status === 404) { + return [{error: 'Sports Tracker activity not found'}]; + } if (dataResponse.status === 403) { return [{error: 'Sports Tracker user disabled viewing this activity'}]; } diff --git a/test/test_track_load.js b/test/test_track_load.js @@ -75,8 +75,7 @@ suite('Load tracks from services'); 'sportstracker_with_title', 'sportstracker_without_title', 'sportstracker_private', - 'sportstracker_not_exists_1', - 'sportstracker_not_exists_2', + 'sportstracker_not_exists', 'openstreetmapRu', 'openstreetmapRuGpx', 'openstreetmapRu_not_exists', diff --git a/test/track_load_data/testcases/sportstracker_not_exists.json b/test/track_load_data/testcases/sportstracker_not_exists.json @@ -0,0 +1,8 @@ +{ + "query": [ + "https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc599", + "https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc5991", + "https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc59912" + ], + "geodata": [{"error": "Sports Tracker activity not found"}] +} diff --git a/test/track_load_data/testcases/sportstracker_not_exists_1.json b/test/track_load_data/testcases/sportstracker_not_exists_1.json @@ -1,4 +0,0 @@ -{ - "query": ["https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc599"], - "geodata": [{"name": "https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc599", "error": "NETWORK"}] -} diff --git a/test/track_load_data/testcases/sportstracker_not_exists_2.json b/test/track_load_data/testcases/sportstracker_not_exists_2.json @@ -1,4 +0,0 @@ -{ - "query": ["https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc5991"], - "geodata": [{"name": "https://www.sports-tracker.com/workout/yyryyy/5f2d4cb86643bb7d5bdc5991", "error": "NETWORK"}] -}