From 2e739638477e87a1b1df662740f191c86db60186 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 26 Jan 2026 08:10:27 -1000 Subject: Phase 5: Extract functions to reduce complexity - Create atoms.go with BuildUnifiedAtomList, SortAtomsByUrgency, PartitionAtomsByTime - Create helpers.go with parseFormOr400, requireFormValue - Refactor HandleTabTasks from 95 lines to 25 lines using extracted functions - Remove duplicate atomUrgencyTier function - Update handlers to use parseFormOr400 helper Co-Authored-By: Claude Opus 4.5 --- internal/handlers/helpers.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 internal/handlers/helpers.go (limited to 'internal/handlers/helpers.go') diff --git a/internal/handlers/helpers.go b/internal/handlers/helpers.go new file mode 100644 index 0000000..e67eea7 --- /dev/null +++ b/internal/handlers/helpers.go @@ -0,0 +1,26 @@ +package handlers + +import ( + "net/http" +) + +// parseFormOr400 parses the request form and returns false if parsing fails +// (after writing a 400 error response). Returns true if parsing succeeds. +func parseFormOr400(w http.ResponseWriter, r *http.Request) bool { + if err := r.ParseForm(); err != nil { + JSONError(w, http.StatusBadRequest, "Failed to parse form", err) + return false + } + return true +} + +// requireFormValue returns the form value for the given key, or writes a 400 error +// and returns empty string if the value is missing. +func requireFormValue(w http.ResponseWriter, r *http.Request, key string) (string, bool) { + value := r.FormValue(key) + if value == "" { + JSONError(w, http.StatusBadRequest, "Missing required field: "+key, nil) + return "", false + } + return value, true +} -- cgit v1.2.3