X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fviews%2Fslivers.py;h=bb310da14a57a653ef35781ba29e246916e742a2;hb=13c7f114712b9b49abc1c46357dc309afdbe7fb1;hp=3741cce511881c44a32dac2969fa3cf45b9f0f2e;hpb=732913407cc255ab864e39522585e1b98e654af1;p=plstackapi.git diff --git a/planetstack/core/views/slivers.py b/planetstack/core/views/slivers.py index 3741cce..bb310da 100644 --- a/planetstack/core/views/slivers.py +++ b/planetstack/core/views/slivers.py @@ -1,66 +1,13 @@ -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.slivers import add_sliver, delete_sliver, get_slivers, update_sliver from core.serializers import SliverSerializer -from util.request import parse_request - - -class SliverListCreate(APIView): - """ - List all slivers or create a new sliver. - """ - - 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 'sliver' in data: - sliver = add_sliver(data['auth'], data['sliver']) - serializer = SliverSerializer(sliver) - return Response(serializer.data, status=status.HTTP_201_CREATED) - else: - slivers = get_slivers(data['auth']) - serializer = SliverSerializer(slivers, many=True) - return Response(serializer.data) - - -class SliverRetrieveUpdateDestroy(APIView): - """ - Retrieve, update or delete a sliver - """ +from rest_framework import generics +from core.models import Sliver - def post(self, request, pk, format=None): - """Retrieve a sliver""" - data = parse_request(request.DATA) - if 'auth' not in data: - return Response(status=status.HTTP_400_BAD_REQUEST) - slivers = get_slivers(data['auth'], pk) - if not slivers: - return Response(status=status.HTTP_404_NOT_FOUND) - serializer = SliverSerializer(slivers[0]) - return Response(serializer.data) +class SliverList(generics.ListCreateAPIView): + queryset = Sliver.objects.all() + serializer_class = SliverSerializer - def put(self, request, pk, format=None): - """update a sliver""" - data = parse_request(request.DATA) - if 'auth' not in data: - return Response(status=status.HTTP_400_BAD_REQUEST) - elif 'sliver' not in data: - return Response(status=status.HTTP_400_BAD_REQUEST) +class SliverDetail(generics.RetrieveUpdateDestroyAPIView): + queryset = Sliver.objects.all() + serializer_class = SliverSerializer - sliver = update_sliver(pk, data['sliver']) - serializer = SliverSerializer(sliver) - 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_sliver(data['auth'], pk) - return Response(status=status.HTTP_204_NO_CONTENT) - - -