Update handlers.go to add returnResponseCode

pull/904/head
Andrew Gerhold 2020-11-27 14:59:24 -08:00 committed by GitHub
parent 718ebe84d3
commit 1e66d3a470
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 0 deletions

View File

@ -212,6 +212,27 @@ func returnJson(d interface{}, w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(d)
}
func returnResponseCode(d interface{}, w http.ResponseWriter, r *http.Request) {
if e, ok := d.(errors.Error); ok {
w.WriteHeader(e.Status())
json.NewEncoder(w).Encode(e)
return
}
if e, ok := d.(error); ok {
w.WriteHeader(500)
json.NewEncoder(w).Encode(errors.New(e.Error()))
return
}
// https://golang.org/src/net/http/server.go?s=3003:5866#L150
// Go does not currently
// support sending user-defined 1xx informational headers,
// with the exception of 100-continue response header that the
// Server sends automatically when the Request.Body is read.
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(d)
}
// error404Handler is a HTTP handler for 404 error pages
func error404Handler(w http.ResponseWriter, r *http.Request) {
if usingSSL {