Skip to content
34 changes: 17 additions & 17 deletions constraints.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ Numerical Type Constraints
*/

func min(field field, param string) error {
return checkMin(field.value, field.typ, param, false)
return checkMin(field, param, false)
}

func max(field field, param string) error {
return checkMax(field.value, field.typ, param, false)
return checkMax(field, param, false)
}

func exclusiveMin(field field, param string) error {
return checkMin(field.value, field.typ, param, true)
return checkMin(field, param, true)
}

func exclusiveMax(field field, param string) error {
return checkMax(field.value, field.typ, param, true)
return checkMax(field, param, true)
}

func multipleOf(field field, param string) error {
Expand All @@ -39,10 +39,10 @@ func multipleOf(field field, param string) error {
}
valid := in%cInt == 0
if !valid {
return ErrMultipleOf
return fmt.Errorf(ErrMultipleOf, field.name)
}
default:
return ErrInvalidValidationForField
return fmt.Errorf(ErrInvalidValidationForField, field.name)
}
return nil
}
Expand All @@ -56,16 +56,16 @@ func notnull(field field, param string) error {
case reflect.String:
c, err := convertBool(param)
if err != nil {
return err
return fmt.Errorf(ErrBadConstraint, "notnull", param, field.name)
}
if c == true {
in, _ := field.value.Interface().(string)
if in == "" {
return ErrNoNull
return fmt.Errorf(ErrNotNull, field.name)
}
}
default:
return ErrInvalidValidationForField
return fmt.Errorf(ErrInvalidValidationForField, field.name)
}
return nil
}
Expand All @@ -77,10 +77,10 @@ func minLength(field field, param string) error {
lv := len(fmt.Sprint(field.value))
valid := lv > lc
if !valid {
return ErrMinLength
return fmt.Errorf(ErrMinLength, field.name)
}
default:
return ErrInvalidValidationForField
return fmt.Errorf(ErrInvalidValidationForField, field.name)
}
return nil
}
Expand All @@ -92,10 +92,10 @@ func maxLength(field field, param string) error {
lv := len(fmt.Sprint(field.value))
valid := lv < lc
if !valid {
return ErrMaxLength
return fmt.Errorf(ErrMaxLength, field.name)
}
default:
return ErrInvalidValidationForField
return fmt.Errorf(ErrInvalidValidationForField, field.name)
}
return nil
}
Expand All @@ -106,13 +106,13 @@ func pattern(field field, param string) error {
in, _ := field.value.Interface().(string)
re, err := regexp.Compile(param)
if err != nil {
return ErrBadConstraint
return fmt.Errorf(ErrBadConstraint, "pattern", param, field.name)
}
if !re.MatchString(in) {
return ErrPattern
return fmt.Errorf(ErrPattern, field.name)
}
default:
return ErrInvalidValidationForField
return fmt.Errorf(ErrInvalidValidationForField, field.name)
}
return nil
}
Expand All @@ -129,7 +129,7 @@ func enum(field field, param string) error {
}

if flag == false {
return ErrEnums
return fmt.Errorf(ErrEnums, field.name)
}
return nil
}
36 changes: 15 additions & 21 deletions default.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,32 @@ package validator

import "errors"

type ErrMsg struct {
Err error
}

func (e ErrMsg) Error() string {
return e.Err.Error()
}

var (
ErrNoNull = ErrMsg{errors.New("notnull validation failed")}
ErrNotNull = "notnull validation failed for field %s"

ErrMin = "min value validation failed for field %s"

ErrInvalidValidationForField = ErrMsg{errors.New("invalid validation applied to the field")}
ErrMax = "max value validation failed for field %s"

ErrMin = ErrMsg{errors.New("min value validation failed")}
ErrExclusiveMin = "exclusive min validation failed for field %s"

ErrMax = ErrMsg{errors.New("max value validation failed")}
ErrExclusiveMax = "exclusive max validation failed for field %s"

ErrExclusiveMin = ErrMsg{errors.New("exclusive min validation failed")}
ErrMultipleOf = "multipleOf validation failed for field %s"

ErrExclusiveMax = ErrMsg{errors.New("exclusive max validation failed")}
ErrMinLength = "min-length validation failed for field %s"

ErrMultipleOf = ErrMsg{errors.New("multipleOf validation failed")}
ErrMaxLength = "max-length validation failed for field %s"

ErrMinLength = ErrMsg{errors.New("min-length validation failed")}
ErrPattern = "pattern validation failed for field %s"

ErrMaxLength = ErrMsg{errors.New("max-length validation failed")}
ErrEnums = "enum validation failed for field %s"

ErrPattern = ErrMsg{errors.New("pattern validation failed")}
ErrBadConstraint = "invalid constraint %s with value '%s' for field %s"

ErrBadConstraint = ErrMsg{errors.New("invalid constraint value")}
ErrInvalidValidationForField = "invalid validation applied to the field %s"

ErrNotSupported = ErrMsg{errors.New("unsupported constraint on type")}
ErrNotSupported = errors.New("unsupported constraint on type")

ErrEnums = ErrMsg{errors.New("enum validation failed")}
ErrConversionFailed = errors.New("conversion failed")
)
Loading