36 lines
707 B
Go
36 lines
707 B
Go
package protocol
|
|
|
|
import "errors"
|
|
|
|
type ErrorCode int
|
|
|
|
const (
|
|
E_PARSE ErrorCode = -32700
|
|
E_INVALID_REQ ErrorCode = -32600
|
|
E_NOT_FOUND_METHOD ErrorCode = -32601
|
|
E_INVALID_PARAMS ErrorCode = -32602
|
|
E_INTERNAL ErrorCode = -32603
|
|
E_SERVER ErrorCode = -32000
|
|
)
|
|
|
|
var ErrNullResult = errors.New("result is null")
|
|
|
|
type Error struct {
|
|
Code ErrorCode `json:"code"`
|
|
Message string `json:"message"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
}
|
|
|
|
type Handler interface {
|
|
Handle([]byte) ([]byte, *Error)
|
|
}
|
|
|
|
func NewError(code ErrorCode, err error, data interface{}) *Error {
|
|
e := &Error{
|
|
Code: code,
|
|
Message: err.Error(),
|
|
Data: data,
|
|
}
|
|
return e
|
|
}
|