@@ -16,46 +16,38 @@ def __init__(self, api_key: str, team_handle: str):
1616 self .team_handle = team_handle
1717
1818 def validate_api_key (self ) -> bool :
19+ url = f"{ API_URL } /user/"
1920 try :
20- self ._validate_user_and_team ( )
21- return True
21+ response = self ._make_request ( "GET" , url )
22+ response . raise_for_status ()
2223 except requests .HTTPError as e :
23- if e .response .status_code == 401 :
24- raise_invalid_credentials_error (
25- fields = [["creds" , "api_key" ]], details = "Invalid API key"
26- )
27- elif e .response .status_code == 403 :
28- raise_invalid_credentials_error (
29- fields = [["creds" , "api_key" ]],
30- details = "Authenticated user does note have required permissions" ,
31- )
32- raise e
33- except ValueError as e :
34- error_message = str (e )
35- if "No Hot Aisle teams found" in error_message :
36- raise_invalid_credentials_error (
37- fields = [["creds" , "api_key" ]],
38- details = "Valid API key but no teams found for this user" ,
39- )
40- elif "not found" in error_message :
41- raise_invalid_credentials_error (
42- fields = [["team_handle" ]], details = f"Team handle '{ self .team_handle } ' not found"
43- )
44- raise e
45-
46- def _validate_user_and_team (self ) -> None :
47- url = f"{ API_URL } /user/"
48- response = self ._make_request ("GET" , url )
49- response .raise_for_status ()
50- user_data = response .json ()
24+ if e .response is not None :
25+ if e .response .status_code == 401 :
26+ raise_invalid_credentials_error (
27+ fields = [["creds" , "api_key" ]], details = "Invalid API key"
28+ )
29+ if e .response .status_code == 403 :
30+ raise_invalid_credentials_error (
31+ fields = [["creds" , "api_key" ]],
32+ details = "Authenticated user does not have required permissions" ,
33+ )
34+ raise
5135
52- teams = user_data .get ("teams" , [])
36+ user_data = response .json ()
37+ teams = user_data ["teams" ]
5338 if not teams :
54- raise ValueError ("No Hot Aisle teams found for this user" )
39+ raise_invalid_credentials_error (
40+ fields = [["creds" , "api_key" ]],
41+ details = "Valid API key but no teams found for this user" ,
42+ )
5543
5644 available_teams = [team ["handle" ] for team in teams ]
5745 if self .team_handle not in available_teams :
58- raise ValueError (f"Hot Aisle team '{ self .team_handle } ' not found." )
46+ raise_invalid_credentials_error (
47+ fields = [["team_handle" ]],
48+ details = f"Team handle '{ self .team_handle } ' not found" ,
49+ )
50+ return True
5951
6052 def upload_ssh_key (self , public_key : str ) -> bool :
6153 url = f"{ API_URL } /user/ssh_keys/"
0 commit comments