增加默认字段验证表达式生成规则函数
This commit is contained in:
parent
fcad833e88
commit
55502d1c28
@ -9,7 +9,6 @@ package abstract
|
||||
|
||||
import (
|
||||
"git.zhangdeman.cn/gateway/validator/v10/define"
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
)
|
||||
|
||||
// IValidateRuleGenerateFunc 生成校验规则的方法约束
|
||||
@ -33,4 +32,4 @@ type IValidateRuleGenerateFunc func(ruleConfig define.GenerateRuleExpressConfig)
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:16 2025/1/24
|
||||
type IFieldValidateRuleGenerateFunc func(validateRule consts.ValidatorRule, paramList ...any) (express string, err error)
|
||||
type IFieldValidateRuleGenerateFunc func(fieldValidateRule define.FieldValidateGenerateConfig) (express string, err error)
|
||||
|
@ -33,3 +33,35 @@ func DefaultValidateRuleGenerateFunc(validateRule define.GenerateRuleExpressConf
|
||||
}
|
||||
return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil
|
||||
}
|
||||
|
||||
// DefaultFieldValidateRuleGenerateFunc 字段验证表达式生成
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:44 2025/1/24
|
||||
func DefaultFieldValidateRuleGenerateFunc(fieldValidateRule define.FieldValidateGenerateConfig) (string, error) {
|
||||
if len(fieldValidateRule.RuleGroup) == 0 && len(fieldValidateRule.RuleSimple.Rule.String()) == 0 {
|
||||
return "", errors.New("rule group and rule simple all empty")
|
||||
}
|
||||
if len(fieldValidateRule.RuleGroup) == 0 {
|
||||
// note: 当 fieldValidateRule.RuleGroup 不为空时, 会忽略 fieldValidateRule.RuleSimple 配置
|
||||
fieldValidateRule.RuleGroup = [][]define.GenerateRuleExpressConfig{
|
||||
[]define.GenerateRuleExpressConfig{
|
||||
fieldValidateRule.RuleSimple,
|
||||
},
|
||||
}
|
||||
}
|
||||
finalExpressList := make([]string, 0)
|
||||
for _, itemGroupList := range fieldValidateRule.RuleGroup {
|
||||
expressList := make([]string, 0)
|
||||
for _, itemRule := range itemGroupList {
|
||||
if fieldExpress, err := validatorRuleExpressGenerateFunc(itemRule); nil != err {
|
||||
return "", err
|
||||
} else {
|
||||
expressList = append(expressList, fieldExpress)
|
||||
}
|
||||
}
|
||||
finalExpressList = append(finalExpressList, strings.Join(expressList, ","))
|
||||
}
|
||||
return strings.Join(finalExpressList, "|"), nil
|
||||
}
|
||||
|
15
v10/init.go
15
v10/init.go
@ -12,6 +12,9 @@ import "git.zhangdeman.cn/gateway/validator/v10/abstract"
|
||||
// validatorRuleExpressGenerateFunc 验证规则表达式生成方法
|
||||
var validatorRuleExpressGenerateFunc abstract.IValidateRuleGenerateFunc = DefaultValidateRuleGenerateFunc
|
||||
|
||||
// validatorRuleExpressGenerateFunc 字段验证规则生成默认表达式
|
||||
var fieldValidatorRuleExpressGenerateFunc abstract.IFieldValidateRuleGenerateFunc = DefaultFieldValidateRuleGenerateFunc
|
||||
|
||||
// SetValidatorRuleExpressGenerateFunc 使用自定义的验证规则表达式函数覆盖默认的函数
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
@ -23,3 +26,15 @@ func SetValidatorRuleExpressGenerateFunc(generateFunc abstract.IValidateRuleGene
|
||||
}
|
||||
validatorRuleExpressGenerateFunc = generateFunc
|
||||
}
|
||||
|
||||
// SetFieldValidatorRuleExpressGenerateFunc 字段默认表达式生成规则
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:56 2025/1/24
|
||||
func SetFieldValidatorRuleExpressGenerateFunc(generateFunc abstract.IFieldValidateRuleGenerateFunc) {
|
||||
if nil == generateFunc {
|
||||
return
|
||||
}
|
||||
fieldValidatorRuleExpressGenerateFunc = generateFunc
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user