echoip/http/error.go

41 lines
754 B
Go
Raw Normal View History

2018-02-10 13:24:32 +01:00
package http
2015-09-18 17:13:14 +02:00
import "net/http"
type appError struct {
Error error
2016-04-15 20:14:16 +02:00
Message string
2015-09-18 17:13:14 +02:00
Code int
ContentType string
}
func internalServerError(err error) *appError {
2016-04-15 20:14:16 +02:00
return &appError{
Error: err,
Message: "Internal server error",
Code: http.StatusInternalServerError,
}
2015-09-18 17:13:14 +02:00
}
func notFound(err error) *appError {
return &appError{Error: err, Code: http.StatusNotFound}
}
2016-04-15 20:52:15 +02:00
func badRequest(err error) *appError {
return &appError{Error: err, Code: http.StatusBadRequest}
}
2016-04-15 20:14:16 +02:00
func (e *appError) AsJSON() *appError {
2016-05-26 21:38:10 +02:00
e.ContentType = jsonMediaType
2015-09-18 17:13:14 +02:00
return e
}
2016-04-15 20:14:16 +02:00
func (e *appError) WithMessage(message string) *appError {
e.Message = message
2015-09-18 17:13:14 +02:00
return e
}
func (e *appError) IsJSON() bool {
2016-05-26 21:38:10 +02:00
return e.ContentType == jsonMediaType
2015-09-18 17:13:14 +02:00
}