From ce61bd79b7bfea366d7ac2c0b748301ceba3925c Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Mon, 8 Apr 2013 20:37:12 -0400 Subject: [PATCH] added RoleRetrieveUpdateDestroy --- plstackapi/planetstack/urls.py | 3 ++- plstackapi/planetstack/views/roles.py | 26 +++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) 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) -- 2.47.0