From 8953b10faa2de6ea3345d94a2fb53b4e34d7dd00 Mon Sep 17 00:00:00 2001 From: Gibheer Date: Mon, 3 May 2021 19:43:25 +0200 Subject: [PATCH] define result as interface{} This way we can easily reset the result after we hit an error, which then omits the result. --- server.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server.go b/server.go index e47d970..057a71d 100644 --- a/server.go +++ b/server.go @@ -50,9 +50,9 @@ type ( // Response can have messages and/or a result to return the to client. Response struct { - ID string `json:"id"` - Messages map[string][]string `json:"messages,omitempty"` - Result map[string]interface{} `json:"result,omitempty"` + ID string `json:"id"` + Messages map[string][]string `json:"messages,omitempty"` + Result interface{} `json:"result,omitempty"` } ident []byte @@ -134,6 +134,7 @@ func (s *Server) Handle(w http.ResponseWriter, r *http.Request) { } c.Logf(LevelInfo, "method '%s' called with '%s'", req.Method, req.Params) if err := handler(c, req, res); err != nil { + c.w.WriteHeader(http.StatusInternalServerError) c.Logf(LevelError, "method '%s' returned an error: %s", req.Method, err) } if err := tx.Commit(); err != nil {