X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fviews%2Froles.py;fp=planetstack%2Fcore%2Fviews%2Froles.py;h=13c991756fa5be1c02902d202b699bebf2c33c3c;hb=78ce7694b6fb4a1decf3859f563ef1e3bbdaaa0b;hp=37bb14933636b572132b76a0dce8b31b4dae6031;hpb=b47da43097e2fd4c230330388c1548ad14c18a37;p=plstackapi.git diff --git a/planetstack/core/views/roles.py b/planetstack/core/views/roles.py index 37bb149..13c9917 100644 --- a/planetstack/core/views/roles.py +++ b/planetstack/core/views/roles.py @@ -1,58 +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.roles import add_role, delete_role, get_roles from core.serializers import RoleSerializer -from util.request import parse_request - - -class RoleListCreate(APIView): - """ - List all roles or create a new role. - """ +from rest_framework import generics +from core.models import Role - 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 'role' in data: - role = add_role(data['auth'], data['role']['role_type']) - serializer = RoleSerializer(data=role) - return Response(serializer.data, status=status.HTTP_201_CREATED) - else: - roles = get_roles(data['auth']) - serializer = RoleSerializer(roles, many=True) - return Response(serializer.data) - - -class RoleRetrieveUpdateDestroy(APIView): - """ - Retrieve, update or delete a role - """ +class RoleList(generics.ListCreateAPIView): + queryset = Role.objects.all() + serializer_class = RoleSerializer - def post(self, request, pk, format=None): - """Retrieve a role""" - data = parse_request(request.DATA) - if 'auth' not in data: - return Response(status=status.HTTP_400_BAD_REQUEST) - roles = get_roles(data['auth'], pk) - if not roles: - return Response(status=status.HTTP_404_NOT_FOUND) - serializer = RoleSerializer(roles[0]) - return Response(serializer.data) +class RoleDetail(generics.RetrieveUpdateDestroyAPIView): + queryset = Role.objects.all() + serializer_class = RoleSerializer - def put(self, request, pk, format=None): - """role update not implemnted""" - return Response(status=status.HTTP_404_NOT_FOUND) - 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_role(data['auth'], pk) - return Response(status=status.HTTP_204_NO_CONTENT) - - -