From: Tony Mack Date: Tue, 9 Apr 2013 00:37:12 +0000 (-0400) Subject: added RoleRetrieveUpdateDestroy X-Git-Tag: 1.0~218 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=ce61bd79b7bfea366d7ac2c0b748301ceba3925c;p=plstackapi.git added RoleRetrieveUpdateDestroy --- diff --git a/plstackapi/planetstack/urls.py b/plstackapi/planetstack/urls.py index 9eecc49..2f7745e 100644 --- a/plstackapi/planetstack/urls.py +++ b/plstackapi/planetstack/urls.py @@ -2,7 +2,7 @@ from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin -from plstackapi.planetstack.views.roles import RoleListCreate +from plstackapi.planetstack.views.roles import RoleListCreate, RoleRetrieveUpdateDestroy from plstackapi.planetstack.views.api_root import api_root from plstackapi.planetstack.models import Site from rest_framework import generics @@ -23,6 +23,7 @@ urlpatterns = patterns('', url(r'^plstackapi/$', api_root), url(r'^plstackapi/roles$', RoleListCreate.as_view(), name='role-list'), + url(r'^plstackapi/roles/(?P[0-9]+)/$', RoleRetrieveUpdateDestroy.as_view(), name='role-detail'), #url(r'^plstackapi/sites/$', views.SiteList.as_view(), name='site-list'), #url(r'^plstackapi/sites/(?P[0-9]+)/$', views.SiteDetail.as_view(), name='site-detail'), diff --git a/plstackapi/planetstack/views/roles.py b/plstackapi/planetstack/views/roles.py index 2374448..8a3f00c 100644 --- a/plstackapi/planetstack/views/roles.py +++ b/plstackapi/planetstack/views/roles.py @@ -27,7 +27,31 @@ class RoleListCreate(APIView): return Response(serializer.data) - +class RoleRetrieveUpdateDestroy(APIView): + """ + Retrieve, update or delete a role + """ + + def post(self, request, pk, format): + """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'], {'role_id': pk}) + if not roles: + return Response(status=status.HTTP_404_NOT_FOUND) + serializer = RoleSerializer(data=role) + return Response(serializer.data) + + 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): + if 'auth' not in data: + return Response(status=status.HTTP_400_BAD_REQUEST) + delete_role(data['auth'], {'role_id': pk}) + return Response(status=status.HTTP_204_NO_CONTENT)