1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Initial work on API v2.0

This commit is contained in:
Jeremy Stretch
2017-01-24 17:12:16 -05:00
parent fbfa3cf619
commit 062a5bfe8d
14 changed files with 216 additions and 386 deletions

View File

@@ -6,11 +6,11 @@ from .views import *
urlpatterns = [
# Tenant groups
url(r'^tenant-groups/$', TenantGroupListView.as_view(), name='tenantgroup_list'),
url(r'^tenant-groups/(?P<pk>\d+)/$', TenantGroupDetailView.as_view(), name='tenantgroup_detail'),
url(r'^tenant-groups/$', TenantGroupViewSet.as_view({'get': 'list'}), name='tenantgroup_list'),
url(r'^tenant-groups/(?P<pk>\d+)/$', TenantGroupViewSet.as_view({'get': 'retrieve'}), name='tenantgroup_detail'),
# Tenants
url(r'^tenants/$', TenantListView.as_view(), name='tenant_list'),
url(r'^tenants/(?P<pk>\d+)/$', TenantDetailView.as_view(), name='tenant_detail'),
url(r'^tenants/$', TenantViewSet.as_view({'get': 'list'}), name='tenant_list'),
url(r'^tenants/(?P<pk>\d+)/$', TenantViewSet.as_view({'get': 'retrieve'}), name='tenant_detail'),
]

View File

@@ -1,40 +1,32 @@
from rest_framework import generics
from rest_framework.viewsets import ModelViewSet
from tenancy.models import Tenant, TenantGroup
from tenancy.filters import TenantFilter
from extras.api.views import CustomFieldModelAPIView
from extras.api.views import CustomFieldModelViewSet
from . import serializers
class TenantGroupListView(generics.ListAPIView):
#
# Tenant Groups
#
class TenantGroupViewSet(ModelViewSet):
"""
List all tenant groups
List and retrieve tenant groups
"""
queryset = TenantGroup.objects.all()
serializer_class = serializers.TenantGroupSerializer
class TenantGroupDetailView(generics.RetrieveAPIView):
"""
Retrieve a single circuit type
"""
queryset = TenantGroup.objects.all()
serializer_class = serializers.TenantGroupSerializer
#
# Tenants
#
class TenantListView(CustomFieldModelAPIView, generics.ListAPIView):
class TenantViewSet(CustomFieldModelViewSet):
"""
List tenants (filterable)
List and retrieve tenants
"""
queryset = Tenant.objects.select_related('group').prefetch_related('custom_field_values__field')
queryset = Tenant.objects.select_related('group')
serializer_class = serializers.TenantSerializer
filter_class = TenantFilter
class TenantDetailView(CustomFieldModelAPIView, generics.RetrieveAPIView):
"""
Retrieve a single tenant
"""
queryset = Tenant.objects.select_related('group').prefetch_related('custom_field_values__field')
serializer_class = serializers.TenantSerializer