diff --git a/resp/resp.go b/resp/resp.go index c8e2890..a961dc6 100644 --- a/resp/resp.go +++ b/resp/resp.go @@ -3,6 +3,7 @@ package resp import ( "errors" "github.com/gin-gonic/gin" + "github.com/spf13/cast" ) type res struct { @@ -53,6 +54,10 @@ func _r(c *gin.Context, r *res, args ...any) { 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 r.Msg == "" { diff --git a/tool/gin.go b/tool/gin.go new file mode 100644 index 0000000..1a0ac00 --- /dev/null +++ b/tool/gin.go @@ -0,0 +1,12 @@ +package tool + +import "github.com/gin-gonic/gin" + +func Local(c *gin.Context, key string) any { + data, ok := c.Get(key) + if !ok { + return nil + } + + return data +}