示例#1
0
def send_credit_decision_inquiry(request):
    """
    Send credit decision inquiry to credit decision service
    """
    AuditlogMiddleware().process_request(request)

    customer_id = request.data.get("customer_id")
    business_id = request.data.get("business_id")
    identity_number = request.data.get("identity_number")

    if request.method == "POST" and (customer_id or business_id
                                     or identity_number):
        contact = None
        if customer_id:
            contact = Contact.objects.get(pk=customer_id)
            if contact.business_id:
                business_id = contact.business_id
            elif contact.national_identification_number:
                identity_number = contact.national_identification_number
            else:
                return Response(
                    {
                        "message":
                        _("Cannot find business id or national identification number in customer data."
                          )
                    },
                    status=status.HTTP_400_BAD_REQUEST,
                )

        json_data = None
        json_error = None
        if business_id:
            business_id = business_id.replace("-", "")

            json_data, json_error = _get_company_decision(
                business_id, request.user, contact)

        if identity_number:
            json_data, json_error = _get_consumer_decision(
                identity_number, request.user)

        if json_error:
            return _error_response(json_error)

        if identity_number:
            serializer_data = map_consumer_response(json_data, request)
            serializer = CreditDecisionConsumerSerializer(serializer_data,
                                                          many=True)
            return Response(serializer.data)

        if customer_id or business_id:
            credit_decision_queryset = CreditDecision.get_credit_decision_queryset_by_customer(
                customer_id=customer_id, business_id=business_id)
            credit_decision_serializer = CreditDecisionSerializer(
                credit_decision_queryset, many=True)
            return Response(credit_decision_serializer.data)

    return Response(None, status=status.HTTP_400_BAD_REQUEST)
示例#2
0
 def setUp(self):
     self.get_response_mock = mock.Mock()
     self.response_mock = mock.Mock()
     self.middleware = AuditlogMiddleware(
         get_response=self.get_response_mock)
     self.factory = RequestFactory()
     self.user = User.objects.create_user(username="******",
                                          email="*****@*****.**",
                                          password="******")
示例#3
0
 def setUp(self):
     self.middleware = AuditlogMiddleware()
     self.factory = RequestFactory()
     self.user = User.objects.create_user(username='******',
                                          email='*****@*****.**',
                                          password='******')
示例#4
0
 def initial(self, request, *args, **kwargs):
     # We need to process logged in user again because Django Rest
     # Framework handles authentication after the
     # AuditLogMiddleware.
     AuditlogMiddleware().process_request(request)
     return super().initial(request, *args, **kwargs)