mirror of
https://github.com/labstack/echo.git
synced 2025-11-06 08:59:21 +02:00
32
context.go
32
context.go
@@ -204,10 +204,9 @@ type (
|
|||||||
const (
|
const (
|
||||||
defaultMemory = 32 << 20 // 32 MB
|
defaultMemory = 32 << 20 // 32 MB
|
||||||
indexPage = "index.html"
|
indexPage = "index.html"
|
||||||
|
defaultIndent = " "
|
||||||
)
|
)
|
||||||
|
|
||||||
var defaultIndent = " "
|
|
||||||
|
|
||||||
func (c *context) writeContentType(value string) {
|
func (c *context) writeContentType(value string) {
|
||||||
header := c.Response().Header()
|
header := c.Response().Header()
|
||||||
if header.Get(HeaderContentType) == "" {
|
if header.Get(HeaderContentType) == "" {
|
||||||
@@ -425,10 +424,10 @@ func (c *context) jsonPBlob(code int, callback string, i interface{}) (err error
|
|||||||
return
|
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)
|
enc := json.NewEncoder(c.response)
|
||||||
if indent != nil {
|
if indent != "" {
|
||||||
enc.SetIndent("", *indent)
|
enc.SetIndent("", indent)
|
||||||
}
|
}
|
||||||
c.writeContentType(MIMEApplicationJSONCharsetUTF8)
|
c.writeContentType(MIMEApplicationJSONCharsetUTF8)
|
||||||
c.response.WriteHeader(code)
|
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) {
|
func (c *context) JSON(code int, i interface{}) (err error) {
|
||||||
var indent *string
|
indent := ""
|
||||||
if _, pretty := c.QueryParams()["pretty"]; c.echo.Debug || pretty {
|
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) {
|
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) {
|
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
|
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.writeContentType(MIMEApplicationXMLCharsetUTF8)
|
||||||
c.response.WriteHeader(code)
|
c.response.WriteHeader(code)
|
||||||
enc := xml.NewEncoder(c.response)
|
enc := xml.NewEncoder(c.response)
|
||||||
if indent != nil {
|
if indent != "" {
|
||||||
enc.Indent("", *indent)
|
enc.Indent("", indent)
|
||||||
}
|
}
|
||||||
if _, err = c.response.Write([]byte(xml.Header)); err != nil {
|
if _, err = c.response.Write([]byte(xml.Header)); err != nil {
|
||||||
return
|
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) {
|
func (c *context) XML(code int, i interface{}) (err error) {
|
||||||
var indent *string
|
indent := ""
|
||||||
if _, pretty := c.QueryParams()["pretty"]; c.echo.Debug || pretty {
|
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) {
|
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) {
|
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
|
// NOTE: Don't reset because it has to have length c.echo.maxParam at all times
|
||||||
// c.pvalues = nil
|
// c.pvalues = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ func TestContext(t *testing.T) {
|
|||||||
enc := json.NewEncoder(buf)
|
enc := json.NewEncoder(buf)
|
||||||
enc.SetIndent(emptyIndent, emptyIndent)
|
enc.SetIndent(emptyIndent, emptyIndent)
|
||||||
err = enc.Encode(u)
|
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) {
|
if assert.NoError(err) {
|
||||||
assert.Equal(http.StatusOK, rec.Code)
|
assert.Equal(http.StatusOK, rec.Code)
|
||||||
assert.Equal(MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(MIMEApplicationJSONCharsetUTF8, rec.Header().Get(HeaderContentType))
|
||||||
@@ -229,7 +229,7 @@ func TestContext(t *testing.T) {
|
|||||||
enc := xml.NewEncoder(buf)
|
enc := xml.NewEncoder(buf)
|
||||||
enc.Indent(emptyIndent, emptyIndent)
|
enc.Indent(emptyIndent, emptyIndent)
|
||||||
err = enc.Encode(u)
|
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) {
|
if assert.NoError(err) {
|
||||||
assert.Equal(http.StatusOK, rec.Code)
|
assert.Equal(http.StatusOK, rec.Code)
|
||||||
assert.Equal(MIMEApplicationXMLCharsetUTF8, rec.Header().Get(HeaderContentType))
|
assert.Equal(MIMEApplicationXMLCharsetUTF8, rec.Header().Get(HeaderContentType))
|
||||||
@@ -543,3 +543,4 @@ func TestContextHandler(t *testing.T) {
|
|||||||
c.Handler()(c)
|
c.Handler()(c)
|
||||||
testify.Equal(t, "handler", b.String())
|
testify.Equal(t, "handler", b.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user