表达式生成验证规则, 支持参数数量验证
This commit is contained in:
@@ -24,9 +24,20 @@ func DefaultValidateRuleGenerateFunc(validateRule define.GenerateRuleExpressConf
|
||||
if len(ruleConfig.ValidatorRule.String()) == 0 {
|
||||
return "", errors.New("validate rule is empty")
|
||||
}
|
||||
if len(validateRule.ParamList) == 0 {
|
||||
if ruleConfig.WithoutParam {
|
||||
// 验证规则不需要任何参数, 舍弃参数
|
||||
return ruleConfig.ValidatorRule.String(), nil
|
||||
}
|
||||
// 验证参数数量
|
||||
if ruleConfig.MinParamCnt > 0 && len(validateRule.ParamList) < ruleConfig.MinParamCnt {
|
||||
return "", errors.New(ruleConfig.ValidatorRule.String() + " : validate rule param count is less than min param cnt -> " + fmt.Sprintf("%v", ruleConfig.MinParamCnt))
|
||||
}
|
||||
if ruleConfig.MaxParamCnt > 0 && len(validateRule.ParamList) > ruleConfig.MinParamCnt {
|
||||
return "", errors.New(ruleConfig.ValidatorRule.String() + " : validate rule param count is more than max param cnt -> " + fmt.Sprintf("%v", ruleConfig.MaxParamCnt))
|
||||
}
|
||||
if ruleConfig.ParamCntMustEven && len(validateRule.ParamList)%2 != 0 {
|
||||
return "", errors.New(ruleConfig.ValidatorRule.String() + " : validate rule param count should be even")
|
||||
}
|
||||
paramStrList := make([]string, 0)
|
||||
for _, param := range validateRule.ParamList {
|
||||
paramStrList = append(paramStrList, fmt.Sprintf("%v", param))
|
||||
|
||||
Reference in New Issue
Block a user