takahe/stator/views.py

25 lines
796 B
Python
Raw Normal View History

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.
"""
2023-07-16 23:18:00 -07:00
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)
2023-07-16 23:18:00 -07:00
handled = runner.run()
return HttpResponse(f"Handled {handled}")