feat: added panic handler middleware
This commit is contained in:
1 parent
43e3a8a397
commit
185f859ee3
1 file changed
+18
-4
@@ -8,10 +8,24 @@ import (
|
|||||||
"github.com/rs/zerolog/log"
|
"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 {
|
func MwErrorResponder(defaultMsg string) core.Middleware {
|
||||||
return func(next core.HandlerFunc) core.HandlerFunc {
|
return func(next core.HandlerFunc) core.HandlerFunc {
|
||||||
return func(c *mcontext.Context) error {
|
return func(c *mcontext.Context) error {
|
||||||
err := next.HandleUpdate(c)
|
err := next(c)
|
||||||
var maxErr *merrors.GomaxError
|
var maxErr *merrors.GomaxError
|
||||||
|
|
||||||
if errors.As(err, &maxErr) {
|
if errors.As(err, &maxErr) {
|
||||||
@@ -32,7 +46,7 @@ func MwLoggerInjector() core.Middleware {
|
|||||||
ctx := log.Logger.With().Int64("user_id", c.Update().UserID).
|
ctx := log.Logger.With().Int64("user_id", c.Update().UserID).
|
||||||
Logger().WithContext(c.Context())
|
Logger().WithContext(c.Context())
|
||||||
c.SetContext(ctx)
|
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(next core.HandlerFunc) core.HandlerFunc {
|
||||||
return func(c *mcontext.Context) error {
|
return func(c *mcontext.Context) error {
|
||||||
log.Debug().Any("state", c.State()).Any("update", c.Update()).Send()
|
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 {
|
func MwErrorLogger() core.Middleware {
|
||||||
return func(next core.HandlerFunc) core.HandlerFunc {
|
return func(next core.HandlerFunc) core.HandlerFunc {
|
||||||
return func(c *mcontext.Context) error {
|
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()
|
log.Ctx(c).Err(err).Send()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user