testConnection method

Future<void> testConnection()

Test the connection with the current provider settings. Sends a prompt asking the AI to introduce itself.

Implementation

Future<void> testConnection() async {
  final provider = selectedProvider.value;
  final apiKey = apiKeyController.text.trim();
  final model = modelController.text.trim().isNotEmpty
      ? modelController.text.trim()
      : defaultModel;
  final baseUrl = baseUrlController.text.trim().isNotEmpty
      ? baseUrlController.text.trim()
      : defaultBaseUrl;

  if (AuthService.requiresApiKey(provider) && apiKey.isEmpty) {
    testError.value =
        'API key is required for '
        '${AuthService.providerDisplayName(provider)}';
    testResult.value = null;
    return;
  }

  isTesting.value = true;
  testResult.value = null;
  testError.value = null;

  try {
    final response = await _sendTestMessage(
      provider: provider,
      apiKey: apiKey,
      model: model,
      baseUrl: baseUrl,
    );
    testResult.value = response;
    testError.value = null;
  } catch (e) {
    testError.value = e.toString().replaceFirst('Exception: ', '');
    testResult.value = null;
  } finally {
    isTesting.value = false;
  }
}