summaryrefslogtreecommitdiff
path: root/internal/handlers/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handlers/helpers.go')
-rw-r--r--internal/handlers/helpers.go26
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
+}