diff --git a/context.go b/context.go index cec6ab39..d4722700 100644 --- a/context.go +++ b/context.go @@ -204,10 +204,9 @@ type ( const ( defaultMemory = 32 << 20 // 32 MB indexPage = "index.html" + defaultIndent = " " ) -var defaultIndent = " " - func (c *context) writeContentType(value string) { header := c.Response().Header() if header.Get(HeaderContentType) == "" { @@ -425,10 +424,10 @@ func (c *context) jsonPBlob(code int, callback string, i interface{}) (err error return } -func (c *context) jsonBlob(code int, i interface{}, indent *string) error { +func (c *context) json(code int, i interface{}, indent string) error { enc := json.NewEncoder(c.response) - if indent != nil { - enc.SetIndent("", *indent) + if indent != "" { + enc.SetIndent("", indent) } c.writeContentType(MIMEApplicationJSONCharsetUTF8) c.response.WriteHeader(code) @@ -436,15 +435,15 @@ func (c *context) jsonBlob(code int, i interface{}, indent *string) error { } func (c *context) JSON(code int, i interface{}) (err error) { - var indent *string + indent := "" if _, pretty := c.QueryParams()["pretty"]; c.echo.Debug || pretty { - indent = &defaultIndent + indent = defaultIndent } - return c.jsonBlob(code, i, indent) + return c.json(code, i, indent) } func (c *context) JSONPretty(code int, i interface{}, indent string) (err error) { - return c.jsonBlob(code, i, &indent) + return c.json(code, i, indent) } func (c *context) JSONBlob(code int, b []byte) (err error) { @@ -468,12 +467,12 @@ func (c *context) JSONPBlob(code int, callback string, b []byte) (err error) { return } -func (c *context) xmlBlob(code int, i interface{}, indent *string) (err error) { +func (c *context) xml(code int, i interface{}, indent string) (err error) { c.writeContentType(MIMEApplicationXMLCharsetUTF8) c.response.WriteHeader(code) enc := xml.NewEncoder(c.response) - if indent != nil { - enc.Indent("", *indent) + if indent != "" { + enc.Indent("", indent) } if _, err = c.response.Write([]byte(xml.Header)); err != nil { return @@ -482,15 +481,15 @@ func (c *context) xmlBlob(code int, i interface{}, indent *string) (err error) { } func (c *context) XML(code int, i interface{}) (err error) { - var indent *string + indent := "" if _, pretty := c.QueryParams()["pretty"]; c.echo.Debug || pretty { - indent = &defaultIndent + indent = defaultIndent } - return c.xmlBlob(code, i, indent) + return c.xml(code, i, indent) } func (c *context) XMLPretty(code int, i interface{}, indent string) (err error) { - return c.xmlBlob(code, i, &indent) + return c.xml(code, i, indent) } func (c *context) XMLBlob(code int, b []byte) (err error) { @@ -598,3 +597,4 @@ func (c *context) Reset(r *http.Request, w http.ResponseWriter) { // NOTE: Don't reset because it has to have length c.echo.maxParam at all times // c.pvalues = nil } + diff --git a/context_test.go b/context_test.go index 2da37db7..3a47364d 100644 --- a/context_test.go +++ b/context_test.go @@ -211,7 +211,7 @@ func TestContext(t *testing.T) { enc := json.NewEncoder(buf) enc.SetIndent(emptyIndent, emptyIndent) err = enc.Encode(u) - err = c.jsonBlob(http.StatusOK, user{1, "Jon Snow"}, &emptyIndent) + err = c.json(http.StatusOK, user{1, "Jon Snow"}, emptyIndent) if assert.NoError(err) { assert.Equal(http.StatusOK, rec.Code) assert.Equal(MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType)) @@ -229,7 +229,7 @@ func TestContext(t *testing.T) { enc := xml.NewEncoder(buf) enc.Indent(emptyIndent, emptyIndent) err = enc.Encode(u) - err = c.xmlBlob(http.StatusOK, user{1, "Jon Snow"}, &emptyIndent) + err = c.xml(http.StatusOK, user{1, "Jon Snow"}, emptyIndent) if assert.NoError(err) { assert.Equal(http.StatusOK, rec.Code) assert.Equal(MIMEApplicationXMLCharsetUTF8, rec.Header().Get(HeaderContentType)) @@ -543,3 +543,4 @@ func TestContextHandler(t *testing.T) { c.Handler()(c) testify.Equal(t, "handler", b.String()) } +