matching_app/internal/uiux/middleware.go
2025-05-02 15:12:18 +07:00

41 lines
809 B
Go

package uiux
import (
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
func LoggingMiddleware(logger *zap.Logger) gin.HandlerFunc {
return func(c *gin.Context) {
logger.Info("Incoming request",
zap.String("method", c.Request.Method),
zap.String("path", c.Request.URL.Path),
)
c.Next()
logger.Info("Request completed",
zap.Int("status", c.Writer.Status()),
zap.String("path", c.Request.URL.Path),
)
}
}
func ErrorMiddleware(logger *zap.Logger) gin.HandlerFunc {
return func(c *gin.Context) {
c.Next()
// Xử lý lỗi nếu có
if len(c.Errors) > 0 {
errs := make([]error, len(c.Errors))
for i, e := range c.Errors {
errs[i] = e.Err
}
logger.Error("Request failed",
zap.String("path", c.Request.URL.Path),
zap.Errors("errors", errs),
)
}
}
}