From 32395e17f60e7efbfb46b2e87f64ed595befa23b Mon Sep 17 00:00:00 2001 From: gowtham Date: Mon, 6 Jun 2022 11:07:41 +0530 Subject: [PATCH 1/2] Aditional Info Setup --- CDC_Backend/APIs/adminUrls.py | 2 +- CDC_Backend/APIs/adminViews.py | 18 ++++++++---------- CDC_Backend/APIs/constants.py | 1 + 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/CDC_Backend/APIs/adminUrls.py b/CDC_Backend/APIs/adminUrls.py index 90d9c71..e0d6cd8 100644 --- a/CDC_Backend/APIs/adminUrls.py +++ b/CDC_Backend/APIs/adminUrls.py @@ -8,7 +8,7 @@ urlpatterns = [ path('updateDeadline/', adminViews.updateDeadline, name="Update Deadline"), path('updateOfferAccepted/', adminViews.updateOfferAccepted, name="Update Offer Accepted"), path('updateEmailVerified', adminViews.updateEmailVerified, name="Update Email Verified"), - path('updateAdditionalInfo/', adminViews.updateAdditionalInfo, name="Update Additional Info"), + path('deleteAdditionalInfo/', adminViews.deleteAdditionalInfo, name="Delete 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 4acf47c..637d9e7 100644 --- a/CDC_Backend/APIs/adminViews.py +++ b/CDC_Backend/APIs/adminViews.py @@ -145,20 +145,18 @@ def updateEmailVerified(request, id, email, user_type): @api_view(['POST']) @isAuthorized([ADMIN]) -@precheck([OPENING_ID, ADDITIONAL_INFO]) -def updateAdditionalInfo(request, id, email, user_type): +@precheck([OPENING_ID, FIELD]) +def deleteAdditionalInfo(request, id, email, user_type): try: data = request.data opening = get_object_or_404(Placement, pk=data[OPENING_ID]) - if data[ADDITIONAL_INFO] == "": - opening.additional_info = [] - elif isinstance(data[ADDITIONAL_INFO], list): - opening.additional_info = data[ADDITIONAL_INFO] + if data[FIELD] in opening.additional_info: + opening.additional_info.remove(data[FIELD]) + opening.save() + return Response({'action': "Delete Additional Info", 'message': "Additional Info Deleted"}, + status=status.HTTP_200_OK) else: - raise ValueError("Additional Info must be a list") - opening.save() - return Response({'action': "Update Additional Info", 'message': "Additional Info Updated"}, - status=status.HTTP_200_OK) + raise ValueError("Additional Info Not Found") except Http404: return Response({'action': "Update Additional Info", 'message': 'Opening Not Found'}, status=status.HTTP_404_NOT_FOUND) diff --git a/CDC_Backend/APIs/constants.py b/CDC_Backend/APIs/constants.py index 5981cba..75a23b6 100644 --- a/CDC_Backend/APIs/constants.py +++ b/CDC_Backend/APIs/constants.py @@ -70,6 +70,7 @@ RESUME_FILE_NAME = 'resume_file_name' APPLICATION_ID = "application_id" OPENING_ID = "opening_id" ADDITIONAL_INFO = "additional_info" +FIELD = "field" STATUS_ACCEPTING_APPLICATIONS = "Accepting Applications" From 8b7d78a67f966ca4f08e233f76482daca5bc7156 Mon Sep 17 00:00:00 2001 From: gowtham Date: Mon, 6 Jun 2022 11:55:56 +0530 Subject: [PATCH 2/2] 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])