commit 1603e51f02133ed9f43bc7db010253f874a44160
parent 725973ad9b7b8ea51f6ec23372d55a991593d07f
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Wed, 28 Nov 2018 23:02:48 +0100
[tracks] Handle loadinbg of private strava track #127
Diffstat:
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/lib/services/strava.js b/src/lib/leaflet.control.track-list/lib/services/strava.js
@@ -15,17 +15,26 @@ class Strava extends BaseService {
         return [
             {
                 url: urlViaCorsProxy(`https://www.strava.com/activities/${trackId}?hl=en-GB`),
-                options: {responseType: 'binarystring'}
+                options: {
+                    responseType: 'binarystring',
+                    isResponseSuccess: (xhr) => (xhr.status === 200 || xhr.status === 404)
+                }
             },
             {
                 url: urlViaCorsProxy(`https://www.strava.com/stream/${trackId}?streams%5B%5D=latlng`),
-                options: {responseType: 'binarystring'}
+                options: {
+                    responseType: 'binarystring',
+                    isResponseSuccess: (xhr) => (xhr.status === 200 || xhr.status === 401)
+                }
             }];
     }
 
     parseResponse(responses) {
         let data;
         const [pageResponse, trackResponse] = responses;
+        if (trackResponse.status === 401) {
+            return [{error: 'Strava user disabled viewing this track (track is private)'}];
+        }
         let name = `Strava ${this.trackId}`;
         try {
             data = JSON.parse(trackResponse.responseBinaryText);