Add PeeringDBDetailView

This commit is contained in:
Quantum 2024-04-12 22:27:20 -04:00
parent 971aa1d479
commit c5f413b109
2 changed files with 23 additions and 2 deletions

View file

@ -1,8 +1,9 @@
from django.db.models import IntegerField, QuerySet from django.db.models import IntegerField, QuerySet
from django.http import JsonResponse from django.http import JsonResponse
from django.views.generic.detail import BaseDetailView
from django.views.generic.list import BaseListView from django.views.generic.list import BaseListView
from peeringdb_api.serializer import serialize_many from peeringdb_api.serializer import serialize, serialize_many
def format_for_field(field, value): def format_for_field(field, value):
@ -30,3 +31,9 @@ class PeeringDBListView(BaseListView):
queryset = queryset.filter(**{k: value}) queryset = queryset.filter(**{k: value})
return JsonResponse({'data': serialize_many(queryset)}) return JsonResponse({'data': serialize_many(queryset)})
class PeeringDBDetailView(BaseDetailView):
def get(self, request, *args, **kwargs):
obj = self.get_object()
return JsonResponse({'data': [serialize(obj)]})

View file

@ -1,7 +1,7 @@
from django.urls import path from django.urls import path
from django_peeringdb import models from django_peeringdb import models
from peeringdb_api.views import PeeringDBListView from peeringdb_api.views import PeeringDBDetailView, PeeringDBListView
urlpatterns = [ urlpatterns = [
path('api/org', PeeringDBListView.as_view(model=models.Organization)), path('api/org', PeeringDBListView.as_view(model=models.Organization)),
@ -17,4 +17,18 @@ urlpatterns = [
path('api/netfac', PeeringDBListView.as_view(model=models.NetworkFacility)), path('api/netfac', PeeringDBListView.as_view(model=models.NetworkFacility)),
path('api/netixlan', PeeringDBListView.as_view(model=models.NetworkIXLan)), path('api/netixlan', PeeringDBListView.as_view(model=models.NetworkIXLan)),
path('api/poc', PeeringDBListView.as_view(model=models.NetworkContact)), path('api/poc', PeeringDBListView.as_view(model=models.NetworkContact)),
path('api/org/<int:pk>', PeeringDBDetailView.as_view(model=models.Organization)),
path('api/fac/<int:pk>', PeeringDBDetailView.as_view(model=models.Facility)),
path('api/net/<int:pk>', PeeringDBDetailView.as_view(model=models.Network)),
path('api/ix/<int:pk>', PeeringDBDetailView.as_view(model=models.InternetExchange)),
path('api/campus/<int:pk>', PeeringDBDetailView.as_view(model=models.Campus)),
path('api/carrier/<int:pk>', PeeringDBDetailView.as_view(model=models.Carrier)),
path('api/carrierfac/<int:pk>', PeeringDBDetailView.as_view(model=models.CarrierFacility)),
path('api/ixfac/<int:pk>', PeeringDBDetailView.as_view(model=models.InternetExchangeFacility)),
path('api/ixlan/<int:pk>', PeeringDBDetailView.as_view(model=models.IXLan)),
path('api/ixpfx/<int:pk>', PeeringDBDetailView.as_view(model=models.IXLanPrefix)),
path('api/netfac/<int:pk>', PeeringDBDetailView.as_view(model=models.NetworkFacility)),
path('api/netixlan/<int:pk>', PeeringDBDetailView.as_view(model=models.NetworkIXLan)),
path('api/poc/<int:pk>', PeeringDBDetailView.as_view(model=models.NetworkContact)),
] ]