make generic form parser

This commit is contained in:
Robin Olsen
2026-02-13 13:40:16 +01:00
parent 8728b321ab
commit 029b9cbf69

30
pkg/web/handler/forms.go Normal file
View File

@@ -0,0 +1,30 @@
package handler
import (
"net/http"
"github.com/go-playground/form/v4"
"github.com/go-playground/validator/v10"
)
var (
decoder = form.NewDecoder()
validate = validator.New(validator.WithRequiredStructEnabled())
)
func ParseForm[T any](r *http.Request) (*T, error) {
if err := r.ParseForm(); err != nil {
return nil, err
}
var data T
if err := decoder.Decode(&data, r.PostForm); err != nil {
return nil, err
}
return &data, nil
}
func ValidateForm[T any](data *T) error {
return validate.Struct(data)
}