Re-implemented REST API and urls.
[plstackapi.git] / planetstack / core / views / sites.py
index 6449b67..b4af8ac 100644 (file)
@@ -1,66 +1,70 @@
-from django.http import Http404
-from rest_framework.views import APIView
-from rest_framework.response import Response
-from rest_framework import status
-
-from core.api.sites import add_site, delete_site, get_sites
 from core.serializers import SiteSerializer
-from util.request import parse_request
-
+from rest_framework import generics
+from core.models import Site
 
-class SiteListCreate(APIView):
-    """ 
-    List all sites or create a new site.
-    """
-
-    def post(self, request, format = None):
-        data = parse_request(request.DATA)  
-        if 'auth' not in data:
-            return Response(status=status.HTTP_400_BAD_REQUEST)        
-        elif 'site' in data:
-            site = add_site(data['auth'], data['site'])
-            serializer = SiteSerializer(site)
-            return Response(serializer.data, status=status.HTTP_201_CREATED)
-        else:
-            sites = get_sites(data['auth'])
-            serializer = SiteSerializer(sites, many=True)
-            return Response(serializer.data)
-        
-            
-class SiteRetrieveUpdateDestroy(APIView):
-    """
-    Retrieve, update or delete a site 
-    """
+class SiteList(generics.ListCreateAPIView):
+    queryset = Site.objects.all()
+    serializer_class = SiteSerializer
 
-    def post(self, request, pk, format=None):
-        """Retrieve a site"""
-        data = parse_request(request.DATA)
-        if 'auth' not in data:
-            return Response(status=status.HTTP_400_BAD_REQUEST)
-        sites = get_sites(data['auth'], {'id': pk})
-        if not sites:
-            return Response(status=status.HTTP_404_NOT_FOUND)
-        serializer = SiteSerializer(sites[0])
-        return Response(serializer.data)                  
+class SiteDetail(generics.RetrieveUpdateDestroyAPIView):
+    queryset = Site.objects.all()
+    serializer_class = SiteSerializer
 
-    def put(self, request, pk, format=None):
-        """update a site""" 
-        data = parse_request(request.DATA)
-        if 'auth' not in data:
-            return Response(status=status.HTTP_400_BAD_REQUEST)
-        elif 'site' not in data:
-            return Response(status=status.HTTP_400_BAD_REQUEST)
 
-        site = update_site(pk, data['site'])
-        serializer = SiteSerializer(site)
-        return Response(serializer.data) 
 
-    def delete(self, request, pk, format=None):
-        data = parse_request(request.DATA) 
-        if 'auth' not in data:
-            return Response(status=status.HTTP_400_BAD_REQUEST)
-        delete_site(data['auth'], {'id': pk})
-        return Response(status=status.HTTP_204_NO_CONTENT) 
-            
-            
+#class SiteListCreate(APIView):
+######    """ 
+##    List all sites or create a new site.
+#    """
+#
+#    def post(self, request, format = None):
+#        data = parse_request(request.DATA)  
+#        if 'auth' not in data:
+#            return Response(status=status.HTTP_400_BAD_REQUEST)        
+#        elif 'site' in data:
+#            site = add_site(data['auth'], data['site'])
+#            serializer = SiteSerializer(site)
+#            return Response(serializer.data, status=status.HTTP_201_CREATED)
+#        else:
+#            sites = get_sites(data['auth'])
+#            serializer = SiteSerializer(sites, many=True)
+#            return Response(serializer.data)
         
+            
+#class SiteRetrieveUpdateDestroy(APIView):
+#    """
+#    Retrieve, update or delete a site 
+#    """
+#
+#    def post(self, request, pk, format=None):
+#        """Retrieve a site"""
+#        data = parse_request(request.DATA)
+#        if 'auth' not in data:
+#            return Response(status=status.HTTP_400_BAD_REQUEST)
+#        sites = get_sites(data['auth'], {'id': pk})
+#        if not sites:
+#            return Response(status=status.HTTP_404_NOT_FOUND)
+#        serializer = SiteSerializer(sites[0])
+#        return Response(serializer.data)                  
+#
+#    def put(self, request, pk, format=None):
+#        """update a site""" 
+#        data = parse_request(request.DATA)
+#        if 'auth' not in data:
+#            return Response(status=status.HTTP_400_BAD_REQUEST)
+#        elif 'site' not in data:
+#            return Response(status=status.HTTP_400_BAD_REQUEST)
+#
+#        site = update_site(pk, data['site'])
+#        serializer = SiteSerializer(site)
+#        return Response(serializer.data) 
+#
+#    def delete(self, request, pk, format=None):
+#        data = parse_request(request.DATA) 
+#        if 'auth' not in data:
+#            return Response(status=status.HTTP_400_BAD_REQUEST)
+#        delete_site(data['auth'], {'id': pk})
+#        return Response(status=status.HTTP_204_NO_CONTENT) 
+#            
+#            
+##