+\r
+ @swagger_auto_schema(\r
+ responses={\r
+ status.HTTP_200_OK: LccnSubscriptionsSerializer(),\r
+ status.HTTP_400_BAD_REQUEST: ProblemDetailsSerializer(),\r
+ status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer()\r
+ }\r
+ )\r
+ def get(self, request):\r
+ logger.debug("SubscribeNotification--get::> %s" % request.query_params)\r
+ try:\r
+ if request.query_params and not set(request.query_params).issubset(set(VALID_FILTERS)):\r
+ problem_details_serializer = get_problem_details_serializer(status.HTTP_400_BAD_REQUEST, "Not a valid filter")\r
+ return Response(data=problem_details_serializer.data, status=status.HTTP_400_BAD_REQUEST)\r
+ resp_data = QuerySubscription(request.query_params).query_multi_subscriptions()\r
+\r
+ subscriptions_serializer = LccnSubscriptionsSerializer(data=resp_data)\r
+ if not subscriptions_serializer.is_valid():\r
+ raise NFLCMException(subscriptions_serializer.errors)\r
+\r
+ logger.debug("SubscribeNotification--get::> Remove default fields if exclude_default" +\r
+ " is specified")\r
+ return Response(data=subscriptions_serializer.data, status=status.HTTP_200_OK)\r
+ except NFLCMException as e:\r
+ logger.error(e.message)\r
+ problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, traceback.format_exc())\r
+ return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r
+\r
+ except Exception as e:\r
+ logger.error(e.message)\r
+ logger.error(traceback.format_exc())\r
+ problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, traceback.format_exc())\r
+ return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)\r