aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/cloudflare/cfssl/errors/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/cloudflare/cfssl/errors/http.go')
-rw-r--r--vendor/github.com/cloudflare/cfssl/errors/http.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/vendor/github.com/cloudflare/cfssl/errors/http.go b/vendor/github.com/cloudflare/cfssl/errors/http.go
new file mode 100644
index 0000000000..c9c0a39c70
--- /dev/null
+++ b/vendor/github.com/cloudflare/cfssl/errors/http.go
@@ -0,0 +1,47 @@
+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 + `"`)
+}