projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '15305-keep-balance-bytes'
[arvados.git]
/
lib
/
controller
/
router
/
response.go
diff --git
a/lib/controller/router/response.go
b/lib/controller/router/response.go
index aa3af1f64c45194c5d5b3cc2e1996ed212941e5e..e3ec37a6ea842ac36e6b8d766cf91cf0210f05f9 100644
(file)
--- a/
lib/controller/router/response.go
+++ b/
lib/controller/router/response.go
@@
-52,9
+52,16
@@
func applySelectParam(selectParam []string, orig map[string]interface{}) map[str
return selected
}
return selected
}
-func (rtr *router) sendResponse(w http.ResponseWriter, resp interface{}, opts responseOptions) {
+func (rtr *router) sendResponse(w http.ResponseWriter, re
q *http.Request, re
sp interface{}, opts responseOptions) {
var tmp map[string]interface{}
var tmp map[string]interface{}
+ if resp, ok := resp.(http.Handler); ok {
+ // resp knows how to write its own http response
+ // header and body.
+ resp.ServeHTTP(w, req)
+ return
+ }
+
err := rtr.transcode(resp, &tmp)
if err != nil {
rtr.sendError(w, err)
err := rtr.transcode(resp, &tmp)
if err != nil {
rtr.sendError(w, err)
@@
-121,7
+128,9
@@
func (rtr *router) sendResponse(w http.ResponseWriter, resp interface{}, opts re
}
}
w.Header().Set("Content-Type", "application/json")
}
}
w.Header().Set("Content-Type", "application/json")
- json.NewEncoder(w).Encode(tmp)
+ enc := json.NewEncoder(w)
+ enc.SetEscapeHTML(false)
+ enc.Encode(tmp)
}
func (rtr *router) sendError(w http.ResponseWriter, err error) {
}
func (rtr *router) sendError(w http.ResponseWriter, err error) {