mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-26 09:16:10 -06:00
Apply OpenAPI decorators for get() and post()
This commit is contained in:
parent
76236945c8
commit
0bc1849d05
@ -250,8 +250,6 @@ class AvailableObjectsView(ObjectValidationMixin, APIView):
|
|||||||
"""
|
"""
|
||||||
return requested_objects
|
return requested_objects
|
||||||
|
|
||||||
# TODO: Fix OpenAPI schema
|
|
||||||
# @extend_schema(methods=["get"], responses={200: serializer(many=True)})
|
|
||||||
def get(self, request, pk):
|
def get(self, request, pk):
|
||||||
parent = self.get_parent(request, pk)
|
parent = self.get_parent(request, pk)
|
||||||
limit = get_results_limit(request)
|
limit = get_results_limit(request)
|
||||||
@ -264,8 +262,6 @@ class AvailableObjectsView(ObjectValidationMixin, APIView):
|
|||||||
|
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
# TODO: Fix OpenAPI schema
|
|
||||||
# @extend_schema(methods=["post"], responses={201: serializer(many=True)})
|
|
||||||
def post(self, request, pk):
|
def post(self, request, pk):
|
||||||
self.queryset = self.queryset.restrict(request.user, 'add')
|
self.queryset = self.queryset.restrict(request.user, 'add')
|
||||||
parent = self.get_parent(request, pk)
|
parent = self.get_parent(request, pk)
|
||||||
@ -289,11 +285,8 @@ class AvailableObjectsView(ObjectValidationMixin, APIView):
|
|||||||
|
|
||||||
# Determine if the requested number of objects is available
|
# Determine if the requested number of objects is available
|
||||||
if not self.check_sufficient_available(serializer.validated_data, available_objects):
|
if not self.check_sufficient_available(serializer.validated_data, available_objects):
|
||||||
# TODO: Raise exception instead?
|
|
||||||
return Response(
|
return Response(
|
||||||
{
|
{"detail": f"Insufficient resources are available to satisfy the request"},
|
||||||
"detail": f"Insufficient resources are available to satisfy the request"
|
|
||||||
},
|
|
||||||
status=status.HTTP_409_CONFLICT
|
status=status.HTTP_409_CONFLICT
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -349,6 +342,14 @@ class AvailableASNsView(AvailableObjectsView):
|
|||||||
|
|
||||||
return requested_objects
|
return requested_objects
|
||||||
|
|
||||||
|
@extend_schema(methods=["get"], responses={200: serializers.AvailableASNSerializer(many=True)})
|
||||||
|
def get(self, request, pk):
|
||||||
|
return super().get(request, pk)
|
||||||
|
|
||||||
|
@extend_schema(methods=["post"], responses={201: serializers.AvailableASNSerializer(many=True)})
|
||||||
|
def post(self, request, pk):
|
||||||
|
return super().post(request, pk)
|
||||||
|
|
||||||
|
|
||||||
class AvailablePrefixesView(AvailableObjectsView):
|
class AvailablePrefixesView(AvailableObjectsView):
|
||||||
queryset = Prefix.objects.all()
|
queryset = Prefix.objects.all()
|
||||||
@ -386,11 +387,18 @@ class AvailablePrefixesView(AvailableObjectsView):
|
|||||||
'vrf': parent.vrf.pk if parent.vrf else None,
|
'vrf': parent.vrf.pk if parent.vrf else None,
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
# TODO: Handle this
|
|
||||||
raise ValidationError("Insufficient space is available to accommodate the requested prefix size(s)")
|
raise ValidationError("Insufficient space is available to accommodate the requested prefix size(s)")
|
||||||
|
|
||||||
return requested_objects
|
return requested_objects
|
||||||
|
|
||||||
|
@extend_schema(methods=["get"], responses={200: serializers.AvailablePrefixSerializer(many=True)})
|
||||||
|
def get(self, request, pk):
|
||||||
|
return super().get(request, pk)
|
||||||
|
|
||||||
|
@extend_schema(methods=["post"], responses={201: serializers.PrefixSerializer(many=True)})
|
||||||
|
def post(self, request, pk):
|
||||||
|
return super().post(request, pk)
|
||||||
|
|
||||||
|
|
||||||
class AvailableIPAddressesView(AvailableObjectsView):
|
class AvailableIPAddressesView(AvailableObjectsView):
|
||||||
queryset = IPAddress.objects.all()
|
queryset = IPAddress.objects.all()
|
||||||
@ -423,6 +431,14 @@ class AvailableIPAddressesView(AvailableObjectsView):
|
|||||||
|
|
||||||
return requested_objects
|
return requested_objects
|
||||||
|
|
||||||
|
@extend_schema(methods=["get"], responses={200: serializers.AvailableIPSerializer(many=True)})
|
||||||
|
def get(self, request, pk):
|
||||||
|
return super().get(request, pk)
|
||||||
|
|
||||||
|
@extend_schema(methods=["post"], responses={201: serializers.IPAddressSerializer(many=True)})
|
||||||
|
def post(self, request, pk):
|
||||||
|
return super().post(request, pk)
|
||||||
|
|
||||||
|
|
||||||
class PrefixAvailableIPAddressesView(AvailableIPAddressesView):
|
class PrefixAvailableIPAddressesView(AvailableIPAddressesView):
|
||||||
|
|
||||||
@ -461,3 +477,11 @@ class AvailableVLANsView(AvailableObjectsView):
|
|||||||
})
|
})
|
||||||
|
|
||||||
return requested_objects
|
return requested_objects
|
||||||
|
|
||||||
|
@extend_schema(methods=["get"], responses={200: serializers.AvailableVLANSerializer(many=True)})
|
||||||
|
def get(self, request, pk):
|
||||||
|
return super().get(request, pk)
|
||||||
|
|
||||||
|
@extend_schema(methods=["post"], responses={201: serializers.VLANSerializer(many=True)})
|
||||||
|
def post(self, request, pk):
|
||||||
|
return super().post(request, pk)
|
||||||
|
Loading…
Reference in New Issue
Block a user