X-Git-Url: https://gerrit.onap.org/r/gitweb?p=modeling%2Fetsicatalog.git;a=blobdiff_plain;f=genericparser%2Fpackages%2Fviews%2Fnsdm_subscription_views.py;h=cd80e6d27bd2e94f932453aba437a65c6930d16f;hp=865ece4dcfb430a302bdfb5b6293948997d7408f;hb=52a969dcc2a935930a559b1780d7c95e1cc45d73;hpb=63c392e9cca3c6654e8383f49e5136fa86d1c72a diff --git a/genericparser/packages/views/nsdm_subscription_views.py b/genericparser/packages/views/nsdm_subscription_views.py index 865ece4..cd80e6d 100644 --- a/genericparser/packages/views/nsdm_subscription_views.py +++ b/genericparser/packages/views/nsdm_subscription_views.py @@ -13,27 +13,22 @@ # limitations under the License. import logging -import traceback from drf_yasg.utils import swagger_auto_schema, no_body from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response -from genericparser.packages.serializers.nsdm_filter_data \ - import NsdmNotificationsFilter -from genericparser.packages.serializers.nsdm_subscription import \ - NsdmSubscriptionsSerializer, \ - NsdmSubscriptionIdSerializer, \ - NsdmSubscriptionSerializer, \ - NsdmSubscriptionRequestSerializer -from genericparser.packages.serializers.response \ - import ProblemDetailsSerializer -from genericparser.pub.exceptions import \ - ResourceNotFoundException, \ - NsdmBadRequestException, NsdmDuplicateSubscriptionException -from genericparser.packages.biz.nsdm_subscription import NsdmSubscription +from genericparser.packages.serializers.nsdm_filter_data import NsdmNotificationsFilter +from genericparser.packages.serializers.nsdm_subscription import NsdmSubscriptionsSerializer +from genericparser.packages.serializers.nsdm_subscription import NsdmSubscriptionIdSerializer +from genericparser.packages.serializers.nsdm_subscription import NsdmSubscriptionSerializer +from genericparser.packages.serializers.nsdm_subscription import NsdmSubscriptionRequestSerializer +from genericparser.packages.serializers.response import ProblemDetailsSerializer +from genericparser.pub.exceptions import NsdmBadRequestException +from .common import view_safe_call_with_log +from genericparser.packages.biz.nsdm_subscription import NsdmSubscription logger = logging.getLogger(__name__) @@ -46,17 +41,6 @@ def validate_data(data, serializer): return serialized_data -def get_problem_details_serializer(title, status_code, error_message): - problem_details = { - "title": title, - "status": status_code, - "detail": error_message - } - problem_details_serializer = ProblemDetailsSerializer(data=problem_details) - problem_details_serializer.is_valid() - return problem_details_serializer - - @swagger_auto_schema( method='POST', operation_description="Create Subscription for NSD Management", @@ -80,84 +64,33 @@ def get_problem_details_serializer(title, status_code, error_message): } ) @api_view(http_method_names=['POST', 'GET']) +@view_safe_call_with_log(logger=logger) def nsd_subscription_rc(request): if request.method == 'POST': logger.debug("SubscribeNotification--post::> %s" % request.data) - try: - title = 'Creating Subscription Failed!' - nsdm_subscription_request = \ - validate_data(request.data, - NsdmSubscriptionRequestSerializer) - subscription = NsdmSubscription().create( - nsdm_subscription_request.data) - subscription_resp = validate_data(subscription, - NsdmSubscriptionSerializer) - return Response(data=subscription_resp.data, - status=status.HTTP_201_CREATED) - except NsdmDuplicateSubscriptionException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_303_SEE_OTHER, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_303_SEE_OTHER) - except NsdmBadRequestException as e: - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_400_BAD_REQUEST, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_400_BAD_REQUEST) - except Exception as e: - logger.error(e.message) - logger.error(traceback.format_exc()) - problem_details_serializer = \ - get_problem_details_serializer( - title, - status.HTTP_500_INTERNAL_SERVER_ERROR, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) + nsdm_subscription_request = \ + validate_data(request.data, + NsdmSubscriptionRequestSerializer) + subscription = NsdmSubscription().create( + nsdm_subscription_request.data) + subscription_resp = validate_data(subscription, + NsdmSubscriptionSerializer) + return Response(data=subscription_resp.data, + status=status.HTTP_201_CREATED) + if request.method == 'GET': logger.debug("Subscription Notification GET %s" % request.query_params) - try: - title = 'Query Subscription Failed!' - request_query_params = {} - if request.query_params: - request_query_params = \ - validate_data(request.query_params, - NsdmNotificationsFilter).data - subscription_data = \ - NsdmSubscription().query_multi_subscriptions( - request_query_params) - subscriptions = validate_data(subscription_data, - NsdmSubscriptionsSerializer) - return Response(data=subscriptions.data, status=status.HTTP_200_OK) - except NsdmBadRequestException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_400_BAD_REQUEST, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_400_BAD_REQUEST) - except ResourceNotFoundException as e: - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_404_NOT_FOUND, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_404_NOT_FOUND) - except Exception as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer( - title, - status.HTTP_500_INTERNAL_SERVER_ERROR, - traceback.format_exc()) - return Response(data=problem_details_serializer.data, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) + request_query_params = {} + if request.query_params: + request_query_params = \ + validate_data(request.query_params, + NsdmNotificationsFilter).data + subscription_data = \ + NsdmSubscription().query_multi_subscriptions( + request_query_params) + subscriptions = validate_data(subscription_data, + NsdmSubscriptionsSerializer) + return Response(data=subscriptions.data, status=status.HTTP_200_OK) @swagger_auto_schema( @@ -183,77 +116,14 @@ def nsd_subscription_rc(request): } ) @api_view(http_method_names=['GET', 'DELETE']) +@view_safe_call_with_log(logger=logger) def nsd_subscription_rd(request, **kwargs): subscription_id = kwargs.get("subscriptionId") + validate_data({'subscription_id': subscription_id}, NsdmSubscriptionIdSerializer) if request.method == 'GET': - try: - title = 'Query Subscription Failed!' - validate_data({'subscription_id': subscription_id}, - NsdmSubscriptionIdSerializer) - subscription_data = \ - NsdmSubscription().query_single_subscription(subscription_id) - subscription = validate_data(subscription_data, - NsdmSubscriptionSerializer) - return Response(data=subscription.data, status=status.HTTP_200_OK) - except NsdmBadRequestException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_400_BAD_REQUEST, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_400_BAD_REQUEST) - except ResourceNotFoundException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_404_NOT_FOUND, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_404_NOT_FOUND) - except Exception as e: - logger.error(e.message) - logger.error(traceback.format_exc()) - problem_details_serializer = \ - get_problem_details_serializer( - title, - status.HTTP_500_INTERNAL_SERVER_ERROR, - "Query of subscriptioni(%s) Failed" - % subscription_id) - return Response(data=problem_details_serializer.data, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) + subscription_data = NsdmSubscription().query_single_subscription(subscription_id) + subscription = validate_data(subscription_data, NsdmSubscriptionSerializer) + return Response(data=subscription.data, status=status.HTTP_200_OK) elif request.method == 'DELETE': - try: - title = 'Delete Subscription Failed!' - validate_data({'subscription_id': subscription_id}, - NsdmSubscriptionIdSerializer) - subscription_data = NsdmSubscription().\ - delete_single_subscription(subscription_id) - return Response(status=status.HTTP_204_NO_CONTENT) - except NsdmBadRequestException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_400_BAD_REQUEST, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_400_BAD_REQUEST) - except ResourceNotFoundException as e: - logger.error(e.message) - problem_details_serializer = \ - get_problem_details_serializer(title, - status.HTTP_404_NOT_FOUND, - e.message) - return Response(data=problem_details_serializer.data, - status=status.HTTP_404_NOT_FOUND) - except Exception as e: - logger.error(e.message) - logger.error(traceback.format_exc()) - problem_details_serializer = \ - get_problem_details_serializer( - title, - status.HTTP_500_INTERNAL_SERVER_ERROR, - "Delete of subscription(%s) Failed" - % subscription_id) - return Response(data=problem_details_serializer.data, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) + subscription_data = NsdmSubscription().delete_single_subscription(subscription_id) + return Response(status=status.HTTP_204_NO_CONTENT)