feat(smalltrip,exceptions): PanicMiddleware to recover from unexcepted panics

This commit is contained in:
Guz
2025-02-26 17:48:44 -03:00
parent b6101c7d1d
commit 7bbd2836a6

View File

@@ -52,6 +52,20 @@ func Middleware(options ...MiddlewareOption) middleware.Middleware {
})
}
func PanicMiddleware() middleware.Middleware {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
defer func() {
if r := recover(); r != nil {
err := fmt.Errorf("panic recovered: %+v", r)
InternalServerError(err).ServeHTTP(w, req)
}
}()
next.ServeHTTP(w, req)
})
}
}
var defaultTemplate = template.Must(template.New("xx-small-trip-default-Exception-template").Parse(`
Status: {{ .Status }}
Code: {{ .Code }}