Disable cache on ics calendar on API response headers

This commit is contained in:
Antoine Bartuccio 2025-06-05 18:20:25 +02:00
parent d80f2e73e8
commit bfea0989fb
Signed by: klmp200
GPG Key ID: E7245548C53F904B

View File

@ -1,6 +1,7 @@
from typing import Literal from typing import Literal
from django.http import HttpResponse from django.http import HttpResponse
from django.utils.cache import add_never_cache_headers
from ninja import Query from ninja import Query
from ninja_extra import ControllerBase, api_controller, paginate, route from ninja_extra import ControllerBase, api_controller, paginate, route
from ninja_extra.pagination import PageNumberPaginationExtra from ninja_extra.pagination import PageNumberPaginationExtra
@ -18,7 +19,9 @@ from core.views.files import send_raw_file
class CalendarController(ControllerBase): class CalendarController(ControllerBase):
@route.get("/internal.ics", url_name="calendar_internal") @route.get("/internal.ics", url_name="calendar_internal")
def calendar_internal(self): def calendar_internal(self):
return send_raw_file(IcsCalendar.get_internal()) response = send_raw_file(IcsCalendar.get_internal())
add_never_cache_headers(response)
return response
@route.get( @route.get(
"/unpublished.ics", "/unpublished.ics",
@ -26,10 +29,12 @@ class CalendarController(ControllerBase):
url_name="calendar_unpublished", url_name="calendar_unpublished",
) )
def calendar_unpublished(self): def calendar_unpublished(self):
return HttpResponse( response = HttpResponse(
IcsCalendar.get_unpublished(self.context.request.user), IcsCalendar.get_unpublished(self.context.request.user),
content_type="text/calendar", content_type="text/calendar",
) )
add_never_cache_headers(response)
return response
@api_controller("/news") @api_controller("/news")