feat(api): add cache + busting for admin
This commit is contained in:
@@ -3,6 +3,7 @@ from ninja.files import UploadedFile
|
||||
from ninja.pagination import paginate
|
||||
from django.db import transaction
|
||||
from django.core.files.base import ContentFile
|
||||
from django.core.cache import cache
|
||||
from django.utils import timezone
|
||||
from django.shortcuts import get_object_or_404
|
||||
from typing import List
|
||||
@@ -165,6 +166,9 @@ def create_submission(
|
||||
"responses__files", "responses__puzzle"
|
||||
).get(id=submission.id)
|
||||
|
||||
# Invalidate results cache on successful submission
|
||||
cache.delete("api:results:results")
|
||||
|
||||
return submission
|
||||
|
||||
except Exception as e:
|
||||
@@ -201,6 +205,9 @@ def validate_response(request, response_id: int, data: ValidationIn):
|
||||
|
||||
response.save()
|
||||
|
||||
# Invalidate results cache when a response is validated
|
||||
cache.delete("api:results:results")
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@@ -256,6 +263,9 @@ def validate_submission(request, submission_id: str):
|
||||
"responses__files", "responses__puzzle"
|
||||
).get(id=submission.id)
|
||||
|
||||
# Invalidate results cache when submission is validated
|
||||
cache.delete("api:results:results")
|
||||
|
||||
return submission
|
||||
|
||||
|
||||
@@ -268,6 +278,10 @@ def delete_submission(request, submission_id: str):
|
||||
|
||||
submission = get_object_or_404(Submission, id=submission_id)
|
||||
submission.delete()
|
||||
|
||||
# Invalidate results cache when submission is deleted
|
||||
cache.delete("api:results:results")
|
||||
|
||||
return {"detail": "Submission deleted successfully"}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user