diff options
author | 2018-01-29 15:58:31 +0800 | |
---|---|---|
committer | 2018-01-29 16:09:17 +0800 | |
commit | 850e7f924dc675b284719214860a5bc3d6a5e850 (patch) | |
tree | 94d6d4480868f3b13258a3d786e25489f77394e1 | |
parent | 7df417823828ce1047cb7781fac7a61155cedb75 (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.py | 19 |
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) |