44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
from rest_framework import serializers
|
|
from rest_framework.decorators import action
|
|
from rest_framework.response import Response
|
|
from rest_framework.routers import APIRootView
|
|
|
|
from extras.api.views import CustomFieldModelViewSet
|
|
from netbox_slm.api.serializers import SoftwareProductSerializer, SoftwareProductVersionSerializer
|
|
from netbox_slm.filters import SoftwareProductFilter, SoftwareProductVersionFilter
|
|
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
|
|
|
|
|
|
class NetboxSLMRootView(APIRootView):
|
|
"""
|
|
NetboxSLM API root view
|
|
"""
|
|
|
|
def get_view_name(self):
|
|
return "NetboxSLM"
|
|
|
|
|
|
class SoftwareProductViewSet(CustomFieldModelViewSet):
|
|
queryset = SoftwareProduct.objects.all()
|
|
serializer_class = SoftwareProductSerializer
|
|
filterset_class = SoftwareProductFilter
|
|
|
|
# @action(detail=True, methods=["get"])
|
|
# def records(self, request, pk=None):
|
|
# records = Record.objects.filter(zone=pk)
|
|
# serializer = RecordSerializer(records, many=True, context={"request": request})
|
|
# return Response(serializer.data)
|
|
|
|
|
|
class SoftwareProductVersionViewSet(CustomFieldModelViewSet):
|
|
queryset = SoftwareProductVersion.objects.all()
|
|
serializer_class = SoftwareProductVersionSerializer
|
|
filterset_class = SoftwareProductVersionFilter
|
|
|
|
# @action(detail=True, methods=["get"])
|
|
# def records(self, request, pk=None):
|
|
# records = Record.objects.filter(zone=pk)
|
|
# serializer = RecordSerializer(records, many=True, context={"request": request})
|
|
# return Response(serializer.data)
|
|
|
|
# for reference: https://github.com/auroraresearchlab/netbox-dns/blob/main/netbox_dns/api/views.py |