diff --git a/backend/src/handlers/api_keys.rs b/backend/src/handlers/api_keys.rs index 028d8d0..66ada85 100644 --- a/backend/src/handlers/api_keys.rs +++ b/backend/src/handlers/api_keys.rs @@ -121,6 +121,31 @@ pub async fn test_key( let decrypted_key = encryption::decrypt(&master_key, &stored_key.encrypted_key, &stored_key.nonce)?; + // Handle Brave Search key testing separately (not an LLM provider) + if provider == "brave_search" { + let result = crate::services::brave_search::test_api_key( + &state.http_client, + &decrypted_key, + ).await; + + return match result { + Ok(()) => Ok(Json(TestResult { + success: true, + message: "Brave Search API key is valid and working".into(), + })), + Err(e) => { + let message = match &e { + AppError::BadRequest(msg) => msg.clone(), + _ => "Brave Search API key test failed.".into(), + }; + Ok(Json(TestResult { + success: false, + message, + })) + } + }; + } + // Create a provider instance let llm_provider = factory::create_provider(&provider, decrypted_key)?;