Website/api/views.py

180 lines
5.2 KiB
Python

from django.shortcuts import render, HttpResponseRedirect, Http404
from rest_framework.parsers import JSONParser
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from .models import *
from .serializers import *
# Create your views here.
@csrf_exempt
def ProvincesView(request):
if request.method == 'GET':
items = Province.objects.all()
serializer = ProvinceSerializer(items, many = True)
return JsonResponse(serializer.data, safe = False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = ProvinceSerializer(data = data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status = 201)
return JsonResponse(serializer.errors,status = 400)
@csrf_exempt
def AssaultTroopsView(request):
if request.method == 'GET':
items = AssaultTroop.objects.all()
serializer = AssaultTroopSerializer(items, many = True)
return JsonResponse(serializer.data, safe = False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = AssaultTroopSerializer(data = data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status = 201)
return JsonResponse(serializer.errors,status = 400)
@csrf_exempt
def ProvinceView(request, nm):
try:
item = Province.objects.get(id = nm)
except Province.DoesNotExist:
raise Http404('Not found')
if request.method == 'GET':
serializer = ProvinceSerializer(item)
return JsonResponse(serializer.data)
if request.method == 'PUT':
data = JSONParser().parse(request)
serializer = ProvinceSerializer(item,data =data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status =400)
if request.method == "DELETE":
item.delete()
return HttpResponse(status =204)
@csrf_exempt
def AssaultTroopView(request, nm):
try:
item = AssaultTroop.objects.get(id = nm)
except AssaultTroop.DoesNotExist:
raise Http404('Not found')
if request.method == 'GET':
serializer = AssaultTroopSerializer(item)
return JsonResponse(serializer.data)
if request.method == 'PUT':
data = JSONParser().parse(request)
serializer = AssaultTroopSerializer(item,data =data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status =400)
if request.method == "DELETE":
item.delete()
return HttpResponse(status =204)
@csrf_exempt
def PlayersView(request):
if request.method == 'GET':
items = Player.objects.all()
serializer = PlayerSerializer(items, many = True)
return JsonResponse(serializer.data, safe = False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = PlayerSerializer(data = data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status = 201)
return JsonResponse(serializer.errors,status = 400)
@csrf_exempt
def ServersView(request):
if request.method == 'GET':
items = Server.objects.all()
serializer = ServerSerializer(items, many = True)
return JsonResponse(serializer.data, safe = False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = ServerSerializer(data = data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status = 201)
return JsonResponse(serializer.errors,status = 400)
@csrf_exempt
def PlayerView(request, nm):
try:
item = Player.objects.get(id = nm)
except Player.DoesNotExist:
raise Http404('Not found')
if request.method == 'GET':
serializer = PlayerSerializer(item)
return JsonResponse(serializer.data)
if request.method == 'PUT':
data = JSONParser().parse(request)
serializer = PlayerSerializer(item,data =data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status =400)
if request.method == "DELETE":
item.delete()
return HttpResponse(status =204)
@csrf_exempt
def ServerView(request, nm):
try:
item = Server.objects.get(id = nm)
except Server.DoesNotExist:
raise Http404('Not found')
if request.method == 'GET':
serializer = ServerSerializer(item)
return JsonResponse(serializer.data)
if request.method == 'PUT':
data = JSONParser().parse(request)
serializer = ServerSerializer(item,data =data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data)
return JsonResponse(serializer.errors, status =400)
if request.method == "DELETE":
item.delete()
return HttpResponse(status =204)