123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package errors
- import (
- "errors"
- "net/http"
- )
- // HTTPError is an augmented error with a HTTP status code.
- type HTTPError struct {
- StatusCode int
- error
- }
- // Error implements the error interface.
- func (e *HTTPError) Error() string {
- return e.error.Error()
- }
- // NewMethodNotAllowed returns an appropriate error in the case that
- // an HTTP client uses an invalid method (i.e. a GET in place of a POST)
- // on an API endpoint.
- func NewMethodNotAllowed(method string) *HTTPError {
- return &HTTPError{http.StatusMethodNotAllowed, errors.New(`Method is not allowed:"` + method + `"`)}
- }
- // NewBadRequest creates a HttpError with the given error and error code 400.
- func NewBadRequest(err error) *HTTPError {
- return &HTTPError{http.StatusBadRequest, err}
- }
- // NewBadRequestString returns a HttpError with the supplied message
- // and error code 400.
- func NewBadRequestString(s string) *HTTPError {
- return NewBadRequest(errors.New(s))
- }
- // NewBadRequestMissingParameter returns a 400 HttpError as a required
- // parameter is missing in the HTTP request.
- func NewBadRequestMissingParameter(s string) *HTTPError {
- return NewBadRequestString(`Missing parameter "` + s + `"`)
- }
- // NewBadRequestUnwantedParameter returns a 400 HttpError as a unnecessary
- // parameter is present in the HTTP request.
- func NewBadRequestUnwantedParameter(s string) *HTTPError {
- return NewBadRequestString(`Unwanted parameter "` + s + `"`)
- }
|