From 190bc6076b4c140a18aacb20f4b8126f9dd71a78 Mon Sep 17 00:00:00 2001 From: Adam French Date: Wed, 4 Mar 2026 15:58:14 +0000 Subject: [PATCH] remove json boilerplate, log error and return response --- backend/handlers/handle_rowing.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/handlers/handle_rowing.go b/backend/handlers/handle_rowing.go index 07e9002..fbb84e2 100644 --- a/backend/handlers/handle_rowing.go +++ b/backend/handlers/handle_rowing.go @@ -6,6 +6,7 @@ import ( "encoding/json" "io" "net/http" + "strings" "time" "github.com/rwcarlsen/goexif/exif" @@ -122,9 +123,21 @@ No text, no markdown, no explanation. Just the JSON object.`), } extractedData := ExtractedRowingData{} - err = json.Unmarshal([]byte(message.Content[0].Text), &extractedData) + raw := message.Content[0].Text + + raw = strings.TrimSpace(raw) + raw = strings.TrimPrefix(raw, "```json") + raw = strings.TrimPrefix(raw, "```") + raw = strings.TrimSuffix(raw, "```") + raw = strings.TrimSpace(raw) + + err = json.Unmarshal([]byte(raw), &extractedData) if err != nil { - ctx.JSON(http.StatusInternalServerError, gin.H{"error": "failed to parse JSON response"}) + ctx.JSON(http.StatusInternalServerError, gin.H{ + "error": "failed to parse JSON response", + "detail": err.Error(), + "raw": raw, + }) return }