Skip to content

Commit a22c02c

Browse files
committed
fix: add the validate params logic
1 parent 9c50cf8 commit a22c02c

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

app/pkg/translator/gin/translator.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package gin
2+
3+
import (
4+
"strings"
5+
6+
"github.com/CoderI421/gframework/app/pkg/code"
7+
"github.com/CoderI421/gframework/pkg/common/core"
8+
"github.com/CoderI421/gframework/pkg/errors"
9+
10+
"github.com/gin-gonic/gin"
11+
ut "github.com/go-playground/universal-translator"
12+
"github.com/go-playground/validator/v10"
13+
)
14+
15+
// 用来去除验证错误消息中的顶层结构体名称的 为了好看
16+
func removeTopStruct(fileds map[string]string) map[string]string {
17+
rsp := map[string]string{}
18+
for field, err := range fileds {
19+
rsp[field[strings.Index(field, ".")+1:]] = err
20+
}
21+
return rsp
22+
}
23+
24+
// 接收 Gin 的上下文对象、错误对象和翻译器对象,用于处理验证错误
25+
func HandleValidatorError(c *gin.Context, err error, trans ut.Translator) {
26+
errs, ok := err.(validator.ValidationErrors)
27+
28+
if !ok {
29+
core.WriteResponse(c, errors.WithCode(code.ErrCodeInvalidParam, "Invalid Param: %s"), err.Error())
30+
//c.JSON(http.StatusOK, gin.H{
31+
// "msg": err.Error(),
32+
//})
33+
}
34+
core.WriteResponse(c, errors.WithCode(code.ErrCodeInvalidParam, "Invalid Param: %s"), removeTopStruct(errs.Translate(trans)))
35+
//c.JSON(http.StatusBadRequest, gin.H{
36+
// "error": removeTopStruct(errs.Translate(trans)),
37+
//})
38+
return
39+
}

0 commit comments

Comments
 (0)