UNCCGameDay-Server/uncc_gameday/gameday/views.py

58 lines
1.5 KiB
Python
Raw Normal View History

from models import ParkingLot, ParkingRating
from serializers import *
2013-10-14 22:31:36 -04:00
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
2013-10-14 23:58:15 -04:00
from rest_framework.decorators import api_view
from django.core.urlresolvers import reverse
2013-10-18 18:40:05 -04:00
from django.shortcuts import get_object_or_404
2013-10-14 23:58:15 -04:00
@api_view(('GET',))
def api_root(request):
'Give some information about our API'
return Response({
'parking_lots': request.build_absolute_uri(reverse('parking-lots')),
'parking_rating': request.build_absolute_uri(reverse('parking-rating')),
})
2013-10-14 22:31:36 -04:00
class ParkingLotList(APIView):
"""
List all parking lots
"""
def get(self, request):
parking_lots = ParkingLot.objects.all()
serializer = ParkingLotSerializer(parking_lots, many=True)
return Response(serializer.data)
2013-10-18 18:10:28 -04:00
class SingleParkingLotList(APIView):
"""
List a single parking lot
"""
def get(self, request, lot):
2013-10-18 18:40:05 -04:00
print "Received lot: '" + lot + "'"
parking_lot = get_object_or_404(ParkingLot, location=lot)
return Response(ParkingLotSerializer(parking_lot).data)
2013-10-18 18:10:28 -04:00
class RateLot(APIView):
"""
2013-10-14 23:10:09 -04:00
Rate a parking lot
**GET**: Get the rating choice options
**POST**: Rate a parking lot
"""
def post(self, request):
2013-10-14 23:10:09 -04:00
'Rate a parking lot'
rating = ParkingRatingSerializer(data=request.DATA)
if rating.is_valid():
rating.save()
return Response(rating.data)
2013-10-14 23:10:09 -04:00
return Response(rating.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request):
'Get the rating choice options'
2013-10-18 18:10:28 -04:00
return Response(ParkingRating.RATING_CHOICES)