shelves/forms/forms.go
2024-11-15 15:25:29 -05:00

41 lines
566 B
Go

package forms
import (
"errors"
"fmt"
"net/http"
"net/url"
)
type Validator struct {
Failed bool
}
func (v *Validator) MinLength(s string, min int) error {
var err error = nil
if len(s) < min {
v.Failed = true
err = fmt.Errorf("Minimum length: %v", min)
}
return err
}
func (v *Validator) Fail(s string) error {
v.Failed = true
return errors.New(s)
}
func ParseFormData(r *http.Request, parse func(url.Values, *Validator)) bool {
v := Validator{}
err := r.ParseForm()
if err != nil {
return true
}
parse(r.Form, &v)
return v.Failed
}