@@ -263,6 +263,15 @@ def init_project(server: CodeflashLanguageServer, params: ValidateProjectParams)
263263def _initialize_optimizer_if_api_key_is_valid (
264264 server : CodeflashLanguageServer , api_key : Optional [str ] = None
265265) -> dict [str , str ]:
266+ key_check_result = _check_api_key_validity (api_key )
267+ if key_check_result .get ("status" ) != "success" :
268+ return key_check_result
269+
270+ _initialize_optimizer (server )
271+ return key_check_result
272+
273+
274+ def _check_api_key_validity (api_key : Optional [str ]) -> dict [str , str ]:
266275 user_id = get_user_id (api_key = api_key )
267276 if user_id is None :
268277 return {"status" : "error" , "message" : "api key not found or invalid" }
@@ -271,11 +280,14 @@ def _initialize_optimizer_if_api_key_is_valid(
271280 error_msg = user_id [7 :]
272281 return {"status" : "error" , "message" : error_msg }
273282
283+ return {"status" : "success" , "user_id" : user_id }
284+
285+
286+ def _initialize_optimizer (server : CodeflashLanguageServer ) -> None :
274287 from codeflash .optimization .optimizer import Optimizer
275288
276289 new_args = process_args (server )
277290 server .optimizer = Optimizer (new_args )
278- return {"status" : "success" , "user_id" : user_id }
279291
280292
281293def process_args (server : CodeflashLanguageServer ) -> Namespace :
@@ -291,8 +303,8 @@ def process_args(server: CodeflashLanguageServer) -> Namespace:
291303def check_api_key (server : CodeflashLanguageServer , _params : any ) -> dict [str , str ]:
292304 try :
293305 return _initialize_optimizer_if_api_key_is_valid (server )
294- except Exception :
295- return {"status" : "error" , "message" : "something went wrong while validating the api key" }
306+ except Exception as e :
307+ return {"status" : "error" , "message" : f "something went wrong while validating the api key{ e !s } " }
296308
297309
298310@server .feature ("provideApiKey" )
@@ -302,21 +314,21 @@ def provide_api_key(server: CodeflashLanguageServer, params: ProvideApiKeyParams
302314 if not api_key .startswith ("cf-" ):
303315 return {"status" : "error" , "message" : "Api key is not valid" }
304316
305- # clear cache to ensure the new api key is used
317+ # # clear cache to ensure the new api key is used
306318 get_codeflash_api_key .cache_clear ()
307319 get_user_id .cache_clear ()
308-
309- init_result = _initialize_optimizer_if_api_key_is_valid (server , api_key )
310- if init_result ["status" ] == "error" :
311- return {"status" : "error" , "message" : "Api key is not valid" }
312-
313- user_id = init_result ["user_id" ]
320+ key_check_result = _check_api_key_validity (api_key )
321+ if key_check_result .get ("status" ) != "success" :
322+ return key_check_result
323+ user_id = key_check_result ["user_id" ]
314324 result = save_api_key_to_rc (api_key )
325+ # initialize optimizer with the new api key
326+ _initialize_optimizer (server )
315327 if not is_successful (result ):
316328 return {"status" : "error" , "message" : result .failure ()}
317329 return {"status" : "success" , "message" : "Api key saved successfully" , "user_id" : user_id } # noqa: TRY300
318- except Exception :
319- return {"status" : "error" , "message" : "something went wrong while saving the api key" }
330+ except Exception as e :
331+ return {"status" : "error" , "message" : f "something went wrong while saving the api key{ e !s } " }
320332
321333
322334@server .feature ("initializeFunctionOptimization" )
0 commit comments