processRequest function
Future<ConvivaHttpClientRequest>
processRequest({
- required Future<
HttpClientRequest> request, - Uri? uri,
Implementation
Future<ConvivaHttpClientRequest> processRequest(
{required Future<HttpClientRequest> request, Uri? uri}) async {
var requestTimestamp = DateTime.now().millisecondsSinceEpoch;
HttpClientRequest? actualRequest;
Map<String, dynamic>? configInfo = {};
try {
actualRequest = await request;
var data = (actualRequest.headers['traceparent'] ?? "");
String traceparent = (data is List) ? data.first : data;
configInfo = (await ConvivaHttpOverrides.channel.invokeMethod(
'getConfigInfo', {
'targetUrl': actualRequest.uri.replace(queryParameters: {}).toString()
}))
.cast<String, dynamic>();
if (traceparent.isEmpty && configInfo?['isTraceparentEnabled']) {
actualRequest.headers.add("traceparent", configInfo?['traceparentId']);
}
} catch (exception) {
if (actualRequest != null) {
_processConvivaNetworkEvent(
actualRequest, null, 0, 0, exception.toString());
} else if (uri != null) {
_processConvivaNetworkEventUsingUrl(
uri, null, 0, 0, exception.toString());
}
}
if (actualRequest is ConvivaHttpClientRequest) {
return request as ConvivaHttpClientRequest;
}
return ConvivaHttpClientRequest(actualRequest!, requestTimestamp, configInfo);
}