package utils import ( "context" "github.com/valyala/fasthttp" "go.opentelemetry.io/otel/trace" "go.uber.org/zap" ) // SetContextToRequest adds new context to fasthttp request. func SetContextToRequest(ctx context.Context, c *fasthttp.RequestCtx) { c.SetUserValue("context", ctx) } // GetContextFromRequest returns main context from fasthttp request context. func GetContextFromRequest(c *fasthttp.RequestCtx) context.Context { return c.UserValue("context").(context.Context) } // WithTracing adds trace_id field to logs. func WithRequestTracing(ctx context.Context, log *zap.Logger) *zap.Logger { if traceID := trace.SpanFromContext(ctx).SpanContext().TraceID(); traceID.IsValid() { return log.With(zap.String("trace_id", traceID.String())) } return log }