mergeW3CBaggageHeader function

String mergeW3CBaggageHeader(
  1. TracingContext context,
  2. String? baggageHeader
)

Implementation

String mergeW3CBaggageHeader(TracingContext context, String? baggageHeader) {
  final logger = DatadogSdk.instance.internalLogger;
  baggageHeader ??= '';

  Map<String, String> baggageValueMap = _deconstructBaggageHeader(
    baggageHeader,
    logger,
  );

  if (context.rumSessionId case final sessionId?) {
    baggageValueMap[W3CHeadersBaggageKeys.sessionId] = _encodeBaggageValue(
      sessionId,
    );
  }

  if (context.userId case final userId?) {
    baggageValueMap[W3CHeadersBaggageKeys.userId] = _encodeBaggageValue(userId);
  }

  if (context.accountId case final accountId?) {
    baggageValueMap[W3CHeadersBaggageKeys.accountId] = _encodeBaggageValue(
      accountId,
    );
  }

  return _constructBaggageHeader(baggageValueMap, logger);
}