1
0
mirror of https://github.com/labstack/echo.git synced 2025-11-06 08:59:21 +02:00

Changes related to #1199

Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
Vishal Rana
2019-01-14 10:56:17 -08:00
parent 62145fad3e
commit 7867fce6ce
2 changed files with 19 additions and 18 deletions

View File

@@ -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
}

View File

@@ -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())
}