[feat] 丰富错误内容提示

This commit is contained in:
what 2023-12-27 13:38:55 +08:00
parent 8ed7df206b
commit 95b5b15b16
2 changed files with 19 additions and 6 deletions

View File

@ -1,5 +1,7 @@
package contracts
import "github.com/samber/lo"
// 定义错误码
type Errno struct {
Code int `json:"code"`
@ -12,13 +14,14 @@ func (err Errno) Error() string {
// 定义错误
type Err struct {
Code int `json:"code"` // 错误码
Msg string `json:"msg"` // 展示给用户看的
Errord string `json:"errord"` // 内部错误信息
Code int `json:"code"` // 错误码
Msg string `json:"msg"` // 展示给用户看的
Errord string `json:"-"` // 内部错误信息
alert bool `json:"-"` // 是否显示内部错误信息
}
func (err *Err) Error() string {
return err.Errord
func (err Err) Error() string {
return lo.Ternary(err.alert && err.Errord != "", err.Errord, err.Msg)
}
// 错误码设计
@ -97,6 +100,16 @@ var (
// 使用 错误码 和 error 创建新的 错误
func NewErr(errno *Errno, err error) *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,
Msg: errno.Error(),
Errord: err.Error(),

View File

@ -147,7 +147,7 @@ func NewMsgResponse(msg string, code int) 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 {