MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / get_from_cache

Method get_from_cache

api/environments/models.py:268–302  ·  view source on GitHub ↗
(cls, api_key: str | None)

Source from the content-addressed store, hash-verified

266
267 @classmethod
268 def get_from_cache(cls, api_key: str | None) -> "Environment | None":
269 if not api_key:
270 logger.warning("Requested environment with null api_key.")
271 return None
272
273 if cls.is_bad_key(api_key):
274 return None
275
276 environment: "Environment" = environment_cache.get(api_key)
277 if not environment:
278 select_related_args = (
279 "project",
280 "project__organisation",
281 *IDENTITY_INTEGRATIONS_RELATION_NAMES,
282 )
283 base_qs = cls.objects.select_related(*select_related_args).defer(
284 "description"
285 )
286 qs_for_embedded_api_key = base_qs.filter(api_key=api_key)
287 qs_for_fk_api_key = base_qs.filter(api_keys__key=api_key)
288
289 try:
290 environment = qs_for_embedded_api_key.union(qs_for_fk_api_key).get()
291 except cls.DoesNotExist:
292 cls.set_bad_key(api_key)
293 logger.info("Environment with api_key %s does not exist" % api_key)
294 return None
295 else:
296 environment_cache.set(
297 api_key,
298 environment,
299 timeout=settings.ENVIRONMENT_CACHE_SECONDS,
300 )
301
302 return environment
303
304 @classmethod
305 def write_environment_documents(

Calls 3

is_bad_keyMethod · 0.80
set_bad_keyMethod · 0.80
getMethod · 0.45