feat: more validators

This commit is contained in:
Ilia Denisov
2026-02-11 00:30:37 +02:00
parent 43dc8ab3f9
commit a477f5ce0b
12 changed files with 224 additions and 39 deletions
+22
View File
@@ -4,6 +4,7 @@ import (
"strings"
"github.com/go-playground/validator/v10"
"github.com/iliadenisov/galaxy/internal/util"
)
var notBlankStringValidator validator.Func = func(fl validator.FieldLevel) bool {
@@ -16,6 +17,27 @@ var notBlankStringValidator validator.Func = func(fl validator.FieldLevel) bool
return true
}
var entityNameStringValidator validator.Func = func(fl validator.FieldLevel) bool {
s, ok := fl.Field().Interface().(string)
if ok {
if _, ok := util.ValidateTypeName(s); !ok {
return false
}
}
return true
}
var productionTypeStringValidator validator.Func = func(fl validator.FieldLevel) bool {
v, ok := fl.Field().Interface().(string)
if ok {
f := fl.Parent().FieldByName(fl.Param())
if s, ok := f.Interface().(string); ok && (s == "SHIP" || s == "SCIENCE") && len(strings.TrimSpace(v)) == 0 {
return false
}
}
return true
}
var armamentWithWeaponsValidator validator.Func = func(fl validator.FieldLevel) bool {
var v, compareTo float64