bloonsworld/app/bloonsa_api/views.py
2025-02-07 07:11:18 +01:00

55 lines
1.7 KiB
Python

from django.shortcuts import render, HttpResponse
from django.http import HttpResponseBadRequest
from django.views.generic import TemplateView
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from bloonsa_game.models import Level
from users.util import tag_player
class CSRFexemptTemplateView(TemplateView):
@method_decorator(csrf_exempt)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
class LoadLevel(CSRFexemptTemplateView):
def post(self, request, *args, **kwargs):
tag_player(request=request)
levelNum = request.POST.get("level_num")
if levelNum is None or not levelNum.isdigit():
return HttpResponseBadRequest()
level = Level.objects.filter(id=int(levelNum)).first()
if level is None:
return HttpResponseBadRequest()
flashVars = level.getFlashVars(seperator="&")
return HttpResponse(flashVars)
class RandomLevel(CSRFexemptTemplateView):
def post(self, request, *args, **kwargs):
tag_player(request=request)
level = Level.objects.order_by("?").first()
flashVars = level.getFlashVars(seperator="&")
return HttpResponse(flashVars)
def get(self, request, *args, **kwargs):
tag_player(request=request)
level = Level.objects.order_by("?").first()
flashVars = level.getFlashVars(seperator="&")
return HttpResponse(flashVars)
class CompleteLevel(CSRFexemptTemplateView):
def post(self, request, *args, **kwargs):
tag_player(request=request)
pass
class RateLevel(CSRFexemptTemplateView):
def post(self, request, *args, **kwargs):
tag_player(request=request)
pass