Better code in entries fetch endpoint (#30)

* no message
* no message
This commit is contained in:
gadotroee
2021-05-06 11:08:02 +03:00
committed by GitHub
parent 938ca26cd4
commit b9d0e0ee87
5 changed files with 90 additions and 42 deletions

View File

@@ -0,0 +1,38 @@
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
}