From 44e49495fe9ba761866907672b8aa1325ac59c5d Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 27 Sep 2024 20:46:58 +0200 Subject: [PATCH] Add API functions for coordinates and coordinate groups (#571) --- netbox_topology_views/api/urls.py | 5 +++++ netbox_topology_views/api/views.py | 27 ++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/netbox_topology_views/api/urls.py b/netbox_topology_views/api/urls.py index fa14722..a68eeea 100644 --- a/netbox_topology_views/api/urls.py +++ b/netbox_topology_views/api/urls.py @@ -7,5 +7,10 @@ router = NetBoxRouter() router.register("save-coords", views.SaveCoordsViewSet) router.register("images", views.SaveRoleImageViewSet) router.register("xml-export", views.ExportTopoToXML, "xml-export") +router.register("coordinate-groups", views.CoordinateGroupViewSet) +router.register("coordinate", views.CoordinateViewSet) +router.register("circuitcoordinate", views.CircuitCoordinateViewSet) +router.register("powerpanelcoordinate", views.PowerPanelCoordinateViewSet) +router.register("powerfeedcoordinate", views.PowerFeedCoordinateViewSet) urlpatterns = router.urls diff --git a/netbox_topology_views/api/views.py b/netbox_topology_views/api/views.py index a362774..20022d2 100644 --- a/netbox_topology_views/api/views.py +++ b/netbox_topology_views/api/views.py @@ -1,7 +1,7 @@ from typing import Dict import sys -from netbox.api.viewsets import BaseViewSet +from netbox.api.viewsets import BaseViewSet, NetBoxModelViewSet from circuits.models import Circuit from dcim.models import Device, DeviceRole, PowerFeed, PowerPanel @@ -17,6 +17,11 @@ from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet from netbox_topology_views.api.serializers import ( RoleImageSerializer, TopologyDummySerializer, + CoordinateGroupSerializer, + CoordinateSerializer, + CircuitCoordinateSerializer, + PowerPanelCoordinateSerializer, + PowerFeedCoordinateSerializer, ) import netbox_topology_views.models from netbox_topology_views.models import RoleImage, IndividualOptions, CoordinateGroup, Coordinate, CircuitCoordinate, PowerPanelCoordinate, PowerFeedCoordinate @@ -251,3 +256,23 @@ class SaveRoleImageViewSet(BaseViewSet, ReadOnlyModelViewSet): ) return JsonResponse({"status": "Ok"}) + +class CoordinateGroupViewSet(NetBoxModelViewSet): + queryset = CoordinateGroup.objects.all() + serializer_class = CoordinateGroupSerializer + +class CoordinateViewSet(NetBoxModelViewSet): + queryset = Coordinate.objects.all() + serializer_class = CoordinateSerializer + +class CircuitCoordinateViewSet(NetBoxModelViewSet): + queryset = CircuitCoordinate.objects.all() + serializer_class = CircuitCoordinateSerializer + +class PowerPanelCoordinateViewSet(NetBoxModelViewSet): + queryset = PowerPanelCoordinate.objects.all() + serializer_class = PowerPanelCoordinateSerializer + +class PowerFeedCoordinateViewSet(NetBoxModelViewSet): + queryset = PowerFeedCoordinate.objects.all() + serializer_class = PowerFeedCoordinateSerializer