package middleware

import (
	"time"

	"github.com/gin-gonic/gin"
	"github.com/tidbcloud/pkgv2/log"
	"go.uber.org/zap"
)

func TraceRequest(c *gin.Context) {
	ctx := c.Request.Context()
	logger := log.WithContextL(ctx).With(
		zap.String("path", c.Request.URL.Path),
		zap.String("method", c.Request.Method),
	)

	start := time.Now()
	logger.Info("begin")
	c.Next()
	cost := time.Since(start)
	logger.Info("end", zap.String("cost", cost.String()), zap.Int("statusCode", c.Writer.Status()))
}
