core/infra/response.go

39 lines
614 B
Go
Raw Normal View History

2025-02-07 20:33:27 +08:00
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
if data == nil {
reply.Data = ""
}
ctx.JSON(200, reply)
return
}
func (reply *Reply) Error(ctx *gin.Context, err error) {
reply.Code = 500
// 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)
return
}