diff options
Diffstat (limited to 'cmd/web/helpers.go')
-rw-r--r-- | cmd/web/helpers.go | 21 |
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) + } +} |