Mercurial > gemma
changeset 739:b800eb2a0846
JSON handler: if result is an io.Reader copyit through.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 24 Sep 2018 12:35:31 +0200 |
parents | ea0eb6ef98ce |
children | b9c69f016e0c |
files | pkg/controllers/json.go |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/controllers/json.go Mon Sep 24 11:36:30 2018 +0200 +++ b/pkg/controllers/json.go Mon Sep 24 12:35:31 2018 +0200 @@ -4,6 +4,7 @@ "database/sql" "encoding/json" "fmt" + "io" "log" "net/http" @@ -109,7 +110,14 @@ } rw.WriteHeader(jr.Code) if jr.Code != http.StatusNoContent { - if err := json.NewEncoder(rw).Encode(jr.Result); err != nil { + var err error + r, ok := jr.Result.(io.Reader) + if ok { + _, err = io.Copy(rw, r) + } else { + err = json.NewEncoder(rw).Encode(jr.Result) + } + if err != nil { log.Printf("error: %v\n", err) } }