onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
if (!NetworkLoggerConfig.isEnabled) {
debugPrint('⚠️ CoteNetworkLogger: Logger is disabled');
handler.next(err);
return;
}
try {
final transactionId = _requestTransactionIds.remove(err.requestOptions) ?? _generateTransactionId(err.requestOptions);
NetworkLogStore.instance.upsertLog(transactionId, {
'transactionId': transactionId,
'type': 'error',
'method': err.requestOptions.method,
'url': err.requestOptions.uri.toString(),
'statusCode': err.response?.statusCode,
'headers': err.response?.headers.map,
'body': err.response?.data,
'error': err.message,
'timestamp': DateTime.now().toIso8601String(),
'status': 'error',
});
debugPrint('❌ CoteNetworkLogger: Intercepted error: ${err.message} for ${err.requestOptions.uri} (transactionId: $transactionId)');
handler.next(err);
} catch (e) {
debugPrint('❌ CoteNetworkLogger: Failed to log error: $e');
handler.next(err);
}
}