nunu-layout-admin/api/v1/v1.go

52 lines
1.1 KiB
Go
Raw Normal View History

2025-03-24 05:55:56 +00:00
package v1
import (
"errors"
"github.com/gin-gonic/gin"
"net/http"
)
type Response struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data"`
}
func HandleSuccess(ctx *gin.Context, data interface{}) {
if data == nil {
data = map[string]interface{}{}
}
resp := Response{Code: errorCodeMap[ErrSuccess], Message: ErrSuccess.Error(), Data: data}
if _, ok := errorCodeMap[ErrSuccess]; !ok {
resp = Response{Code: 0, Message: "", Data: data}
}
ctx.JSON(http.StatusOK, resp)
}
func HandleError(ctx *gin.Context, httpCode int, err error, data interface{}) {
if data == nil {
data = map[string]string{}
}
resp := Response{Code: errorCodeMap[err], Message: err.Error(), Data: data}
if _, ok := errorCodeMap[err]; !ok {
resp = Response{Code: 500, Message: "unknown error", Data: data}
}
ctx.JSON(httpCode, resp)
}
type Error struct {
Code int
Message string
}
var errorCodeMap = map[error]int{}
func newError(code int, msg string) error {
err := errors.New(msg)
errorCodeMap[err] = code
return err
}
func (e Error) Error() string {
return e.Message
}