35 lines
1.0 KiB
Go
35 lines
1.0 KiB
Go
package handler
|
|
|
|
// Error represents an error with the intent to be sent in the HTTP
|
|
// response to the client. Therefore, it also contains a HTTPResponse,
|
|
// next to an error code and error message.
|
|
// TODO: Error is not comparable anymore because HTTPResponse
|
|
// contains a map. See if we should change this.
|
|
type Error struct {
|
|
ErrorCode string
|
|
Message string
|
|
HTTPResponse HTTPResponse
|
|
}
|
|
|
|
func (e Error) Error() string {
|
|
return e.ErrorCode + ": " + e.Message
|
|
}
|
|
|
|
// NewError constructs a new Error object with the given error code and message.
|
|
// The corresponding HTTP response will have the provided status code
|
|
// and a body consisting of the error details.
|
|
// responses. See the net/http package for standardized status codes.
|
|
func NewError(errCode string, message string, statusCode int) Error {
|
|
return Error{
|
|
ErrorCode: errCode,
|
|
Message: message,
|
|
HTTPResponse: HTTPResponse{
|
|
StatusCode: statusCode,
|
|
Body: errCode + ": " + message + "\n",
|
|
Headers: HTTPHeaders{
|
|
"Content-Type": "text/plain; charset=utf-8",
|
|
},
|
|
},
|
|
}
|
|
}
|