diff options
Diffstat (limited to 'internal/handlers/helpers.go')
| -rw-r--r-- | internal/handlers/helpers.go | 26 |
1 files changed, 26 insertions, 0 deletions
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 +} |
