xvalidator

package module
v0.0.0-...-587cc14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2023 License: MIT Imports: 41 Imported by: 1

README

xvalidator

Dependencies

  • github.com/Aoi-hosizora/ahlib
  • github.com/go-playground/validator/v10
  • github.com/go-playground/universal-translator
  • github.com/go-playground/locales

Documents

Types
  • type UtTranslator = ut.Translator
  • type LocaleTranslator = locales.Translator
  • type TranslationRegisterHandler func
  • type WrappedFieldError struct
  • type MultiFieldsError struct
  • type MessagedValidatorOption func
  • type MessagedStructValidator struct
Variables
  • None
Constants
  • None
Functions
  • func IsValidationError(err error) bool
  • func IsRequiredError(err error) bool
  • func UseTagAsFieldName(v *validator.Validate, tagName ...string)
  • func ApplyTranslator(validator *validator.Validate, locale LocaleTranslator, registerFn TranslationRegisterHandler) (UtTranslator, error)
  • func ApplyEnglishTranslator(validator *validator.Validate) (UtTranslator, error)
  • func DefaultRegistrationFunc(tag string, translation string, override bool) validator.RegisterTranslationsFunc
  • func DefaultTranslateFunc() validator.TranslationFunc
  • func EnLocaleTranslator() LocaleTranslator
  • func EsLocaleTranslator() LocaleTranslator
  • func FrLocaleTranslator() LocaleTranslator
  • func IdLocaleTranslator() LocaleTranslator
  • func ItLocaleTranslator() LocaleTranslator
  • func JaLocaleTranslator() LocaleTranslator
  • func NlLocaleTranslator() LocaleTranslator
  • func PtLocaleTranslator() LocaleTranslator
  • func PtBrLocaleTranslator() LocaleTranslator
  • func RuLocaleTranslator() LocaleTranslator
  • func TrLocaleTranslator() LocaleTranslator
  • func ViLocaleTranslator() LocaleTranslator
  • func ZhLocaleTranslator() LocaleTranslator
  • func ZhHantLocaleTranslator() LocaleTranslator
  • func EnTranslationRegisterFunc() TranslationRegisterHandler
  • func EsTranslationRegisterFunc() TranslationRegisterHandler
  • func FrTranslationRegisterFunc() TranslationRegisterHandler
  • func IdTranslationRegisterFunc() TranslationRegisterHandler
  • func ItTranslationRegisterFunc() TranslationRegisterHandler
  • func JaTranslationRegisterFunc() TranslationRegisterHandler
  • func NlTranslationRegisterFunc() TranslationRegisterHandler
  • func PtTranslationRegisterFunc() TranslationRegisterHandler
  • func PtBrTranslationRegisterFunc() TranslationRegisterHandler
  • func RuTranslationRegisterFunc() TranslationRegisterHandler
  • func TrTranslationRegisterFunc() TranslationRegisterHandler
  • func ViTranslationRegisterFunc() TranslationRegisterHandler
  • func ZhTranslationRegisterFunc() TranslationRegisterHandler
  • func ZhHantTranslationRegisterFunc() TranslationRegisterHandler
  • func TranslateValidationErrors(err validator.ValidationErrors, ut UtTranslator, useNamespace bool) map[string]string
  • func FlattenValidationErrors(err validator.ValidationErrors, useNamespace bool) map[string]string
  • func MergeMapToError(result map[string]string) error
  • func WithValidateTagName(name string) MessagedValidatorOption
  • func WithValidateMessageTagName(name string) MessagedValidatorOption
  • func NewMessagedValidator(options ...MessagedValidatorOption) *MessagedValidator
  • func ParamRegexpValidator() validator.Func
  • func RegexpValidator(re *regexp.Regexp) validator.Func
  • func DateTimeValidator(layout string) validator.Func
  • func And(fns ...validator.Func) validator.Func
  • func Or(fns ...validator.Func) validator.Func
  • func Not(fn validator.Func) validator.Func
  • func EqualValidator(p interface{}) validator.Func
  • func NotEqualValidator(p interface{}) validator.Func
  • func LenValidator(p interface{}) validator.Func
  • func GreaterThenValidator(p interface{}) validator.Func
  • func LessThenValidator(p interface{}) validator.Func
  • func GreaterThenOrEqualValidator(p interface{}) validator.Func
  • func LessThenOrEqualValidator(p interface{}) validator.Func
  • func LengthInRangeValidator(min, max interface{}) validator.Func
  • func LengthOutOfRangeValidator(min, max interface{}) validator.Func
  • func OneofValidator(ps ...interface{}) validator.Func
