46 lines
973 B
Go
46 lines
973 B
Go
package queue
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
)
|
|
|
|
type contextKey string
|
|
|
|
const (
|
|
correlationIDKey contextKey = "queue-correlation-id"
|
|
traceIDKey contextKey = "queue-trace-id"
|
|
)
|
|
|
|
func WithCorrelationID(ctx context.Context, correlationID string) context.Context {
|
|
correlationID = strings.TrimSpace(correlationID)
|
|
if correlationID == "" {
|
|
return ctx
|
|
}
|
|
return context.WithValue(ctx, correlationIDKey, correlationID)
|
|
}
|
|
|
|
func CorrelationIDFromContext(ctx context.Context) string {
|
|
if ctx == nil {
|
|
return ""
|
|
}
|
|
value, _ := ctx.Value(correlationIDKey).(string)
|
|
return strings.TrimSpace(value)
|
|
}
|
|
|
|
func WithTraceID(ctx context.Context, traceID string) context.Context {
|
|
traceID = strings.TrimSpace(traceID)
|
|
if traceID == "" {
|
|
return ctx
|
|
}
|
|
return context.WithValue(ctx, traceIDKey, traceID)
|
|
}
|
|
|
|
func TraceIDFromContext(ctx context.Context) string {
|
|
if ctx == nil {
|
|
return ""
|
|
}
|
|
value, _ := ctx.Value(traceIDKey).(string)
|
|
return strings.TrimSpace(value)
|
|
}
|