From 5dd67e22c20e17a67dab298f36f81d612b8052c6 Mon Sep 17 00:00:00 2001 From: Timo Riegebauer Date: Sun, 15 Feb 2026 21:35:58 +0000 Subject: [PATCH] go-tower: added SetNotFoundHandler: v0.1.3 --- tower.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tower.go b/tower.go index 1735c47..021f9ef 100644 --- a/tower.go +++ b/tower.go @@ -49,6 +49,22 @@ func (t *Tower) SetErrorHandler(errorHandler ErrorHandler) { t.errorHandler = errorHandler } +func (t *Tower) SetNotFoundHandler(notFoundHandler Handler) { + t.router.NotFound = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ctx := Context{ + request: r, + response: &responseWriter{ResponseWriter: w}, + params: httprouter.Params{}, + } + + if err := notFoundHandler(&ctx); err != nil { + if err := t.errorHandler(&ctx, err); err != nil { + log.Printf("[Error] %v", err) + } + } + }) +} + func (t *Tower) Use(globalMiddlewares ...Middleware) { t.globalMiddlewares = append(t.globalMiddlewares, globalMiddlewares...) }