validate.go 598 B

1234567891011121314151617181920212223242526272829303132
  1. package validate_utils
  2. import (
  3. "fmt"
  4. "reflect"
  5. "github.com/go-playground/validator/v10"
  6. )
  7. type indexFun func(index int) string
  8. func SetErrorStr(err error, f func(tag string) string) indexFun {
  9. result := make([]string, 0)
  10. validError, ok := err.(validator.ValidationErrors)
  11. if !ok {
  12. fmt.Println(reflect.TypeOf(err))
  13. result = append(result, "internel error")
  14. } else {
  15. for _, item := range validError {
  16. result = append(result, f(item.StructField()+"."+item.Tag()))
  17. }
  18. }
  19. return func(index int) string {
  20. if index >= len(result) {
  21. return ""
  22. }
  23. return result[index]
  24. }
  25. }