Files
kubeshark/api/pkg/utils/validateUtils.go
gadotroee b9d0e0ee87 Better code in entries fetch endpoint (#30)
* no message
* no message
2021-05-06 11:08:02 +03:00

39 lines
947 B
Go

package utils
import (
"fmt"
"github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
et "github.com/go-playground/validator/v10/translations/en"
)
func Validate(object interface{}) (errs []string){
validate, trans := getValidator()
err := validate.Struct(object)
return translateError(err, trans)
}
func translateError(err error, trans ut.Translator) (errs []string) {
if err == nil {
return nil
}
validatorErrs := err.(validator.ValidationErrors)
for _, e := range validatorErrs {
translatedErr := fmt.Errorf(e.Translate(trans)).Error()
errs = append(errs, translatedErr)
}
return errs
}
func getValidator() (*validator.Validate, ut.Translator) {
validate := validator.New()
english := en.New()
uni := ut.New(english, english)
trans, _ := uni.GetTranslator("en")
_ = et.RegisterDefaultTranslations(validate, trans)
return validate, trans
}