From bd05e8f8fdb5221c31d57ee38d6f61786671028b Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 18 Feb 2025 07:59:41 +0100 Subject: [PATCH 1/3] apilogging --- rowers/views/apiviews.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rowers/views/apiviews.py b/rowers/views/apiviews.py index d5a78317..92c0418e 100644 --- a/rowers/views/apiviews.py +++ b/rowers/views/apiviews.py @@ -554,6 +554,7 @@ def strokedata_fit(request): return HttpResponseBadRequest("Only POST requests are allowed.") + dologgin('apilog.log', request.user.username+" (strokedata_fit POST)" try: fit_data = request.data @@ -578,7 +579,8 @@ def strokedata_fit(request): try: # Parse the FIT file try: - row = FP(fit_filename) + row = FP(fit_filename) + dologging('apilog.log','FIT file parsed') except ValueError as e: dologging('apilog.log','FIT error') dologging('apilog.log',e) @@ -629,6 +631,7 @@ def strokedata_fit(request): url, uploadoptions) + dologging('apilog.log','FIT file uploaded, returning response') return JsonResponse( {"status": "success", "workout public id": encoder.encode_hex(w.id), From 4f5417911b18284cd8e596dfc7a0b582ef6ca061 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 18 Feb 2025 08:02:36 +0100 Subject: [PATCH 2/3] fix --- rowers/views/apiviews.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/views/apiviews.py b/rowers/views/apiviews.py index 92c0418e..8b20b92c 100644 --- a/rowers/views/apiviews.py +++ b/rowers/views/apiviews.py @@ -554,7 +554,7 @@ def strokedata_fit(request): return HttpResponseBadRequest("Only POST requests are allowed.") - dologgin('apilog.log', request.user.username+" (strokedata_fit POST)" + dologging('apilog.log', request.user.username+" (strokedata_fit POST)") try: fit_data = request.data From 591bfb09042034c8f875730a6f7ce6fcc0859ce5 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 18 Feb 2025 08:57:45 +0100 Subject: [PATCH 3/3] fixing FITParser --- rowers/tests/testdata/testdata.tcx.gz | Bin 3989 -> 3989 bytes rowers/views/apiviews.py | 13 ++++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index f16d54bf1f06a73a4723f20143a883bb64991857..0144addc08c4760360e6f4d6e961c264a282dcc2 100644 GIT binary patch delta 16 XcmbO#KUJPxzMF&NkJXlq?0x(IEKvn% delta 16 XcmbO#KUJPxzMF$1ao>iG?0x(ID;Nb% diff --git a/rowers/views/apiviews.py b/rowers/views/apiviews.py index 8b20b92c..681e3148 100644 --- a/rowers/views/apiviews.py +++ b/rowers/views/apiviews.py @@ -34,7 +34,7 @@ class FITParser(BaseParser): return stream.read() except Exception as e: dologging("apilog.log", "FIT Parser") - dolofging("apilog.log", e) + dologging("apilog.log", e) raise ValueError(f"Failed to read FIT file: {str(e)}") return stream.read() @@ -557,7 +557,8 @@ def strokedata_fit(request): dologging('apilog.log', request.user.username+" (strokedata_fit POST)") try: fit_data = request.data - + if not fit_data: + return HttpResponseBadRequest("No FIT data provided.") # Ensure the media directory exists media_dir = 'media' os.makedirs(media_dir, exist_ok=True) @@ -621,6 +622,7 @@ def strokedata_fit(request): 'rpe': 0, 'notes': '', 'id': w.id, + 'workouttype': 'water', 'offline': False, } @@ -632,11 +634,12 @@ def strokedata_fit(request): uploadoptions) dologging('apilog.log','FIT file uploaded, returning response') - return JsonResponse( - {"status": "success", + returndict = { + "status": "success", "workout public id": encoder.encode_hex(w.id), "workout id": w.id, - }) + } + return JsonResponse(returndict, status=201) except Exception as e: dologging('apilog.log','FIT API endpoint') dologging('apilog.log',e)