From 8b7d78a67f966ca4f08e233f76482daca5bc7156 Mon Sep 17 00:00:00 2001 From: gowtham Date: Mon, 6 Jun 2022 11:55:56 +0530 Subject: [PATCH] Aditional Info complete --- CDC_Backend/APIs/adminUrls.py | 1 + CDC_Backend/APIs/adminViews.py | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/CDC_Backend/APIs/adminUrls.py b/CDC_Backend/APIs/adminUrls.py index e0d6cd8..587c1bb 100644 --- a/CDC_Backend/APIs/adminUrls.py +++ b/CDC_Backend/APIs/adminUrls.py @@ -9,6 +9,7 @@ urlpatterns = [ path('updateOfferAccepted/', adminViews.updateOfferAccepted, name="Update Offer Accepted"), path('updateEmailVerified', adminViews.updateEmailVerified, name="Update Email Verified"), path('deleteAdditionalInfo/', adminViews.deleteAdditionalInfo, name="Delete Additional Info"), + path('addAdditionalInfo/', adminViews.addAdditionalInfo, name="Add Additional Info"), path('getApplications/', adminViews.getApplications, name="Get Applications"), path("submitApplication/", adminViews.submitApplication, name="Submit Application"), path('generateCSV/', adminViews.generateCSV, name="Generate CSV"), diff --git a/CDC_Backend/APIs/adminViews.py b/CDC_Backend/APIs/adminViews.py index 637d9e7..66a7f8f 100644 --- a/CDC_Backend/APIs/adminViews.py +++ b/CDC_Backend/APIs/adminViews.py @@ -158,17 +158,43 @@ def deleteAdditionalInfo(request, id, email, user_type): else: raise ValueError("Additional Info Not Found") except Http404: - return Response({'action': "Update Additional Info", 'message': 'Opening Not Found'}, + return Response({'action': "Delete Additional Info", 'message': 'Opening Not Found'}, status=status.HTTP_404_NOT_FOUND) except ValueError: - return Response({'action': "Update Additional Info", 'message': "Additional Info must be a list"}, + return Response({'action': "Delete Additional Info", 'message': "Additional Info not found"}, + status=status.HTTP_404_NOT_FOUND) + except Exception as e: + logger.warning("Delete Additional Info: " + str(e)) + return Response({'action': "Delete Additional Info", 'message': "Something went wrong"}, + status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +@isAuthorized([ADMIN]) +@precheck([OPENING_ID, FIELD]) +def addAdditionalInfo(request, id, email, user_type): + try: + data = request.data + opening = get_object_or_404(Placement, pk=data[OPENING_ID]) + if data[FIELD] not in opening.additional_info: + opening.additional_info.append(data[FIELD]) + opening.save() + return Response({'action': "Add Additional Info", 'message': "Additional Info Added"}, + status=status.HTTP_200_OK) + else: + raise ValueError("Additional Info Found") + except Http404: + return Response({'action': "Add Additional Info", 'message': 'Opening Not Found'}, + status=status.HTTP_404_NOT_FOUND) + except ValueError: + return Response({'action': "Add Additional Info", 'message': "Additional Info already found"}, status=status.HTTP_400_BAD_REQUEST) except Exception as e: - logger.warning("Update Additional Info: " + str(e)) - return Response({'action': "Update Additional Info", 'message': "Something went wrong"}, + logger.warning("Add Additional Info: " + str(e)) + return Response({'action': "Add Additional Info", 'message': "Something went wrong"}, status=status.HTTP_400_BAD_REQUEST) + @api_view(['GET']) @isAuthorized([ADMIN]) @precheck([OPENING_ID])