remove swagger test function
[vfc/nfvo/lcm.git] / lcm / samples / views.py
index cec3209..5889aac 100644 (file)
@@ -18,8 +18,12 @@ import traceback
 from rest_framework import status
 from rest_framework.response import Response
 from rest_framework.views import APIView
+from drf_yasg.utils import swagger_auto_schema
+
 from lcm.pub.database import models
 
+from lcm.samples.serializers import RecordCountSerializer
+
 logger = logging.getLogger(__name__)
 
 
@@ -27,6 +31,12 @@ class SampleList(APIView):
     """
     List all samples.
     """
+    @swagger_auto_schema(
+        request_body=None,
+        responses={
+            status.HTTP_200_OK: "Status is active"
+        }
+    )
     def get(self, request, format=None):
         count = len(models.NSDModel.objects.filter())
         logger.debug("get, count of NSDModel is %s", count)
@@ -34,6 +44,13 @@ class SampleList(APIView):
 
 
 class TablesList(APIView):
+    @swagger_auto_schema(
+        request_body=None,
+        responses={
+            status.HTTP_204_NO_CONTENT: 'successful',
+            status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+        }
+    )
     def delete(self, request, modelName):
         logger.debug("Start delete model %s", modelName)
         try:
@@ -47,13 +64,24 @@ class TablesList(APIView):
             return Response(data={"error": "failed"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
         return Response(data={}, status=status.HTTP_204_NO_CONTENT)
 
+    @swagger_auto_schema(
+        request_body=None,
+        responses={
+            status.HTTP_200_OK: RecordCountSerializer(),
+            status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+        }
+    )
     def get(self, request, modelName):
         logger.debug("Get model %s", modelName)
         count = 0
         try:
             model_obj = eval("models.%s.objects" % modelName)
             count = len(model_obj.filter())
-        except:
+            resp_serializer = RecordCountSerializer(data={"count": count})
+            if not resp_serializer.is_valid():
+                raise Exception(resp_serializer.errors)
+            return Response(data=resp_serializer.data, status=status.HTTP_200_OK)
+        except Exception as e:
+            logger.error(e.message)
             logger.error(traceback.format_exc())
-            return Response(data={"error": "failed"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
-        return Response(data={"count": count}, status=status.HTTP_200_OK)
+            return Response(data={"error": e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)