From db88c733b4ea910cd37d97453d49b7b24f767dda Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Sat, 26 Nov 2022 11:54:14 -0700 Subject: The glorious return of the in-view runner --- stator/views.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 stator/views.py (limited to 'stator/views.py') diff --git a/stator/views.py b/stator/views.py new file mode 100644 index 0000000..df51e3d --- /dev/null +++ b/stator/views.py @@ -0,0 +1,24 @@ +from django.conf import settings +from django.http import HttpResponse, HttpResponseForbidden +from django.views import View + +from stator.models import StatorModel +from stator.runner import StatorRunner + + +class RequestRunner(View): + """ + Runs a Stator runner within a HTTP request. + For when you're on something serverless. + """ + + async def get(self, request): + # Check the token, if supplied + if not settings.STATOR_TOKEN: + return HttpResponseForbidden("No token set") + if request.GET.get("token") != settings.STATOR_TOKEN: + return HttpResponseForbidden("Invalid token") + # Run on all models + runner = StatorRunner(StatorModel.subclasses, run_for=2) + handled = await runner.run() + return HttpResponse(f"Handled {handled}") -- cgit v1.2.3