Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)