all repos — homestead @ 6db99a292ad6a3ba7c5fedce1a4337d3ceac78af

Code for my website

move error handler to mux.go

Alan Pearce
commit

6db99a292ad6a3ba7c5fedce1a4337d3ceac78af

parent

5f57f420477f91d5ab3bc3a1e0ce8eb42d54c9f4

1 file changed, 13 insertions(+), 0 deletions(-)

changed files
M internal/website/mux.gointernal/website/mux.go
@@ -9,6 +9,7 @@ "strings"
ihttp "go.alanpearce.eu/homestead/internal/http" "go.alanpearce.eu/homestead/internal/server" + "go.alanpearce.eu/homestead/templates" "github.com/kevinpollet/nego" )
@@ -26,6 +27,18 @@ }
} return nil +} + +func (website *Website) ErrorHandler(err *ihttp.Error, w http.ResponseWriter, r *http.Request) { + if strings.Contains(r.Header.Get("Accept"), "text/html") { + w.WriteHeader(err.Code) + err := templates.Error(website.config, r.URL.Path, err).Render(r.Context(), w) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + } + } else { + http.Error(w, err.Message, err.Code) + } } func (website *Website) ServeHTTP(w http.ResponseWriter, r *http.Request) *ihttp.Error {