Add etsicatalog api
[modeling/etsicatalog.git] / catalog / packages / views / ns_descriptor_views.py
index 3b8c1f9..44e06e4 100644 (file)
@@ -21,6 +21,7 @@ from rest_framework.decorators import api_view
 from rest_framework.response import Response
 
 from catalog.packages.biz.ns_descriptor import NsDescriptor
+from catalog.packages.const import TAG_NSD_API
 from catalog.packages.serializers.create_nsd_info_request import CreateNsdInfoRequestSerializer
 from catalog.packages.serializers.nsd_info import NsdInfoSerializer
 from catalog.packages.serializers.nsd_infos import NsdInfosSerializer
@@ -34,6 +35,7 @@ logger = logging.getLogger(__name__)
 @swagger_auto_schema(
     method='GET',
     operation_description="Query a NSD",
+    tags=[TAG_NSD_API],
     request_body=no_body,
     responses={
         status.HTTP_200_OK: NsdInfoSerializer(),
@@ -44,6 +46,7 @@ logger = logging.getLogger(__name__)
 @swagger_auto_schema(
     method='DELETE',
     operation_description="Delete a NSD",
+    tags=[TAG_NSD_API],
     request_body=no_body,
     responses={
         status.HTTP_204_NO_CONTENT: "No content",
@@ -66,6 +69,7 @@ def ns_info_rd(request, **kwargs):
 @swagger_auto_schema(
     method='POST',
     operation_description="Create a NSD",
+    tags=[TAG_NSD_API],
     request_body=CreateNsdInfoRequestSerializer(),
     responses={
         status.HTTP_201_CREATED: NsdInfoSerializer(),
@@ -75,6 +79,7 @@ def ns_info_rd(request, **kwargs):
 @swagger_auto_schema(
     method='GET',
     operation_description="Query multiple NSDs",
+    tags=[TAG_NSD_API],
     request_body=no_body,
     responses={
         status.HTTP_200_OK: NsdInfosSerializer(),
@@ -100,6 +105,7 @@ def ns_descriptors_rc(request):
 @swagger_auto_schema(
     method='PUT',
     operation_description="Upload NSD content",
+    tags=[TAG_NSD_API],
     request_body=no_body,
     responses={
         status.HTTP_204_NO_CONTENT: 'PNFD file',
@@ -109,6 +115,7 @@ def ns_descriptors_rc(request):
 @swagger_auto_schema(
     method='GET',
     operation_description="Download NSD content",
+    tags=[TAG_NSD_API],
     request_body=no_body,
     responses={
         status.HTTP_204_NO_CONTENT: "No content",
@@ -137,3 +144,21 @@ def nsd_content_ru(request, **kwargs):
         file_range = request.META.get('HTTP_RANGE')
         file_iterator = NsDescriptor().download(nsd_info_id, file_range)
         return StreamingHttpResponse(file_iterator, status=status.HTTP_200_OK)
+
+
+@swagger_auto_schema(
+    method='PUT',
+    operation_description="Update a NSD",
+    request_body=no_body,
+    responses={
+        status.HTTP_202_ACCEPTED: "Successfully",
+        status.HTTP_500_INTERNAL_SERVER_ERROR: "Internal error"
+    }
+)
+@api_view(http_method_names=['PUT'])
+@view_safe_call_with_log(logger=logger)
+def ns_descriptors_u(request, **kwargs):
+    if request.method == 'PUT':
+        nsd_info_id = kwargs.get("nsdInfoId")
+        NsDescriptor().update(request.data, nsd_info_id)
+        return Response(data=None, status=status.HTTP_202_ACCEPTED)