From e05c2ae75a77f99dd95bc8263b8962970d045417 Mon Sep 17 00:00:00 2001 From: oabrivard Date: Wed, 25 Mar 2026 22:52:18 +0100 Subject: [PATCH] feat: handle brave_search in API key test endpoint Add a branch in test_key to route brave_search provider to crate::services::brave_search::test_api_key instead of the LLM factory. Co-Authored-By: Claude Sonnet 4.6 --- backend/src/handlers/api_keys.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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)?;