Website/api/views.py

75 lines
2.7 KiB
Python

from rest_framework import generics, permissions
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from .models import *
from .filters import *
from .serializers import *
from .permissions import *
from users.models import *
from users.serializers import *
@method_decorator(csrf_exempt, name='dispatch')
class ProvincesView(generics.ListCreateAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = Province.objects.all()
serializer_class = ProvinceSerializer
@method_decorator(csrf_exempt, name='dispatch')
class ProvinceView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = Province.objects.all()
serializer_class = ProvinceSerializer
@method_decorator(csrf_exempt, name='dispatch')
class AssaultTroopsView(generics.ListCreateAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = AssaultTroop.objects.all()
serializer_class = AssaultTroopSerializer
@method_decorator(csrf_exempt, name='dispatch')
class AssaultTroopView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = AssaultTroop.objects.all()
serializer_class = AssaultTroopSerializer
@method_decorator(csrf_exempt, name='dispatch')
class PlayersView(generics.ListCreateAPIView):
permission_classes = (IsStaff,) # Only Staff can see player info, i.e. authorized servers
queryset = Player.objects.all()
serializer_class = PlayerSerializer
@method_decorator(csrf_exempt, name='dispatch')
class PlayerView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsStaff)
queryset = Player.objects.all()
serializer_class = PlayerSerializer
@method_decorator(csrf_exempt, name='dispatch')
class ServersView(generics.ListCreateAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = Server.objects.all()
serializer_class = ServerSerializer
@method_decorator(csrf_exempt, name='dispatch')
class ServerView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsSuperUserOrReadOnly,)
queryset = Server.objects.all()
serializer_class = ServerSerializer
@method_decorator(csrf_exempt, name='dispatch')
class UserDatumView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (IsSuperUser,)
queryset = UserData.objects.all()
serializer_class = UserDataSerializer
# filter_backends = [UserDataFilterBackend]
@method_decorator(csrf_exempt, name='dispatch')
class UserDataView(generics.ListCreateAPIView):
permission_classes = (IsSuperUserOrAuthReadOnly,)
queryset = UserData.objects.all()
serializer_class = UserDataSerializer
filter_backends = [UserDataFilterBackend]