New Render API
This commit is contained in:
+14
-15
@@ -5,21 +5,20 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type plainTextRender struct{}
|
||||
type String struct {
|
||||
Format string
|
||||
Data []interface{}
|
||||
}
|
||||
|
||||
func (_ plainTextRender) Render(w http.ResponseWriter, code int, data ...interface{}) error {
|
||||
format := data[0].(string)
|
||||
values := data[1].([]interface{})
|
||||
WritePlainText(w, code, format, values)
|
||||
func (r String) Write(w http.ResponseWriter) error {
|
||||
header := w.Header()
|
||||
if _, exist := header["Content-Type"]; !exist {
|
||||
header.Set("Content-Type", "text/plain; charset=utf-8")
|
||||
}
|
||||
if len(r.Data) > 0 {
|
||||
fmt.Fprintf(w, r.Format, r.Data...)
|
||||
} else {
|
||||
w.Write([]byte(r.Format))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func WritePlainText(w http.ResponseWriter, code int, format string, values []interface{}) {
|
||||
writeHeader(w, code, "text/plain; charset=utf-8")
|
||||
// we assume w.Write can not fail, is that right?
|
||||
if len(values) > 0 {
|
||||
fmt.Fprintf(w, format, values...)
|
||||
} else {
|
||||
w.Write([]byte(format))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user