From 3f2d1eeb42e6023bd39ebff9762fea567cbfc7c8 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Thu, 18 Dec 2025 03:35:18 -0700 Subject: [PATCH] Create debugSaveRequest from common debug code. --- api/api.go | 30 +++--------------------------- api/debug.go | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 27 deletions(-) create mode 100644 api/debug.go diff --git a/api/api.go b/api/api.go index c3bffecc..f44c7a75 100644 --- a/api/api.go +++ b/api/api.go @@ -36,15 +36,7 @@ func apiAudioPost(w http.ResponseWriter, r *http.Request, u *models.User) { return } if err := json.Unmarshal(body, &payload); err != nil { - log.Error().Err(err).Msg("Audio note POST JSON decode error") - output, err := os.OpenFile("/tmp/request.body", os.O_RDWR|os.O_CREATE, 0666) - if err != nil { - log.Info().Msg("Failed to open temp request.bady") - } - defer output.Close() - output.Write(body) - log.Info().Msg("Wrote request to /tmp/request.body") - + debugSaveRequest(body, err, "Audio note POST JSON decode error") http.Error(w, "Failed to decode the payload", http.StatusBadRequest) return } @@ -112,15 +104,7 @@ func apiClientIosNotePut(w http.ResponseWriter, r *http.Request, u *models.User) return } if err := json.Unmarshal(body, &payload); err != nil { - log.Error().Err(err).Msg("Note PUT JSON decode error") - output, err := os.OpenFile("/tmp/request.body", os.O_RDWR|os.O_CREATE, 0666) - if err != nil { - log.Info().Msg("Failed to open temp request.bady") - } - defer output.Close() - output.Write(body) - log.Info().Msg("Wrote request to /tmp/request.body") - + debugSaveRequest(body, err, "Note PUT JSON decode error") http.Error(w, "Failed to decode the payload", http.StatusBadRequest) return } @@ -146,15 +130,7 @@ func apiImagePost(w http.ResponseWriter, r *http.Request, u *models.User) { return } if err := json.Unmarshal(body, &payload); err != nil { - log.Error().Err(err).Msg("Image note POST JSON decode error") - output, err := os.OpenFile("/tmp/request.body", os.O_RDWR|os.O_CREATE, 0666) - if err != nil { - log.Info().Msg("Failed to open temp request.bady") - } - defer output.Close() - output.Write(body) - log.Info().Msg("Wrote request to /tmp/request.body") - + debugSaveRequest(body, err, "Image note POST JSON decode error") http.Error(w, "Failed to decode the payload", http.StatusBadRequest) return } diff --git a/api/debug.go b/api/debug.go new file mode 100644 index 00000000..a664d622 --- /dev/null +++ b/api/debug.go @@ -0,0 +1,19 @@ +package api +import ( + "os" + + "github.com/rs/zerolog/log" +) + +func debugSaveRequest(body []byte, err error, message string) { + // TODO(eliribble): avoid using a single static filename and instead securely generate + // this value + log.Error().Err(err).Msg(message) + output, err := os.OpenFile("/tmp/request.body", os.O_RDWR|os.O_CREATE, 0666) + if err != nil { + log.Info().Msg("Failed to open temp request.bady") + } + defer output.Close() + output.Write(body) + log.Info().Msg("Wrote request to /tmp/request.body") +}