diff options
author | Andrew Godwin | 2022-11-26 11:54:14 -0700 |
---|---|---|
committer | Andrew Godwin | 2022-11-26 11:54:14 -0700 |
commit | db88c733b4ea910cd37d97453d49b7b24f767dda (patch) | |
tree | ef28379e7726ee644c6c512c0dcafa0b28baa8e4 /stator/views.py | |
parent | f20296bc1bdf18d4ebc711ab5c2bb957d7fd6e93 (diff) | |
download | takahe-db88c733b4ea910cd37d97453d49b7b24f767dda.tar.gz takahe-db88c733b4ea910cd37d97453d49b7b24f767dda.tar.bz2 takahe-db88c733b4ea910cd37d97453d49b7b24f767dda.zip |
The glorious return of the in-view runner
Diffstat (limited to 'stator/views.py')
-rw-r--r-- | stator/views.py | 24 |
1 files changed, 24 insertions, 0 deletions
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}") |