Methods
  • func (w *WrappedFieldError) Origin() validator.FieldError
  • func (w *WrappedFieldError) Message() string
  • func (w *WrappedFieldError) Error() string
  • func (w *WrappedFieldError) Unwrap() error
  • func (m *MultiFieldsError) Errors() []error
  • func (m *MultiFieldsError) Error() string
  • func (m *MultiFieldsError) Is(target error) bool
  • func (m *MultiFieldsError) As(target interface{}) bool
  • func (m *MultiFieldsError) Translate(translator UtTranslator, useNamespace bool) map[string]string
  • func (m *MultiFieldsError) Flatten(useNamespace bool) map[string]string
  • func (m *MessagedValidator) Engine() interface{}
  • func (m *MessagedValidator) ValidateEngine() *validator.Validate
  • func (m *MessagedValidator) SetValidateTagName(name string)
  • func (m *MessagedValidator) SetMessageTagName(name string)
  • func (m *MessagedValidator) UseTagAsFieldName(name ...string)
  • func (m *MessagedValidator) ValidateStruct(obj interface{}) error

Documentation

Index

Constants

View Source
const (
	// NAME represents ahlib-mx package's name.
	NAME = "ahlib-mx/xvalidator"

	// VERSION represents ahlib-mx package's current version.
	VERSION = "1.6.0"
)

Variables

This section is empty.

Functions

func And

func And(fns ...validator.Func) validator.Func

And represents the intersection of multiple validators, just like ',' in validator tag.

func DateTimeValidator

func DateTimeValidator(layout string) validator.Func

DateTimeValidator represents datetime validator using given layout.

func DefaultRegistrationFunc

func DefaultRegistrationFunc(tag string, translation string, override bool) validator.RegisterTranslationsFunc

