def application_detail(request, application_number, format=None): """ Retrieve or Modify an existing Application. Path: /api/jobs/applications/APPLICATION_NUMBER POST PARAMETERS data = { "jobID": Job ID number, "application_posterID": Application Poster ID number, "applicantID": Applicant ID number, "providerprofileID": Provider Profile ID Number, "price": A price, "status": "Submited/Choosen" } """ try: application = Application.objects.get(id=application_number) except: error_response = "Application does not exist." return Response(data=error_response, status=status.HTTP_400_BAD_REQUEST) if request.method == 'GET': serializer = ApplicationSerializer(application) return Response(serializer.data) elif request.method == 'PUT': serializer = ApplicationSerializer(application, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(status=status.HTTP_400_BAD_REQUEST)
def application_accepted(request, application_number, format=None): """ Trigger to create a Contract. Path: /api/jobs/applications/APPLICATION_NUMBER/accepted """ if request.method == 'POST': # contract.fields = ('id','applicationID', 'jobID', 'status', 'job_posterID', 'job_poster_rating', 'job_applicantID', 'job_applicant_rating') # application.fields = ('id','jobID', 'application_posterID', 'applicantID', 'providerprofileID', 'price', 'status') try: application = Application.objects.get(id=application_number) serializer = ApplicationSerializer(application) except: error_response = "Application does not exist." return Response(data=error_response, status=status.HTTP_400_BAD_REQUEST) data = { "applicationID": serializer.data["id"], "jobID": serializer.data["jobID"], "status": "Incomplete", "job_posterID": serializer.data["application_posterID"], "job_applicantID": serializer.data["applicantID"], "job_poster_rating": 1, "job_applicant_rating": 1 } try: serializer = ContractSerializer(data=data) except: error_response = "Data does not match ContractSerializer." return Response(data=error_response, status=status.HTTP_400_BAD_REQUEST) if serializer.is_valid(): serializer.save() update_job(serializer.data["jobID"]) return Response(serializer.data, status=status.HTTP_201_CREATED) error_response = "Request Method is not POST" return Response(data=error_response, status=status.HTTP_400_BAD_REQUEST)
def application_list(request, format=None): """ List all Application, or create a Application. Path /api/jobs/applications POST PARAMETERS data = { "jobID": Job ID number, "application_posterID": Application Poster ID number, "applicantID": Applicant ID number, "providerprofileID": Provider Profile ID Number, "price": A price, "status": "Submited/Choosen/Declined" } """ if request.method == 'GET': applications = Application.objects.all() serializer = ApplicationSerializer(applications, many=True) return Response(serializer.data) elif request.method == 'POST': # print ("Data: " + str(request.data)) try: application_posterID = request.data["application_posterID"] user = UserProfile.objects.get(id=application_posterID) print ("Applicant Poster ID:", application_posterID) except: print ("Poster ID is not in the system.") content = "Poster ID is not in the system." return Response(data=content, status=status.HTTP_400_BAD_REQUEST) try: applicantID = request.data["applicantID"] user = UserProfile.objects.get(id=applicantID) print ("Applicant Poster ID:", application_posterID) except: print ("Appicant ID is not in the system.") content = "Applicant ID is not in the system." return Response(data=content, status=status.HTTP_400_BAD_REQUEST) try: providerprofileID = request.data["providerprofileID"] user = ProviderProfile.objects.get(id=providerprofileID) except: print ("Provider Profile ID is not in the system.") content = "Provider Profile ID is not in the system." return Response(data=content, status=status.HTTP_400_BAD_REQUEST) try: application = Application.objects.get(applicantID=applicantID, jobID=request.data["jobID"]) except: print("Application does not exist.") try: serializer = ApplicationSerializer(data=request.data) except: print ("Data is wrong compared to Application Serializer.") content = "Data is wrong compared to Application Serializer." return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) try: print ("Request Data") print (request.data) serializer = ApplicationSerializer(application, data=request.data) except: error_response = "ApplicationSerializer does not match." return Response(data=error_response, status=status.HTTP_400_BAD_REQUEST) if serializer.is_valid(): print ("Serializer data:", serializer.data) print ("Serializer Valid.") serializer.save() return Response(request.data, status=status.HTTP_201_CREATED) else: error_response = "Serializer is not valid." return Response(status=status.HTTP_400_BAD_REQUEST) return Response(status=status.HTTP_400_BAD_REQUEST)