@@ -77,7 +77,7 @@ async def refresh_environment_caches(self):
7777 def get_flags_response_data (
7878 self , environment_key : str , feature : str = None
7979 ) -> dict [str , Any ]:
80- environment_document = self .get_environment (client_side_key = environment_key )
80+ environment_document = self .get_environment (environment_key = environment_key )
8181 environment = EnvironmentModel .model_validate (environment_document )
8282 is_server_key = environment_key .startswith (SERVER_API_KEY_PREFIX )
8383
@@ -106,7 +106,7 @@ def get_flags_response_data(
106106 def get_identity_response_data (
107107 self , input_data : IdentityWithTraits , environment_key : str
108108 ) -> dict [str , Any ]:
109- environment_document = self .get_environment (client_side_key = environment_key )
109+ environment_document = self .get_environment (environment_key = environment_key )
110110 environment = EnvironmentModel .model_validate (environment_document )
111111 is_server_key = environment_key .startswith (SERVER_API_KEY_PREFIX )
112112
@@ -140,21 +140,17 @@ def get_identity_response_data(
140140 def get_environment (
141141 self ,
142142 * ,
143- client_side_key : Optional [str ] = None ,
144- server_side_key : Optional [str ] = None ,
143+ environment_key : Optional [str ] = None ,
145144 ) -> dict [str , Any ]:
146- if client_side_key :
147- if environment_document := self .cache .get_environment (client_side_key ):
148- return environment_document
149- raise FlagsmithUnknownKeyError (client_side_key )
150- if server_side_key :
151- for key_pair in self .settings .environment_key_pairs :
152- if key_pair .server_side_key == server_side_key :
153- if environment_document := self .cache .get_environment (
154- key_pair .client_side_key
155- ):
156- return environment_document
157- raise FlagsmithUnknownKeyError (server_side_key )
145+ if environment_key .startswith (SERVER_API_KEY_PREFIX ):
146+ client_side_key = self ._get_client_key_from_server_key (environment_key )
147+ else :
148+ client_side_key = environment_key
149+
150+ if environment_document := self .cache .get_environment (client_side_key ):
151+ return environment_document
152+
153+ raise FlagsmithUnknownKeyError (environment_key )
158154
159155 async def _fetch_document (self , key_pair : EnvironmentKeyPair ) -> dict [str , Any ]:
160156 headers = {
@@ -198,3 +194,9 @@ async def _clear_endpoint_caches(self):
198194 func .cache_clear ()
199195 except AttributeError :
200196 pass
197+
198+ def _get_client_key_from_server_key (self , server_key : str ) -> str :
199+ for key_pair in self .settings .environment_key_pairs :
200+ if key_pair .server_side_key == server_key :
201+ return key_pair .client_side_key
202+ raise FlagsmithUnknownKeyError (server_key )
0 commit comments