DefaultRegistrationFunc returns a validator.RegisterTranslationsFunc function, it uses given tag, translation and override flag to register normal translation information for a UtTranslator, {#} is the only replacement type accepted and will be set by validator.TranslationFunc.

This function can be used for validator.Validate RegisterTranslation() method's second parameter translationFn, also see ApplyTranslator.

func DefaultTranslateFunc

func DefaultTranslateFunc() validator.TranslationFunc

DefaultTranslateFunc returns a validator.TranslationFunc function, it uses the struct field name as {0} and the validator tag param as {1} from validator.FieldError's methods to create the translation for given tag. Note that if the tag is not found, it will log a warning message.

This function can be used for validator.Validate RegisterTranslation() method's third parameter registerFn, also see ApplyTranslator.

func EqualValidator

func EqualValidator(p interface{}) validator.Func

EqualValidator represents `eq` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Equals. For strings & numbers, eq will ensure that the value is equal to the parameter given. For slices, arrays, and maps, validates the number of items.

func FlattenValidationErrors

func FlattenValidationErrors(err validator.ValidationErrors, useNamespace bool) map[string]string

FlattenValidationErrors flattens all the validator.FieldError in validator.ValidationErrors to a field-message map without using UtTranslator. Here values from returned map come from the error message directly. Also see TranslateValidationErrors for more.

Example:

type Struct struct {
	Int int    `validate:"required"`
	Str string `validate:"required"`
}
val := validator.New()
// ...
err := val.Struct(&Struct{}).(validator.ValidationErrors)
FlattenValidationErrors(err, true)  // => {Struct.int: Field validation for 'int' failed on the 'required' tag, Struct.str: Field validation for 'str' failed on the 'required' tag}
FlattenValidationErrors(err, false) // => {int:        Field validation for 'int' failed on the 'required' tag, str:        Field validation for 'str' failed on the 'required' tag}

func GreaterThenOrEqualValidator

func GreaterThenOrEqualValidator(p interface{}) validator.Func

GreaterThenOrEqualValidator represents `gte` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Greater_Than_or_Equal. For numbers, gte will ensure that the value is greater or equal to the parameter given. For strings, it checks that the string length is at least that number of characters. For slices, arrays, and maps, validates the number of items.

func GreaterThenValidator

func GreaterThenValidator(p interface{}) validator.Func

GreaterThenValidator represents `gt` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Greater_Than. For numbers, this will ensure that the value is greater than the parameter given. For strings, it checks that the string length is greater than that number of characters. For slices, arrays and maps it validates the number of items.

func IsRequiredError

func IsRequiredError(err error) bool

IsRequiredError returns true if the error is validator.ValidationErrors which contains "required" tag.

func IsValidationError

func IsValidationError(err error) bool

IsValidationError returns true if the error is validator.ValidationErrors.

func LenValidator

func LenValidator(p interface{}) validator.Func

LenValidator represents `len` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Length. For numbers, length will ensure that the value is equal to the parameter given. For strings, it checks that the string length is exactly that number of characters. For slices, arrays, and maps, validates the number of items.

func LengthInRangeValidator

func LengthInRangeValidator(min, max interface{}) validator.Func

LengthInRangeValidator represents `min,max` validator tag, equals to combine GreaterThenOrEqualValidator and LessThenOrEqualValidator with And.

func LengthOutOfRangeValidator

func LengthOutOfRangeValidator(min, max interface{}) validator.Func

LengthOutOfRangeValidator represents `min|max` validator tag, equals to combine GreaterThenOrEqualValidator and LessThenOrEqualValidator with Or.

func LessThenOrEqualValidator

func LessThenOrEqualValidator(p interface{}) validator.Func

LessThenOrEqualValidator represents `lte` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Less_Than_or_Equal. For numbers, lte will ensure that the value is less than or equal to the parameter given. For strings, it checks that the string length is at most that number of characters. For slices, arrays, and maps, validates the number of items.

func LessThenValidator

func LessThenValidator(p interface{}) validator.Func

LessThenValidator represents `lt` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Less_Than. For numbers, this will ensure that the value is less than the parameter given. For strings, it checks that the string length is less than that number of characters. For slices, arrays, and maps it validates the number of items.

func MergeMapToError

func MergeMapToError(result map[string]string) error

MergeMapToError generates a single error from given map generated by translating (TranslateValidationErrors) or flattening (FlattenValidationErrors), to represent the translated or flattened error from validator.ValidationErrors or xvalidator.MultiFieldsError.

func Not

func Not(fn validator.Func) validator.Func

Not represents the inverse result of given validator.

func NotEqualValidator

func NotEqualValidator(p interface{}) validator.Func

NotEqualValidator represents `ne` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Not_Equal. For strings & numbers, ne will ensure that the value is not equal to the parameter given. For slices, arrays, and maps, validates the number of items.

func OneofValidator

func OneofValidator(ps ...interface{}) validator.Func

OneofValidator represents `oneof` validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-One_Of. For strings, ints, uints, and floats, oneof will ensure that the value is one of the values in the parameter.

func Or

func Or(fns ...validator.Func) validator.Func

Or represents the union of multiple validators, just like '|' in validator tag. See https://godoc.org/github.com/go-playground/validator#hdr-Or_Operator.

func ParamRegexpValidator

func ParamRegexpValidator() validator.Func

ParamRegexpValidator represents parameterized regexp validator, just like `regexp: xxx`. For more regexps, see xvalidator.regexps package and https://github.com/go-playground/validator/blob/v10.11.1/regexes.go.

func RegexpValidator

func RegexpValidator(re *regexp.Regexp) validator.Func

RegexpValidator represents regexp validator using given regexp.

func TranslateValidationErrors

func TranslateValidationErrors(err validator.ValidationErrors, ut UtTranslator, useNamespace bool) map[string]string

TranslateValidationErrors translates all validator.FieldError in validator.ValidationErrors using given UtTranslator to a field-message map. Note that if you set useNamespace to true, keys from returned map will be shown in "$struct.$field" format, the same as validator.ValidationErrors' Translate(), otherwise in "$field" format.

Example:

type Struct struct {
	Int int    `validate:"required"`
	Str string `validate:"required"`
}
val := validator.New()
// ...
err := val.Struct(&Struct{}).(validator.ValidationErrors)
TranslateValidationErrors(err, trans, true)  // => {Struct.int: int is a required field, Struct.str: str is a required field}
TranslateValidationErrors(err, trans, false) // => {int:        int is a required field, str:        str is a required field}

func UseTagAsFieldName

func UseTagAsFieldName(v *validator.Validate, tagName ...string)

UseTagAsFieldName sets a specific struct tag as field's alternate name, this name will be used in validator.FieldError's Namespace() and Field() methods, and will change the error string and translated result. You can pass more than one tagName, and it will use the current tagName if it exists and is valid.

Note: the origin field name will be returned by StructField() and StructNamespace() methods; 2. you can pass empty tagName to remove this alternate name.

Attention: please use this function before all validate methods, because any validation method will change the validator's structCache, even if you remove alternate name by `UseTagAsFieldName(v, "")`, structCache will be not cleared.

Example:

v := validator.New()
xvalidator.UseTagAsFieldName(v, "json", "yaml")
// xvalidator.UseTagAsFieldName(v) // remove field's alternate name
type Typ struct {
	Str string `validate:"required,gt=2,lte=10" json:"sss"`
}
errs := v.Struct(&s{"01234567890"}).(validator.ValidationErrors)
// errs[0].Field()           => sss     (alternate name)
// errs[0].Namespace()       => Typ.sss (alternate name with struct typename)
// errs[0].StructField()     => Str     (origin field name)
// errs[0].StructNamespace() => Typ.Str (origin field name with struct typename)
// errs[0].Error()           => Key: 'Typ.sss' Error:Field validation for 'sss' failed on the 'lte' tag
//                                   |-------|                            |---|               |---|
//                                   Namespace                            Field                Tag

Types

type LocaleTranslator

type LocaleTranslator = locales.Translator

LocaleTranslator represents an alias type of locales.Translator interface, which will be used in ApplyTranslator. These kinds of values can be got from xvalidator.EnLocaleTranslator, xvalidator.ZhLocaleTranslator and so on.

func EnLocaleTranslator

func EnLocaleTranslator() LocaleTranslator

EnLocaleTranslator is a LocaleTranslator generated by en.New() from github.com/go-playground/locales/en.

func EsLocaleTranslator

func EsLocaleTranslator() LocaleTranslator

EsLocaleTranslator is a LocaleTranslator generated by es.New() from github.com/go-playground/locales/es.

func FrLocaleTranslator

func FrLocaleTranslator() LocaleTranslator

FrLocaleTranslator is a LocaleTranslator generated by fr.New() from github.com/go-playground/locales/fr.

func IdLocaleTranslator

func IdLocaleTranslator() LocaleTranslator

IdLocaleTranslator is a LocaleTranslator generated by id.New() from github.com/go-playground/locales/id.

func ItLocaleTranslator

func ItLocaleTranslator() LocaleTranslator

ItLocaleTranslator is a LocaleTranslator generated by it.New() from github.com/go-playground/locales/it.

func JaLocaleTranslator

func JaLocaleTranslator() LocaleTranslator

JaLocaleTranslator is a LocaleTranslator generated by ja.New() from github.com/go-playground/locales/ja.

func NlLocaleTranslator

func NlLocaleTranslator() LocaleTranslator

NlLocaleTranslator is a LocaleTranslator generated by nl.New() from github.com/go-playground/locales/nl.

func PtBrLocaleTranslator

func PtBrLocaleTranslator() LocaleTranslator

PtBrLocaleTranslator is a LocaleTranslator generated by pt_BR.New() from github.com/go-playground/locales/pt_BR.

func PtLocaleTranslator

func PtLocaleTranslator() LocaleTranslator

PtLocaleTranslator is a LocaleTranslator generated by pt.New() from github.com/go-playground/locales/pt.

func RuLocaleTranslator

func RuLocaleTranslator() LocaleTranslator

RuLocaleTranslator is a LocaleTranslator generated by ru.New() from github.com/go-playground/locales/ru.

func TrLocaleTranslator

func TrLocaleTranslator() LocaleTranslator

TrLocaleTranslator is a LocaleTranslator generated by tr.New() from github.com/go-playground/locales/tr.

func ViLocaleTranslator

func ViLocaleTranslator() LocaleTranslator

ViLocaleTranslator is a LocaleTranslator generated by vi.New() from github.com/go-playground/locales/vi.

func ZhHantLocaleTranslator

func ZhHantLocaleTranslator() LocaleTranslator

ZhHantLocaleTranslator is a LocaleTranslator generated by zh_Hant.New() from github.com/go-playground/locales/zh_Hant.

func ZhLocaleTranslator

func ZhLocaleTranslator() LocaleTranslator

ZhLocaleTranslator is a LocaleTranslator generated by zh.New() from github.com/go-playground/locales/zh.

type MessagedValidator

type MessagedValidator struct {
	// contains filtered or unexported fields
}

MessagedValidator represents a messaged validator.Validate, which allows some fields to specify their custom error message, and you can set this to gin's binding.Validator as a binding.StructValidator.

Struct example:

type User struct {
	Id   uint64  `json:"id"   form:"id"   validate:"required,gt=1"          validate_message:"required|id is required|gt|id must larger than one"`
	Name string  `json:"name" form:"name" validate:"required,gt=4,lt=20"    validate_message:"*|name is invalid"`
	Bio  *string `json:"bio"  form:"bio"  validate:"required,gte=0,lte=255" validate_message:"..."`
}

func NewMessagedValidator

func NewMessagedValidator(options ...MessagedValidatorOption) *MessagedValidator

NewMessagedValidator creates a new NewMessagedValidator, with `validate` validator tag name and `validate_message` message tag name.

func (*MessagedValidator) Engine

func (m *MessagedValidator) Engine() interface{}

Engine returns the internal validator.Validate from MessagedValidator, and this implements binding.StructValidator interface.

func (*MessagedValidator) SetMessageTagName

func (m *MessagedValidator) SetMessageTagName(name string)

SetMessageTagName sets message tag name for MessagedValidator, defaults to `validate_message`.

func (*MessagedValidator) SetValidateTagName

func (m *MessagedValidator) SetValidateTagName(name string)

SetValidateTagName sets validate tag name for MessagedValidator, defaults to `validate`.

func (*MessagedValidator) UseTagAsFieldName

func (m *MessagedValidator) UseTagAsFieldName(name ...string)

UseTagAsFieldName sets a specific struct tag as field's alternate name, see UseTagAsFieldName for more details.

func (*MessagedValidator) ValidateEngine

func (m *MessagedValidator) ValidateEngine() *validator.Validate

ValidateEngine returns the internal validator.Validate from MessagedValidator.

func (*MessagedValidator) ValidateStruct

func (m *MessagedValidator) ValidateStruct(obj interface{}) error

ValidateStruct validates given struct (and pointer of struct) and returns the validation error, mostly in xvalidator.MultiFieldsError type, and this implements binding.StructValidator interface.

type MessagedValidatorOption

type MessagedValidatorOption func(o *messagedValidatorOptions)

MessagedValidatorOption represents an option type for NewMessagedValidator's option, can be created by WithXXX functions.

func WithMessageTagName

func WithMessageTagName(name string) MessagedValidatorOption

WithMessageTagName creates a MessagedValidatorOption to specify default validate message tag name, defaults to "validate_message".

func WithValidateTagName

func WithValidateTagName(name string) MessagedValidatorOption

WithValidateTagName creates a MessagedValidatorOption to specify default validate tag name, defaults to "validate".

type MultiFieldsError

type MultiFieldsError struct {
	// contains filtered or unexported fields
}

MultiFieldsError represents the multiple fields' error in validation that contains errors in validator.FieldError or xvalidator.WrappedFieldError type, will be returned by MessagedValidator.ValidateStruct.

func (*MultiFieldsError) As

func (m *MultiFieldsError) As(target interface{}) bool

As implements xerror.Assigner interface.

func (*MultiFieldsError) Error

func (m *MultiFieldsError) Error() string

Error returns the formatted error message (split by "; ") from MultiFieldsError.

func (*MultiFieldsError) Errors

func (m *MultiFieldsError) Errors() []error

Errors returns the fields' errors from MultiFieldsError, and this implements xerror.MultiError interface.

func (*MultiFieldsError) Flatten

func (m *MultiFieldsError) Flatten(useNamespace bool) map[string]string

Flatten flattens all the field errors (include validator.FieldError and xvalidator.WrappedFieldError) to a field-message map without using UtTranslator. Here values from returned map come from the error message directly. Also see MultiFieldsError.Translate for more.

Example:

type Struct struct {
	Int int    `validate:"required"`
	Str string `validate:"required" message:"required|str cannot be null and empty"`
}
val := NewMessagedValidator()
// ...
err := validator.ValidateStruct(&Struct{}).(xvalidator.MultiFieldsError)
err.Flatten(true)  // => {Struct.int: Field validation for 'int' failed on the 'required' tag, Struct.str: str cannot be null and empty}
err.Flatten(false) // => {int:        Field validation for 'int' failed on the 'required' tag, str:        str cannot be null and empty}

func (*MultiFieldsError) Is

func (m *MultiFieldsError) Is(target error) bool

Is implements xerror.Matcher interface.

func (*MultiFieldsError) Translate

func (m *MultiFieldsError) Translate(ut UtTranslator, useNamespace bool) map[string]string

Translate translates all the field errors (include validator.FieldError and xvalidator.WrappedFieldError) using given UtTranslator to a field-message map, and here errors in xvalidator.WrappedFieldError type will use wrapped message directly. Note that if you set useNamespace to true, keys from returned map will be shown in "$struct.$field" format, otherwise in "$field" format.

Example:

type Struct struct {
	Int int    `validate:"required"`
	Str string `validate:"required" message:"required|str cannot be null and empty"`
}
val := NewMessagedValidator()
// ...
err := val.ValidateStruct(&Struct{}).(xvalidator.MultiFieldsError)
err.Translate(trans, true)  // => {Struct.int: int is a required field, Struct.str: str cannot be null and empty}
err.Translate(trans, false) // => {int:        int is a required field, str:        str cannot be null and empty}

type TranslationRegisterHandler

type TranslationRegisterHandler func(v *validator.Validate, translator UtTranslator) error

TranslationRegisterHandler represents a translation register function, which will be used in ApplyTranslator. These kinds of values can be got from xvalidator.EnTranslationRegisterFunc, xvalidator.ZhTranslationRegisterFunc and so on.

func EnTranslationRegisterFunc

func EnTranslationRegisterFunc() TranslationRegisterHandler

EnTranslationRegisterFunc is a TranslationRegisterHandler generated by en.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/en.

func EsTranslationRegisterFunc

func EsTranslationRegisterFunc() TranslationRegisterHandler

EsTranslationRegisterFunc is a TranslationRegisterHandler generated by es.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/es.

func FrTranslationRegisterFunc

func FrTranslationRegisterFunc() TranslationRegisterHandler

FrTranslationRegisterFunc is a TranslationRegisterHandler generated by fr.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/fr.

func IdTranslationRegisterFunc

func IdTranslationRegisterFunc() TranslationRegisterHandler

IdTranslationRegisterFunc is a TranslationRegisterHandler generated by id.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/id.

func ItTranslationRegisterFunc

func ItTranslationRegisterFunc() TranslationRegisterHandler

ItTranslationRegisterFunc is a TranslationRegisterHandler generated by it.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/it.

func JaTranslationRegisterFunc

func JaTranslationRegisterFunc() TranslationRegisterHandler

JaTranslationRegisterFunc is a TranslationRegisterHandler generated by ja.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/ja.

func NlTranslationRegisterFunc

func NlTranslationRegisterFunc() TranslationRegisterHandler

NlTranslationRegisterFunc is a TranslationRegisterHandler generated by nl.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/nl.

func PtBrTranslationRegisterFunc

func PtBrTranslationRegisterFunc() TranslationRegisterHandler

PtBrTranslationRegisterFunc is a TranslationRegisterHandler generated by pt_BR.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/pt_BR.

func PtTranslationRegisterFunc

func PtTranslationRegisterFunc() TranslationRegisterHandler

PtTranslationRegisterFunc is a TranslationRegisterHandler generated by pt.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/pt.

func RuTranslationRegisterFunc

func RuTranslationRegisterFunc() TranslationRegisterHandler

RuTranslationRegisterFunc is a TranslationRegisterHandler generated by ru.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translation/ru.

func TrTranslationRegisterFunc

func TrTranslationRegisterFunc() TranslationRegisterHandler

TrTranslationRegisterFunc is a TranslationRegisterHandler generated by tr.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/tr.

func ViTranslationRegisterFunc

func ViTranslationRegisterFunc() TranslationRegisterHandler

ViTranslationRegisterFunc is a TranslationRegisterHandler generated by vi.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/vi.

func ZhHantTranslationRegisterFunc

func ZhHantTranslationRegisterFunc() TranslationRegisterHandler

ZhHantTranslationRegisterFunc is a TranslationRegisterHandler generated by zh_tw.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/zh_tw.

func ZhTranslationRegisterFunc

func ZhTranslationRegisterFunc() TranslationRegisterHandler

ZhTranslationRegisterFunc is a TranslationRegisterHandler generated by zh.RegisterDefaultTranslations from github.com/go-playground/validator/v10/translations/zh.

type UtTranslator

type UtTranslator = ut.Translator

UtTranslator represents an alias type of ut.Translator interface, and this is the translator of validator.Validate.

func ApplyEnglishTranslator

func ApplyEnglishTranslator(validator *validator.Validate) (UtTranslator, error)

ApplyEnglishTranslator applies English translator to validator.Validate, this is a simplified usage of ApplyTranslator(validator, xvalidator.EnLocaleTranslator(), xvalidator.EnTranslationRegisterFunc()), see ApplyTranslator for more information.

func ApplyTranslator

func ApplyTranslator(validator *validator.Validate, locale LocaleTranslator, registerFn TranslationRegisterHandler) (UtTranslator, error)

ApplyTranslator applies translator to validator.Validate using given LocaleTranslator (locales.Translator) and TranslationRegisterHandler, this function will return a UtTranslator (ut.Translator, universal translator). Also see xvalidator.DefaultRegistrationFunc and xvalidator.DefaultTranslateFunc.

Example:

// apply default translation to validator
translator := xvalidator.ApplyTranslator(validator, xvalidator.EnLocaleTranslator(), xvalidator.EnTranslationRegisterFunc()) // UtTranslator

// register custom translation to validator
regisFn := xvalidator.DefaultRegistrationFunc("tag", "{0} has {1}", false) // validator.RegisterTranslationsFunc
transFn := xvalidator.DefaultTranslateFunc() // validator.TranslationFunc
validator.RegisterTranslation("tag", translator, regisFn, transFn)

type WrappedFieldError

type WrappedFieldError struct {
	// contains filtered or unexported fields
}

WrappedFieldError represents a validator.FieldError wrapped with a custom message, will be used in MessagedValidator.

func (*WrappedFieldError) Error

func (w *WrappedFieldError) Error() string

Error returns the formatted error message from WrappedFieldError, and this has the same format with validator.FieldError's Error().

func (*WrappedFieldError) Message

func (w *WrappedFieldError) Message() string

Message returns the wrapped message from WrappedFieldError.

func (*WrappedFieldError) Origin

func (w *WrappedFieldError) Origin() validator.FieldError

Origin returns the origin validator.FieldError from WrappedFieldError.

func (*WrappedFieldError) Unwrap

func (w *WrappedFieldError) Unwrap() error

Unwrap returns the origin validator.FieldError from WrappedFieldError, and this implements the error wrapper interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL