Skip to content

Commit 5ed6e8a

Browse files
committed
fix: correct API key saving logic
1 parent 0598150 commit 5ed6e8a

File tree

2 files changed

+25
-13
lines changed

2 files changed

+25
-13
lines changed

codeflash/api/cfapi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def get_user_id(api_key: Optional[str] = None) -> Optional[str]:
9191
9292
:return: The userid or None if the request fails.
9393
"""
94-
if not ensure_codeflash_api_key():
94+
if not api_key and not ensure_codeflash_api_key():
9595
return None
9696

9797
response = make_cfapi_request(

codeflash/lsp/beta.py

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,15 @@ def init_project(server: CodeflashLanguageServer, params: ValidateProjectParams)
263263
def _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

281293
def process_args(server: CodeflashLanguageServer) -> Namespace:
@@ -291,8 +303,8 @@ def process_args(server: CodeflashLanguageServer) -> Namespace:
291303
def 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

Comments
 (0)