gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

render.go (1079B)


      1 // Copyright 2014 Manu Martinez-Almeida. All rights reserved.
      2 // Use of this source code is governed by a MIT style
      3 // license that can be found in the LICENSE file.
      4 
      5 package render
      6 
      7 import "net/http"
      8 
      9 // Render interface is to be implemented by JSON, XML, HTML, YAML and so on.
     10 type Render interface {
     11 	// Render writes data with custom ContentType.
     12 	Render(http.ResponseWriter) error
     13 	// WriteContentType writes custom ContentType.
     14 	WriteContentType(w http.ResponseWriter)
     15 }
     16 
     17 var (
     18 	_ Render     = JSON{}
     19 	_ Render     = IndentedJSON{}
     20 	_ Render     = SecureJSON{}
     21 	_ Render     = JsonpJSON{}
     22 	_ Render     = XML{}
     23 	_ Render     = String{}
     24 	_ Render     = Redirect{}
     25 	_ Render     = Data{}
     26 	_ Render     = HTML{}
     27 	_ HTMLRender = HTMLDebug{}
     28 	_ HTMLRender = HTMLProduction{}
     29 	_ Render     = YAML{}
     30 	_ Render     = Reader{}
     31 	_ Render     = AsciiJSON{}
     32 	_ Render     = ProtoBuf{}
     33 	_ Render     = TOML{}
     34 )
     35 
     36 func writeContentType(w http.ResponseWriter, value []string) {
     37 	header := w.Header()
     38 	if val := header["Content-Type"]; len(val) == 0 {
     39 		header["Content-Type"] = value
     40 	}
     41 }