[feat] 丰富错误内容提示
This commit is contained in:
parent
8ed7df206b
commit
95b5b15b16
23
errno.go
23
errno.go
@ -1,5 +1,7 @@
|
|||||||
package contracts
|
package contracts
|
||||||
|
|
||||||
|
import "github.com/samber/lo"
|
||||||
|
|
||||||
// 定义错误码
|
// 定义错误码
|
||||||
type Errno struct {
|
type Errno struct {
|
||||||
Code int `json:"code"`
|
Code int `json:"code"`
|
||||||
@ -12,13 +14,14 @@ func (err Errno) Error() string {
|
|||||||
|
|
||||||
// 定义错误
|
// 定义错误
|
||||||
type Err struct {
|
type Err struct {
|
||||||
Code int `json:"code"` // 错误码
|
Code int `json:"code"` // 错误码
|
||||||
Msg string `json:"msg"` // 展示给用户看的
|
Msg string `json:"msg"` // 展示给用户看的
|
||||||
Errord string `json:"errord"` // 内部错误信息
|
Errord string `json:"-"` // 内部错误信息
|
||||||
|
alert bool `json:"-"` // 是否显示内部错误信息
|
||||||
}
|
}
|
||||||
|
|
||||||
func (err *Err) Error() string {
|
func (err Err) Error() string {
|
||||||
return err.Errord
|
return lo.Ternary(err.alert && err.Errord != "", err.Errord, err.Msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 错误码设计
|
// 错误码设计
|
||||||
@ -97,6 +100,16 @@ var (
|
|||||||
// 使用 错误码 和 error 创建新的 错误
|
// 使用 错误码 和 error 创建新的 错误
|
||||||
func NewErr(errno *Errno, err error) *Err {
|
func NewErr(errno *Errno, err error) *Err {
|
||||||
return &Err{
|
return &Err{
|
||||||
|
alert: errno.Code == InternalServerError.Code,
|
||||||
|
Code: errno.Code,
|
||||||
|
Msg: errno.Error(),
|
||||||
|
Errord: err.Error(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewMsgErr(errno *Errno, err error) *Err {
|
||||||
|
return &Err{
|
||||||
|
alert: true,
|
||||||
Code: errno.Code,
|
Code: errno.Code,
|
||||||
Msg: errno.Error(),
|
Msg: errno.Error(),
|
||||||
Errord: err.Error(),
|
Errord: err.Error(),
|
||||||
|
@ -147,7 +147,7 @@ func NewMsgResponse(msg string, code int) contracts.HttpResponse {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewErrResponse(err *contracts.Err) contracts.HttpResponse {
|
func NewErrResponse(err *contracts.Err) contracts.HttpResponse {
|
||||||
return NewJsonResponse([]byte(fmt.Sprintf(`{"code": %d, "msg": %q, "errord": %q}`, err.Code, err.Msg, err.Errord)))
|
return NewJsonResponse([]byte(fmt.Sprintf(`{"code": %d, "msg": %q}`, err.Code, err.Error())))
|
||||||
}
|
}
|
||||||
|
|
||||||
func HttpResponse(data any) contracts.HttpResponse {
|
func HttpResponse(data any) contracts.HttpResponse {
|
||||||
|
Loading…
Reference in New Issue
Block a user