feat: added panic handler middleware

This commit is contained in:
abelith committed 2026-10-06 13:45:17 +03:00
1 parent 43e3a8a397
commit 185f859ee3
1 file changed
+18 -4
+18 -4
View File
@@ -8,10 +8,24 @@ import (
"github.com/rs/zerolog/log"
)
func MwPanicHandler() core.Middleware {
return func(next core.HandlerFunc) core.HandlerFunc {
return func(c *mcontext.Context) error {
defer func() {
p := recover()
if p != nil {
log.Fatal().Any("panic", p)
}
}()
return next(c)
}
}
}
func MwErrorResponder(defaultMsg string) core.Middleware {
return func(next core.HandlerFunc) core.HandlerFunc {
return func(c *mcontext.Context) error {
err := next.HandleUpdate(c)
err := next(c)
var maxErr *merrors.GomaxError
if errors.As(err, &maxErr) {
@@ -32,7 +46,7 @@ func MwLoggerInjector() core.Middleware {
ctx := log.Logger.With().Int64("user_id", c.Update().UserID).
Logger().WithContext(c.Context())
c.SetContext(ctx)
return next.HandleUpdate(c)
return next(c)
}
}
}
@@ -41,7 +55,7 @@ func MwDebugState() core.Middleware {
return func(next core.HandlerFunc) core.HandlerFunc {
return func(c *mcontext.Context) error {
log.Debug().Any("state", c.State()).Any("update", c.Update()).Send()
return next.HandleUpdate(c)
return next(c)
}
}
}
@@ -49,7 +63,7 @@ func MwDebugState() core.Middleware {
func MwErrorLogger() core.Middleware {
return func(next core.HandlerFunc) core.HandlerFunc {
return func(c *mcontext.Context) error {
if err := next.HandleUpdate(c); err != nil {
if err := next(c); err != nil {
log.Ctx(c).Err(err).Send()
return err
}