Merge branch '13647-keepstore-config'
[arvados.git] / sdk / go / httpserver / error.go
index 1ccf8c04782fbf57aedfe6cb20f75c50ef53cb9d..f1817d3374ae11e07f4479de77b1b1b67e4b3cf9 100644 (file)
@@ -9,15 +9,25 @@ import (
        "net/http"
 )
 
+func ErrorWithStatus(err error, status int) error {
+       return errorWithStatus{err, status}
+}
+
+type errorWithStatus struct {
+       error
+       Status int
+}
+
+func (ews errorWithStatus) HTTPStatus() int {
+       return ews.Status
+}
+
 type ErrorResponse struct {
        Errors []string `json:"errors"`
 }
 
 func Error(w http.ResponseWriter, error string, code int) {
-       w.Header().Set("Content-Type", "application/json")
-       w.Header().Set("X-Content-Type-Options", "nosniff")
-       w.WriteHeader(code)
-       json.NewEncoder(w).Encode(ErrorResponse{Errors: []string{error}})
+       Errors(w, []string{error}, code)
 }
 
 func Errors(w http.ResponseWriter, errors []string, code int) {