handleDioError static method

LLMError handleDioError(
  1. DioException e
)

Handle Dio errors specifically for DeepSeek

Implementation

static LLMError handleDioError(DioException e) {
  final statusCode = e.response?.statusCode;
  final responseData = e.response?.data;

  if (statusCode != null) {
    String errorMessage = 'DeepSeek API error';

    // Extract error message from DeepSeek response format
    if (responseData is Map<String, dynamic>) {
      final error = responseData['error'];
      if (error is Map<String, dynamic>) {
        errorMessage = error['message']?.toString() ?? errorMessage;
      } else if (error is String) {
        errorMessage = error;
      }
    } else if (responseData is String) {
      errorMessage = responseData;
    }

    return handleDeepSeekError(
      statusCode,
      errorMessage,
      responseData is Map<String, dynamic> ? responseData : null,
    );
  }

  // Fall back to standard Dio error handling
  return DioErrorHandler.handleDioError(e, 'DeepSeek');
}