@ -121,6 +121,31 @@ pub async fn test_key(
let decrypted_key =
let decrypted_key =
encryption ::decrypt ( & master_key , & stored_key . encrypted_key , & stored_key . nonce ) ? ;
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
// Create a provider instance
let llm_provider = factory ::create_provider ( & provider , decrypted_key ) ? ;
let llm_provider = factory ::create_provider ( & provider , decrypted_key ) ? ;