Compare commits

...

5 Commits

  1. 2
      _examples/custom-validation/main.go
  2. 2
      _examples/custom/main.go
  3. 2
      _examples/dive/main.go
  4. 2
      _examples/gin-upgrading-overriding/v8_to_v9.go
  5. 2
      _examples/map-validation/main.go
  6. 2
      _examples/simple/main.go
  7. 2
      _examples/struct-level/main.go
  8. 2
      _examples/struct-map-rules-validation/main.go
  9. 4
      _examples/translations/main.go
  10. 2
      go.mod
  11. 2
      non-standard/validators/notblank.go
  12. 2
      non-standard/validators/notblank_test.go
  13. 2
      translations/ar/ar.go
  14. 2
      translations/ar/ar_test.go
  15. 2
      translations/en/en.go
  16. 2
      translations/en/en_test.go
  17. 2
      translations/es/es.go
  18. 2
      translations/es/es_test.go
  19. 2
      translations/fa/fa.go
  20. 2
      translations/fa/fa_test.go
  21. 2
      translations/fr/fr.go
  22. 2
      translations/fr/fr_test.go
  23. 2
      translations/id/id.go
  24. 2
      translations/id/id_test.go
  25. 2
      translations/it/it.go
  26. 2
      translations/it/it_test.go
  27. 1
      translations/ja/ja.go
  28. 2
      translations/ja/ja_test.go
  29. 2
      translations/lv/lv.go
  30. 2
      translations/lv/lv_test.go
  31. 1
      translations/nl/nl.go
  32. 2
      translations/nl/nl_test.go
  33. 1
      translations/pt/pt.go
  34. 3
      translations/pt/pt_test.go
  35. 2
      translations/pt_BR/pt_BR.go
  36. 2
      translations/pt_BR/pt_BR_test.go
  37. 2
      translations/ru/ru.go
  38. 2
      translations/ru/ru_test.go
  39. 2
      translations/tr/tr.go
  40. 2
      translations/tr/tr_test.go
  41. 1
      translations/vi/vi.go
  42. 2
      translations/vi/vi_test.go
  43. 2
      translations/zh/zh.go
  44. 2
      translations/zh/zh_test.go
  45. 1
      translations/zh_tw/zh_tw.go
  46. 2
      translations/zh_tw/zh_tw_test.go
  47. 56
      validator_instance.go

