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.http import JsonResponse
from django.views.generic.detail import BaseDetailView
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):
@ -30,3 +31,9 @@ class PeeringDBListView(BaseListView):
queryset = queryset.filter(**{k: value})
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_peeringdb import models
from peeringdb_api.views import PeeringDBListView
from peeringdb_api.views import PeeringDBDetailView, PeeringDBListView
urlpatterns = [
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/netixlan', PeeringDBListView.as_view(model=models.NetworkIXLan)),
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)),
]