summaryrefslogtreecommitdiffstats
path: root/cmd/web/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/web/helpers.go')
-rw-r--r--cmd/web/helpers.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/cmd/web/helpers.go b/cmd/web/helpers.go
index 5f7e4d3..fc9b8f8 100644
--- a/cmd/web/helpers.go
+++ b/cmd/web/helpers.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"log"
"net/http"
"runtime/debug"
@@ -29,3 +30,23 @@ func (app *application) clientError(w http.ResponseWriter, status int) {
func (app *application) notFound(w http.ResponseWriter) {
app.clientError(w, http.StatusNotFound)
}
+
+func (app *application) render(w http.ResponseWriter, r *http.Request, status int, page string, data templateData) {
+ // retrieve the appropriate template set from the cache based on the page name.
+ // If no entry exists in the cache with the provided name, create a new error
+ // and call serverError() helper that we made earlier and return.
+ ts, ok := app.templateCache[page]
+ if !ok {
+ err := fmt.Errorf("the template %s does not exist", page)
+ app.serverError(w, r, err)
+ return
+ }
+
+ // Write out the provided HTTP status code('200 OK', '400 Bad Request', etc).
+ w.WriteHeader(status)
+
+ err := ts.ExecuteTemplate(w, "base", data)
+ if err != nil {
+ app.serverError(w, r, err)
+ }
+}