@ -3,7 +3,7 @@ package main
import (
"fmt"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
// MyStruct ..

@ -6,7 +6,7 @@ import (
"fmt"
"reflect"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
// DbBackedUser User struct

@ -3,7 +3,7 @@ package main
import (
"fmt"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
// Test ...

@ -4,8 +4,8 @@ import (
"reflect"
"sync"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/gin-gonic/gin/binding"
"github.com/go-playground/validator/v10"
)
type defaultValidator struct {

@ -2,7 +2,7 @@ package main
import (
"fmt"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
var validate *validator.Validate

@ -3,7 +3,7 @@ package main
import (
"fmt"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
// User contains user information

@ -6,7 +6,7 @@ import (
"reflect"
"strings"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
type validationError struct {

@ -2,7 +2,7 @@ package main
import (
"fmt"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
type Data struct {

@ -3,10 +3,10 @@ package main
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
en_translations "gitea.drugeyes.vip/pharnexbase/validator/v10/translations/en"
"github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
en_translations "github.com/go-playground/validator/v10/translations/en"
)
// User contains user information

@ -1,4 +1,4 @@
module github.com/go-playground/validator/v10
module gitea.drugeyes.vip/pharnexbase/validator/v10
go 1.18

@ -4,7 +4,7 @@ import (
"reflect"
"strings"
"github.com/go-playground/validator/v10"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
)
// NotBlank is the validation function for validating if the current field

@ -3,8 +3,8 @@ package validators
import (
"testing"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/assert/v2"
"github.com/go-playground/validator/v10"
)
type test struct {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
english "github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
english "github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
spanish "github.com/go-playground/locales/es"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
english "github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
french "github.com/go-playground/locales/fr"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -8,9 +8,9 @@ import (
"strings"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -4,10 +4,10 @@ import (
"testing"
"time"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
. "github.com/go-playground/assert/v2"
indonesia "github.com/go-playground/locales/id"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package it
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package it
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
italian "github.com/go-playground/locales/it"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -10,7 +10,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package ja
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
ja_locale "github.com/go-playground/locales/ja"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package lv
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package lv
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
english "github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -10,7 +10,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package nl
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
english "github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -10,7 +10,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,14 +1,13 @@
package pt
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
"github.com/go-playground/locales/pt"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package pt_BR
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package pt_BR
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
brazilian_portuguese "github.com/go-playground/locales/pt_BR"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package ru
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,6 +1,7 @@
package ru
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
//"github.com/rustery/validator"
"testing"
@ -9,7 +10,6 @@ import (
. "github.com/go-playground/assert/v2"
russian "github.com/go-playground/locales/ru"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package tr
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package tr
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
turkish "github.com/go-playground/locales/tr"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -10,7 +10,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package vi
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
vietnamese "github.com/go-playground/locales/vi"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -2,6 +2,7 @@ package zh
import (
"fmt"
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"log"
"reflect"
"strconv"
@ -10,7 +11,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package zh
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
zhongwen "github.com/go-playground/locales/zh"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -10,7 +10,6 @@ import (
"github.com/go-playground/locales"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
// RegisterDefaultTranslations registers a set of default translations

@ -1,13 +1,13 @@
package zh_tw
import (
"gitea.drugeyes.vip/pharnexbase/validator/v10"
"testing"
"time"
. "github.com/go-playground/assert/v2"
zhongwen "github.com/go-playground/locales/zh_Hant_TW"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
)
func TestTranslations(t *testing.T) {

@ -150,27 +150,67 @@ func (v *Validate) SetTagName(name string) {
v.tagName = name
}
const omitemptyPrefix = "__omitempty__"
// ValidateMapCtx validates a map using a map of validation rules and allows passing of contextual
// validation validation information via context.Context.
func (v Validate) ValidateMapCtx(ctx context.Context, data map[string]interface{}, rules map[string]interface{}) map[string]interface{} {
errs := make(map[string]interface{})
if len(data) == 0 {
return errs
}
Loop:
for field, rule := range rules {
if strings.HasPrefix(field, omitemptyPrefix) == true {
continue
}
if ruleObj, ok := rule.(map[string]interface{}); ok {
if dataObj, ok := data[field].(map[string]interface{}); ok {
err := v.ValidateMapCtx(ctx, dataObj, ruleObj)
if len(err) > 0 {
errs[field] = err
}
} else if dataObjs, ok := data[field].([]map[string]interface{}); ok {
for _, obj := range dataObjs {
err := v.ValidateMapCtx(ctx, obj, ruleObj)
if dataObj, ok := data[field]; ok {
if do, ok := dataObj.(map[string]interface{}); ok {
err := v.ValidateMapCtx(ctx, do, ruleObj)
if len(err) > 0 {
errs[field] = err
}
} else {
errs[field] = errors.New("The field: '" + field + "' is not a map to dive")
}
} else if _, ok := rules[fmt.Sprintf("%s%s", omitemptyPrefix, field)].(string); ok {
// can be null
continue
} else {
errs[field] = errors.New("The field: '" + field + "' is not a map to dive")
}
} else if arrRuleObj, ok := rule.([]interface{}); ok {
if len(arrRuleObj) > 0 {
if arrRuleItem, ok := arrRuleObj[0].(map[string]interface{}); ok {
if dataObjs, ok := data[field]; ok {
if do, ok := dataObjs.([]interface{}); ok {
for _, obj := range do {
if objItem, ok := obj.(map[string]interface{}); ok {
err := v.ValidateMapCtx(ctx, objItem, arrRuleItem)
if len(err) > 0 {
errs[field] = err
}
} else {
errs[field] = errors.New("The field: '" + field + "' is not a map array")
continue Loop
}
}
} else {
errs[field] = errors.New("The field: '" + field + "' is not a array")
}
} else if _, ok := rules[fmt.Sprintf("%s%s", omitemptyPrefix, field)].(string); ok {
// can be null
continue
} else {
errs[field] = errors.New("The field: '" + field + "' is empty")
}
} else {
errs[field] = errors.New("The field: '" + field + "' rule error")
}
} else {
errs[field] = errors.New("The field: '" + field + "' rule error")
}
} else if ruleStr, ok := rule.(string); ok {
err := v.VarCtx(ctx, data[field], ruleStr)
if err != nil {

Loading…
Cancel
Save