From d8339f653c7552f18dd67f28c2d00fa749e93042 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 15 Oct 2025 20:27:11 +0200 Subject: [PATCH] fixing fit api --- rowers/courses.py | 5 ++++- rowers/tasks.py | 14 +++++++++++--- rowers/tests/testdata/testdata.tcx.gz | Bin 3989 -> 3989 bytes rowers/views/apiviews.py | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/rowers/courses.py b/rowers/courses.py index 3d41a95d..1bbcd16b 100644 --- a/rowers/courses.py +++ b/rowers/courses.py @@ -189,7 +189,10 @@ def sort_coordinates_ccw(coordinates): def crewnerdcourse(doc): courses = [] for course in doc: - name = course.findall('.//opengis:name', ns)[0].text + try: + name = course.findall('.//opengis:name', ns)[0].text + except IndexError: + name = 'No name' try: description = course.findall('.//opengis:description', ns)[0].text except IndexError: diff --git a/rowers/tasks.py b/rowers/tasks.py index 84fbac92..39484538 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -1283,7 +1283,12 @@ def handle_check_race_course(self, dologging(logfile2,"Did not find file "+f1) return 0 - row.extend_data() + try: + row.extend_data() + except KeyError: # pragma: no cover + dologging(logfile,"Could not extend data") + dologging(logfile2,"Could not extend data") + return 0 # row.df.interpolate(inplace=True) @@ -1315,8 +1320,11 @@ def handle_check_race_course(self, ).values rowdata = rowdata.select_dtypes(['number']) - rowdata = rowdata.resample('100ms', on='dt').mean() - rowdata = rowdata.interpolate() + try: + rowdata = rowdata.resample('100ms', on='dt').mean() + rowdata = rowdata.interpolate() + except TypeError: # pragma: no cover + pass course = GeoCourse.objects.get(id=courseid) polygons = course.polygons.all() diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 41aeda05e84562b911e34ef9b02154dd24d7dbb4..4b65b85af5141a4a7714bcfb31c5d35e25be43d1 100644 GIT binary patch delta 16 XcmbO#KUJPxzMF$%^@H~t+57kbFC_)} delta 16 XcmbO#KUJPxzMF$XhUdvf_C9_9CJh9O diff --git a/rowers/views/apiviews.py b/rowers/views/apiviews.py index fc0ee311..5ae0c844 100644 --- a/rowers/views/apiviews.py +++ b/rowers/views/apiviews.py @@ -644,7 +644,7 @@ def strokedata_fit(request): dologging('apilog.log','FIT API endpoint') dologging('apilog.log',e) _ = myqueue(queuehigh, handle_sendemail_unrecognized, fit_filename, "fit parser") - return HttpResponse(status=500) + return JSONResponse({"error": "the uploaded file is corrupted or invalid and cannot be processed"}, status=422)