initial commit
This commit is contained in:
commit
bec2cfd017
18 files changed
+781
No files matched your search
@@ -0,0 +1,59 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"errors"
|
||||
mcontext "github.com/abelith/gomax/context"
|
||||
"github.com/abelith/gomax/core"
|
||||
merrors "github.com/abelith/gomax/errors"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func MwErrorResponder(defaultMsg string) core.Middleware {
|
||||
return func(next core.HandlerFunc) core.HandlerFunc {
|
||||
return func(c *mcontext.Context) error {
|
||||
err := next.HandleUpdate(c)
|
||||
var maxErr *merrors.GomaxError
|
||||
|
||||
if errors.As(err, &maxErr) {
|
||||
return c.Respond(maxErr.Message)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return c.Respond(defaultMsg)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MwLoggerInjector() core.Middleware {
|
||||
return func(next core.HandlerFunc) core.HandlerFunc {
|
||||
return func(c *mcontext.Context) error {
|
||||
ctx := log.Logger.With().Int64("user_id", c.Update().UserID).
|
||||
Logger().WithContext(c.Context())
|
||||
c.SetContext(ctx)
|
||||
return next.HandleUpdate(c)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func MwErrorLogger() core.Middleware {
|
||||
return func(next core.HandlerFunc) core.HandlerFunc {
|
||||
return func(c *mcontext.Context) error {
|
||||
if err := next.HandleUpdate(c); err != nil {
|
||||
log.Ctx(c).Err(err).Send()
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user