onResponse method

  1. @override
void onResponse(
  1. Response response,
  2. ResponseInterceptorHandler handler
)

Called when the response is about to be resolved.

Implementation

@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
  if (!NetworkLoggerConfig.isEnabled) {
    debugPrint('⚠️ CoteNetworkLogger: Logger is disabled');
    handler.next(response);
    return;
  }
  try {
    final transactionId = _requestTransactionIds.remove(response.requestOptions) ?? _generateTransactionId(response.requestOptions);
    NetworkLogStore.instance.upsertLog(transactionId, {
      'transactionId': transactionId,
      'type': 'response',
      'method': response.requestOptions.method,
      'url': response.requestOptions.uri.toString(),
      'statusCode': response.statusCode,
      'headers': response.headers.map,
      'body': response.data,
      'timestamp': DateTime.now().toIso8601String(),
      'status': 'completed',
    });
    debugPrint('✅ CoteNetworkLogger: Intercepted response: ${response.statusCode} for ${response.requestOptions.uri} (transactionId: $transactionId)');
    handler.next(response);
  } catch (e) {
    debugPrint('❌ CoteNetworkLogger: Failed to log response: $e');
    handler.next(response);
  }
}