Skip to content

Commit

Permalink
fix: validator
Browse files Browse the repository at this point in the history
  • Loading branch information
ken109 committed Nov 22, 2021
1 parent 2ea66d1 commit e3425f5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 40 deletions.
19 changes: 0 additions & 19 deletions validation/register.go

This file was deleted.

5 changes: 0 additions & 5 deletions validation/translation.go

This file was deleted.

31 changes: 15 additions & 16 deletions validation/validate.go → validation/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ package validation
import (
"reflect"

"github.com/nimil-jp/gin-utils/util"

"github.com/go-playground/locales/ja"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
jaTranslations "github.com/go-playground/validator/v10/translations/ja"
"github.com/nimil-jp/gin-utils/util"
)

var (
Expand All @@ -25,17 +24,6 @@ func init() {
translator, _ = uni.GetTranslator("ja")

_ = jaTranslations.RegisterDefaultTranslations(validate, translator)

validate.RegisterTagNameFunc(
func(fld reflect.StructField) string {
if value, ok := values[util.SnakeCase(fld.Name)]; ok {
return value
}
return util.SnakeCase(fld.Name)
},
)

registerAll()
}

func Validate() *validator.Validate {
Expand All @@ -46,12 +34,12 @@ func Translator() ut.Translator {
return translator
}

func register(tag string, fn validator.Func, translation string) {
func Register(tag string, fn validator.Func, translation string) {
_ = validate.RegisterValidation(tag, fn)
registerTrans(tag, translation)
RegisterTrans(tag, translation)
}

func registerTrans(tag string, translation string) {
func RegisterTrans(tag string, translation string) {
registrationFunc := func(tag string, translation string, override bool) validator.RegisterTranslationsFunc {
return func(ut ut.Translator) (err error) {
if err = ut.Add(tag, translation, override); err != nil {
Expand All @@ -70,3 +58,14 @@ func registerTrans(tag string, translation string) {
}
_ = validate.RegisterTranslation(tag, translator, registrationFunc(tag, translation, true), translateFunc)
}

func RegisterFieldTrans(values map[string]string) {
validate.RegisterTagNameFunc(
func(fld reflect.StructField) string {
if value, ok := values[util.SnakeCase(fld.Name)]; ok {
return value
}
return util.SnakeCase(fld.Name)
},
)
}

0 comments on commit e3425f5

Please sign in to comment.