mergeW3CBaggageHeader function

String mergeW3CBaggageHeader(
  1. TracingContext context,
  2. String? baggageHeader, [
  3. InternalLogger? logger
])

Implementation

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

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

  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, effectiveLogger);
}