32 lines
773 B
Go
32 lines
773 B
Go
package errorpkg
|
|
|
|
import "fmt"
|
|
|
|
type ErrorResponse struct {
|
|
Code string `json:"code"`
|
|
Status int `json:"status"`
|
|
Message string `json:"message"`
|
|
UserMessage string `json:"userMessage"`
|
|
MoreInfo string `json:"moreInfo"`
|
|
Err error `json:"-"`
|
|
}
|
|
|
|
func NewErrorResponse(code string, status int, message string, userMessage string, err error) *ErrorResponse {
|
|
return &ErrorResponse{
|
|
Code: code,
|
|
Status: status,
|
|
Message: message,
|
|
UserMessage: userMessage,
|
|
MoreInfo: fmt.Sprintf("https://voltaserve.com/docs/api/errors/%s", code),
|
|
Err: err,
|
|
}
|
|
}
|
|
|
|
func (err ErrorResponse) Error() string {
|
|
return fmt.Sprintf("%s %s", err.Code, err.Message)
|
|
}
|
|
|
|
func (err ErrorResponse) Unwrap() error {
|
|
return err.Err
|
|
}
|