ppanel-server/pkg/result/httpResult.go
2025-09-27 10:17:16 +08:00

41 lines
825 B
Go

package result
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/pkg/errors"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
)
// HttpResult HTTP Result
func HttpResult(ctx *gin.Context, resp interface{}, err error) {
if err == nil {
// Success Result
ctx.JSON(http.StatusOK, Success(resp))
return
}
// Init Error Code and Message
code := xerr.ERROR
msg := "Internal Server Error"
// Get Error Type
var e *xerr.CodeError
if errors.As(errors.Cause(err), &e) {
// Custom Code Error
code = e.GetErrCode()
msg = e.GetErrMsg()
}
ctx.JSON(http.StatusOK, Error(code, msg))
}
// ParamErrorResult Param Error Result
func ParamErrorResult(ctx *gin.Context, err error) {
errMsg := err.Error()
_ = ctx.Error(errors.New(errMsg))
ctx.JSON(http.StatusOK, Error(xerr.InvalidParams, errMsg))
}