package infra import ( "github.com/gin-gonic/gin" "google.golang.org/grpc/status" ) var Response Reply type Reply struct { Code int `json:"code"` Msg string `json:"msg"` Data any `json:"data"` } func (reply *Reply) Success(ctx *gin.Context, data any) { reply.Code = 200 reply.Data = data reply.Msg = "" if data == nil { reply.Data = "" } ctx.JSON(200, reply) } func (reply *Reply) Error(ctx *gin.Context, err error) { reply.Code = 500 reply.Data = "" // Status code defaults to 500 e, ok := status.FromError(err) if ok { reply.Code = int(e.Code()) } reply.Msg = e.Message() // Send error ctx.JSON(200, reply) }