123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package errors
- import "github.com/gogf/gf/v2/net/ghttp"
- // ResponseError 响应错误
- type ResponseError struct {
- Code int // 错误码
- Message string // 错误消息
- StatusCode int // 响应错误码
- ERR error // 响应错误
- }
- func (r *ResponseError) Error() string {
- if r.ERR != nil {
- return r.ERR.Error()
- }
- return r.Message
- }
- // UnWrapResponse 解包响应错误
- func UnWrapResponse(err error) *ResponseError {
- if v, ok := err.(*ResponseError); ok {
- return v
- }
- return nil
- }
- // WrapResponse 包装响应错误
- func WrapResponse(err error, code int, msg string, status ...int) error {
- res := &ResponseError{
- Code: code,
- Message: msg,
- ERR: err,
- }
- if len(status) > 0 {
- res.StatusCode = status[0]
- }
- return res
- }
- // Wrap400Response 包装错误码为400的响应错误
- func Wrap400Response(err error, msg ...string) error {
- m := "请求发生错误"
- if len(msg) > 0 {
- m = msg[0]
- }
- return WrapResponse(err, 400, m, 400)
- }
- // Wrap500Response 包装错误码为500的响应错误
- func Wrap500Response(err error, msg ...string) error {
- m := "服务器发生错误"
- if len(msg) > 0 {
- m = msg[0]
- }
- return WrapResponse(err, 500, m, 500)
- }
- // NewResponse 创建响应错误
- func NewResponse(code int, msg string, status ...int) error {
- res := &ResponseError{
- Code: code,
- Message: msg,
- }
- if len(status) > 0 {
- res.StatusCode = status[0]
- }
- return res
- }
- // New400Response 创建错误码为400的响应错误
- func New400Response(msg string) error {
- return NewResponse(400, msg, 400)
- }
- // New500Response 创建错误码为500的响应错误
- func New500Response(msg string) error {
- return NewResponse(500, msg, 500)
- }
- func Json(r *ghttp.Request, code int, v interface{}) {
- if code == 500 || code == 401 {
- r.Response.WriteStatus(code)
- r.Response.ClearBuffer()
- }
- r.Response.WriteJson(v)
- }
- // JsonExit 返回JSON数据并退出当前HTTP执行函数。
- func JsonExit(r *ghttp.Request, err int, data interface{}) {
- Json(r, err, data)
- r.Exit()
- }
|