59 lines
984 B
Go
59 lines
984 B
Go
package ecode
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gogf/gf/v2/errors/gcode"
|
|
)
|
|
|
|
type Error struct {
|
|
code int
|
|
message string
|
|
sub string
|
|
params []interface{}
|
|
}
|
|
|
|
func New(code int, message string) Error {
|
|
return Error{
|
|
code: code,
|
|
message: message,
|
|
}
|
|
}
|
|
|
|
func (e Error) Params(params ...interface{}) Error {
|
|
e.params = append(e.params, params...)
|
|
return e
|
|
}
|
|
|
|
func (e Error) Error() string {
|
|
return e.Message()
|
|
}
|
|
|
|
func (e Error) Sub(sub string) Error {
|
|
e.sub = sub
|
|
return e
|
|
}
|
|
|
|
func (e Error) Message() string {
|
|
if e.message != "" && len(e.params) > 0 {
|
|
e.message = fmt.Sprintf(e.message, e.params...)
|
|
}
|
|
if e.sub != "" {
|
|
if e.message != "" {
|
|
if len(e.params) > 0 {
|
|
e.message = fmt.Sprintf(e.message, e.params...)
|
|
}
|
|
return fmt.Sprintf("%s:%s", e.message, e.sub)
|
|
}
|
|
return e.sub
|
|
}
|
|
return e.message
|
|
}
|
|
|
|
func (e Error) Code() gcode.Code {
|
|
return gcode.New(e.code, e.Message(), "customer")
|
|
}
|
|
|
|
func (e Error) Detail() interface{} {
|
|
return "customer"
|
|
}
|