fix: resp 多参数问题

This commit is contained in:
zhaoyupeng
2025-07-14 11:16:34 +08:00
parent fad0b852cb
commit 247490c35d
2 changed files with 46 additions and 15 deletions

View File

@ -43,23 +43,45 @@ func RE(c *gin.Context, err error) {
func _r(c *gin.Context, r *res, args ...any) {
length := len(args)
switch length {
case 0:
break
case 1:
if msg, ok := args[0].(string); ok {
r.Msg = msg
}
case 2:
r.Data = args[1]
case 3:
r.Err = args[2]
case 4:
if code, err := cast.ToIntE(args[3]); err == nil {
r.Code = code
}
if length == 0 {
goto END
}
if length >= 4 {
goto H4
}
if length >= 3 {
goto H3
}
if length >= 2 {
goto H2
}
if length >= 1 {
goto H1
}
H4:
if code, err := cast.ToIntE(args[3]); err == nil {
r.Code = code
}
H3:
if es, ok := args[2].(error); ok {
r.Err = es.Error()
} else {
r.Err = args[2]
}
H2:
r.Data = args[1]
H1:
if msg, ok := args[0].(string); ok {
r.Msg = msg
}
END:
if r.Msg == "" {
r.Msg = Msg(r.Status)
}

9
resp/resp_test.go Normal file
View File

@ -0,0 +1,9 @@
package resp
import (
"testing"
)
func TestResp(t *testing.T) {
}