toDetailedMap method

Map<String, dynamic> toDetailedMap()

Returns a detailed structured map of all request and response data.

Implementation

Map<String, dynamic> toDetailedMap() {
  return {
    'response': {
      'statusCode': statusCode,
      'statusMessage': statusMessage,
      'headers': headers,
      'isRedirect': isRedirect,
      'redirects': redirects
          .map(
            (r) => {
              'statusCode': r.statusCode,
              'method': r.method,
              'location': r.location.toString(),
            },
          )
          .toList(),
      'extra': extra,
      'rawResponse': rawResponse,
    },
    'request': {
      'method': requestMethod,
      'path': requestPath,
      'baseUrl': requestBaseUrl,
      'fullUrl': fullUrl,
      'headers': requestHeaders,
      'data': requestData,
      'queryParameters': queryParameters,
      'contentType': contentType,
      'connectTimeout': connectTimeout?.inMilliseconds,
      'receiveTimeout': receiveTimeout?.inMilliseconds,
    },
    'timing': {
      'requestTime': requestTime?.toIso8601String(),
      'responseTime': responseTime?.toIso8601String(),
      'duration': calculatedDuration?.inMilliseconds,
    },
    'analysis': {
      'isSuccess': isSuccess,
      'errorType': errorType,
      'isJsonResponse': isJsonResponse,
      'responseSize': responseSize,
    },
  };
}