From 8544db8667f1bc7472612ef543ae187e3c340df9 Mon Sep 17 00:00:00 2001 From: Arjan Singh Date: Fri, 29 Aug 2025 12:57:18 -0700 Subject: [PATCH] refactor: guard clause before image caching logic --- middleware/cache_middleware.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/middleware/cache_middleware.py b/middleware/cache_middleware.py index c31fdc851..374ef7934 100644 --- a/middleware/cache_middleware.py +++ b/middleware/cache_middleware.py @@ -32,15 +32,21 @@ async def cache_control( or request.path.endswith("index.json") ): response.headers.setdefault("Cache-Control", "no-cache") - elif request.path.lower().endswith(IMG_EXTENSIONS): - if response.status == 404: - response.headers.setdefault("Cache-Control", f"public, max-age={ONE_HOUR}") - elif response.status in (200, 201, 202, 203, 204, 205, 206, 301, 308): - # Success responses and permanent redirects - cache for 1 day - response.headers.setdefault("Cache-Control", f"public, max-age={ONE_DAY}") - elif response.status in (302, 303, 307): - # Temporary redirects - no cache - response.headers.setdefault("Cache-Control", "no-cache") - # Note: 304 Not Modified falls through - no cache headers set + return response + + # Early return for non-image files - no cache headers needed + if not request.path.lower().endswith(IMG_EXTENSIONS): + return response + + # Handle image files + if response.status == 404: + response.headers.setdefault("Cache-Control", f"public, max-age={ONE_HOUR}") + elif response.status in (200, 201, 202, 203, 204, 205, 206, 301, 308): + # Success responses and permanent redirects - cache for 1 day + response.headers.setdefault("Cache-Control", f"public, max-age={ONE_DAY}") + elif response.status in (302, 303, 307): + # Temporary redirects - no cache + response.headers.setdefault("Cache-Control", "no-cache") + # Note: 304 Not Modified falls through - no cache headers set return response