summaryrefslogtreecommitdiffstats
path: root/stator/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'stator/views.py')
-rw-r--r--stator/views.py24
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}")