Files
arenax-server/utility/ecode/ecode.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"
}