aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-29 15:58:31 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-29 16:09:17 +0800
commit850e7f924dc675b284719214860a5bc3d6a5e850 (patch)
tree94d6d4480868f3b13258a3d786e25489f77394e1
parent7df417823828ce1047cb7781fac7a61155cedb75 (diff)
Add get record count swagger generate logic
Change-Id: I4e947e3d401416e1d3335ee0f3d0e51028335dc2 Issue-ID: VFC-687 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/samples/views.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/lcm/samples/views.py b/lcm/samples/views.py
index 2d93de17..06d82d00 100644
--- a/lcm/samples/views.py
+++ b/lcm/samples/views.py
@@ -22,6 +22,8 @@ from drf_yasg.utils import swagger_auto_schema
from lcm.pub.database import models
+from lcm.samples.serializers import RecordCountSerializer
+
logger = logging.getLogger(__name__)
@@ -62,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)