diff options
Diffstat (limited to 'cmd/web/helpers.go')
-rw-r--r-- | cmd/web/helpers.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/cmd/web/helpers.go b/cmd/web/helpers.go new file mode 100644 index 0000000..ea09979 --- /dev/null +++ b/cmd/web/helpers.go @@ -0,0 +1,26 @@ +package main + +import ( + "log" + "runtime/debug" + "net/http" +) + +func (app *application) serverError(w http.ResponseWriter, r *http.Request, err error) { + var ( + method = r.Method + uri = r.URL.RequestURI() + trace = string(debug.Stack()) + ) + + app.logger.Error(err.Error(), "method", method, "uri", uri, "trace", trace) + log.Printf("Crash! %s %s %s", method, uri, trace) + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) +} + +// The clientError helper sends a specific status code and corresponding description +// to the user. We'll use this later in the book to send responses like 400 "Bad +// Request" when there's a problem with the request that the user sent. +func (app *application) clientError(w http.ResponseWriter, status int) { + http.Error(w, http.StatusText(status), status) +} |