github.com/EngineerKamesh/gofullstack@v0.0.0-20180609171605-d41341d7d4ee/volume4/section2/gopherface/handlers/templatebundle.go (about)

     1  package handlers
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/gob"
     6  	"log"
     7  	"net/http"
     8  
     9  	"github.com/EngineerKamesh/gofullstack/volume4/section2/gopherface/common"
    10  )
    11  
    12  func TemplateBundleHandler(env *common.Env) http.Handler {
    13  	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    14  		var templateContentItemsBuffer bytes.Buffer
    15  		enc := gob.NewEncoder(&templateContentItemsBuffer)
    16  		m := env.TemplateSet.Bundle().Items()
    17  		err := enc.Encode(&m)
    18  		if err != nil {
    19  			log.Print("encoding err: ", err)
    20  		}
    21  		w.Header().Set("Content-Type", "application/octet-stream")
    22  		w.Write(templateContentItemsBuffer.Bytes())
    23  	})
    24  
    25  }