mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 12:57:18 +00:00
63 lines
1.5 KiB
Go
63 lines
1.5 KiB
Go
package apimiddleware
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// ---------------
|
|
// Error handling.
|
|
// ---------------
|
|
|
|
// ErrorJson describes common functionality of all JSON error representations.
|
|
type ErrorJson interface {
|
|
StatusCode() int
|
|
SetCode(code int)
|
|
Msg() string
|
|
SetMsg(msg string)
|
|
}
|
|
|
|
// DefaultErrorJson is a JSON representation of a simple error value, containing only a message and an error code.
|
|
type DefaultErrorJson struct {
|
|
Message string `json:"message"`
|
|
Code int `json:"code"`
|
|
}
|
|
|
|
// InternalServerErrorWithMessage returns a DefaultErrorJson with 500 code and a custom message.
|
|
func InternalServerErrorWithMessage(err error, message string) *DefaultErrorJson {
|
|
e := errors.Wrapf(err, message)
|
|
return &DefaultErrorJson{
|
|
Message: e.Error(),
|
|
Code: http.StatusInternalServerError,
|
|
}
|
|
}
|
|
|
|
// InternalServerError returns a DefaultErrorJson with 500 code.
|
|
func InternalServerError(err error) *DefaultErrorJson {
|
|
return &DefaultErrorJson{
|
|
Message: err.Error(),
|
|
Code: http.StatusInternalServerError,
|
|
}
|
|
}
|
|
|
|
// StatusCode returns the error's underlying error code.
|
|
func (e *DefaultErrorJson) StatusCode() int {
|
|
return e.Code
|
|
}
|
|
|
|
// Msg returns the error's underlying message.
|
|
func (e *DefaultErrorJson) Msg() string {
|
|
return e.Message
|
|
}
|
|
|
|
// SetCode sets the error's underlying error code.
|
|
func (e *DefaultErrorJson) SetCode(code int) {
|
|
e.Code = code
|
|
}
|
|
|
|
// SetMsg sets the error's underlying message.
|
|
func (e *DefaultErrorJson) SetMsg(msg string) {
|
|
e.Message = msg
|
|
}
|