error.go 718 Bytes
Newer Older
kzkzzzz's avatar
kzkzzzz committed
1 2 3 4
package errorx

import (
	"fmt"
kzkzzzz's avatar
kzkzzzz committed
5 6
	"go-micro.dev/v4/errors"
	"gomicro-base/common/validate"
kzkzzzz's avatar
kzkzzzz committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
)

const (
	DefaultError = 500
	ParamsError  = 400
)

type ResponseError struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
}

var _ error = &ResponseError{}

func (c *ResponseError) Error() string {
	return fmt.Sprintf("[%d]%s", c.Code, c.Msg)
}

kzkzzzz's avatar
kzkzzzz committed
25
func NewMicroError(detail string, code ...int) error {
kzkzzzz's avatar
kzkzzzz committed
26 27 28 29
	var c = DefaultError
	if len(code) > 0 {
		c = code[0]
	}
kzkzzzz's avatar
kzkzzzz committed
30 31 32 33
	return &errors.Error{
		Code:   int32(c),
		Detail: detail,
		Status: "操作失败",
kzkzzzz's avatar
kzkzzzz committed
34 35 36
	}
}

kzkzzzz's avatar
kzkzzzz committed
37 38 39 40 41
func NewParamsError(err error) error {
	return &errors.Error{
		Code:   int32(ParamsError),
		Detail: validate.TransError(err),
		Status: "参数不正确",
kzkzzzz's avatar
kzkzzzz committed
42 43
	}
}