From 064f5e2c5bef14a9fbedd4aa27231a7c71152435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 24 Jan 2025 11:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=BC=8F=E7=94=9F=E6=88=90=E6=96=B9=E6=B3=95,?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E7=94=9F=E6=88=90=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E8=A6=86=E7=9B=96=E9=BB=98=E8=AE=A4=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v10/abstract/validate_rule.go | 8 ++++---- v10/default.go | 35 +++++++++++++++++++++++++++++++++++ v10/init.go | 25 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 v10/default.go create mode 100644 v10/init.go diff --git a/v10/abstract/validate_rule.go b/v10/abstract/validate_rule.go index b5505ef..bf0e120 100644 --- a/v10/abstract/validate_rule.go +++ b/v10/abstract/validate_rule.go @@ -15,12 +15,12 @@ import "git.zhangdeman.cn/zhangdeman/consts" // // Date : 18:46 2025/1/23 // -// 参数说明 +// 参数说明 // -// - validateRule: 参数验证规则, 具体参见静态库声明 -// - paramList: 验证规则需要的参数列表, 可以为空 +// - validateRule: 参数验证规则, 具体参见静态库声明 +// - paramList: 验证规则需要的参数列表, 可以为空 // -// 返回值说明 +// 返回值说明 // - express: 生成的表达式 // - err: 表达式生成过程中出现的异常 type IValidateRuleGenerateFunc func(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) diff --git a/v10/default.go b/v10/default.go new file mode 100644 index 0000000..571e45f --- /dev/null +++ b/v10/default.go @@ -0,0 +1,35 @@ +// Package v10 ... +// +// Description : v10 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2025-01-24 10:32 +package v10 + +import ( + "errors" + "fmt" + "git.zhangdeman.cn/zhangdeman/consts" + "strings" +) + +// DefaultValidateRuleGenerateFunc 验证规则生成的默认方法 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 10:33 2025/1/24 +func DefaultValidateRuleGenerateFunc(validateRule consts.ValidatorRule, paramList ...any) (express string, err error) { + ruleConfig := validateRule.Config() + if len(ruleConfig.ValidatorRule.String()) == 0 { + return "", errors.New("validate rule is empty") + } + if len(paramList) == 0 { + return ruleConfig.ValidatorRule.String(), nil + } + paramStrList := make([]string, 0) + for _, param := range paramList { + paramStrList = append(paramStrList, fmt.Sprintf("%v", param)) + } + return ruleConfig.ValidatorRule.String() + "=" + strings.Join(paramStrList, " "), nil +} diff --git a/v10/init.go b/v10/init.go new file mode 100644 index 0000000..d71d554 --- /dev/null +++ b/v10/init.go @@ -0,0 +1,25 @@ +// Package v10 ... +// +// Description : v10 ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2025-01-24 11:09 +package v10 + +import "git.zhangdeman.cn/gateway/validator/v10/abstract" + +// validatorRuleExpressGenerateFunc 验证规则表达式生成方法 +var validatorRuleExpressGenerateFunc abstract.IValidateRuleGenerateFunc = DefaultValidateRuleGenerateFunc + +// SetValidatorRuleExpressGenerateFunc 使用自定义的验证规则表达式函数覆盖默认的函数 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:11 2025/1/24 +func SetValidatorRuleExpressGenerateFunc(generateFunc abstract.IValidateRuleGenerateFunc) { + if nil == generateFunc { + return + } + validatorRuleExpressGenerateFunc = generateFunc +}