From 62e160d7b7d075a2736e9e01620a92ced08ed382 Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Thu, 1 May 2014 21:31:51 +0200 Subject: [PATCH] Updated sleepy to https://github.com/strukturag/sleepy/tree/05901e834c9535ef2fe06154c1b8c4d01349c126 --- .../spreed-speakfreely-server/sleepy/core.go | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/app/spreed-speakfreely-server/sleepy/core.go b/src/app/spreed-speakfreely-server/sleepy/core.go index 6bf03cf0..465e497b 100644 --- a/src/app/spreed-speakfreely-server/sleepy/core.go +++ b/src/app/spreed-speakfreely-server/sleepy/core.go @@ -148,7 +148,26 @@ func (api *API) requestHandler(resource interface{}) http.HandlerFunc { code, data, header := handler(request) - content, err := json.MarshalIndent(data, "", " ") + var content []byte + var err error + + switch data.(type) { + case string: + content = []byte(data.(string)) + case []byte: + content = data.([]byte) + default: + // Encode JSON. + content, err = json.MarshalIndent(data, "", " ") + if err != nil { + if header == nil { + header = http.Header{"Content-Type": {"application/json"}} + } else if header.Get("Content-Type") == "" { + header.Set("Content-Type", "application/json") + } + } + } + if err != nil { rw.WriteHeader(http.StatusInternalServerError) return