Пример #1
0
def create_lead_from_site(request):
    if request.method == "POST":
        # ip_addres = get_client_ip(request)
        # website_address = request.scheme + '://' + ip_addres
        api_key = request.POST.get("apikey")
        # api_setting = APISettings.objects.filter(
        #     website=website_address, apikey=api_key).first()
        api_setting = APISettings.objects.filter(apikey=api_key).first()
        if not api_setting:
            return JsonResponse(
                {
                    "error": True,
                    "message": "You don't have permission, please contact the admin!.",
                },
                status=status.HTTP_400_BAD_REQUEST,
            )

        if api_setting and request.POST.get("email") and request.POST.get("full_name"):
            # user = User.objects.filter(is_admin=True, is_active=True).first()
            user = api_setting.created_by
            lead = Lead.objects.create(
                title=request.POST.get("full_name"),
                status="assigned",
                source=api_setting.website,
                description=request.POST.get("message"),
                email=request.POST.get("email"),
                phone=request.POST.get("phone"),
                is_active=True,
                created_by=user,
            )
            lead.assigned_to.add(user)
            # Send Email to Assigned Users
            site_address = request.scheme + "://" + request.META["HTTP_HOST"]
            send_lead_assigned_emails.delay(lead.id, [user.id], site_address)
            # Create Contact
            contact = Contact.objects.create(
                first_name=request.POST.get("full_name"),
                email=request.POST.get("email"),
                phone=request.POST.get("phone"),
                description=request.POST.get("message"),
                created_by=user,
                is_active=True,
            )
            contact.assigned_to.add(user)

            lead.contacts.add(contact)

            return JsonResponse(
                {"error": False, "message": "Lead Created sucessfully."},
                status=status.HTTP_201_CREATED,
            )
        return JsonResponse(
            {"error": True, "message": "In-valid data."},
            status=status.HTTP_400_BAD_REQUEST,
        )
    return JsonResponse(
        {"error": True, "message": "In-valid request method."},
        status=status.HTTP_400_BAD_REQUEST,
    )
Пример #2
0
def create_lead_from_site(request):

    if request.POST.get("email") and request.POST.get("full_name"):
        user = User.objects.filter(is_admin=True, is_active=True).first()
        lead = Lead.objects.create(title=request.POST.get("full_name"),
                                   status="assigned",
                                   source="micropyramid.com",
                                   description=request.POST.get("message"),
                                   email=request.POST.get("email"),
                                   phone=request.POST.get("phone"),
                                   is_active=True,
                                   created_by=user)
        lead.assigned_to.add(user)
        # Send Email to Assigned Users
        site_address = request.scheme + '://' + request.META['HTTP_HOST']
        send_lead_assigned_emails.delay(lead.id, [user.id], site_address)
        # Create Contact
        contact = Contact.objects.create(
            first_name=request.POST.get("full_name"),
            email=request.POST.get("email"),
            phone=request.POST.get("phone"),
            description=request.POST.get("message"),
            created_by=user,
            is_active=True)
        contact.assigned_to.add(user)

        lead.contacts.add(contact)

        return JsonResponse(
            {
                'error': False,
                'message': "Lead Created sucessfully."
            },
            status=status.HTTP_201_CREATED)
    return JsonResponse({
        'error': True,
        'message': "In-valid data."
    },
                        status=status.HTTP_400_BAD_REQUEST)
Пример #3
0
    def post(self, request, *args, **kwargs):
        params = request.query_params if len(
            request.data) == 0 else request.data
        api_key = params.get("apikey")
        # api_setting = APISettings.objects.filter(
        #     website=website_address, apikey=api_key).first()
        api_setting = APISettings.objects.filter(apikey=api_key).first()
        if not api_setting:
            return Response(
                {
                    "error":
                    True,
                    "message":
                    "You don't have permission, please contact the admin!.",
                },
                status=status.HTTP_403_FORBIDDEN,
            )

        if api_setting and params.get("email") and params.get("title"):
            # user = User.objects.filter(is_admin=True, is_active=True).first()
            user = api_setting.created_by
            lead = Lead.objects.create(
                title=params.get("title"),
                first_name=params.get("first_name"),
                last_name=params.get("last_name"),
                status="assigned",
                source=api_setting.website,
                description=params.get("message"),
                email=params.get("email"),
                phone=params.get("phone"),
                is_active=True,
                created_by=user,
            )
            lead.assigned_to.add(user)
            # Send Email to Assigned Users
            site_address = request.scheme + "://" + request.META["HTTP_HOST"]
            send_lead_assigned_emails.delay(lead.id, [user.id], site_address)
            # Create Contact
            try:
                contact = Contact.objects.create(
                    first_name=params.get("title"),
                    email=params.get("email"),
                    phone=params.get("phone"),
                    description=params.get("message"),
                    created_by=user,
                    is_active=True,
                )
                contact.assigned_to.add(user)

                lead.contacts.add(contact)
            except Exception:
                pass

            return Response(
                {
                    "error": False,
                    "message": "Lead Created sucessfully."
                },
                status=status.HTTP_200_OK,
            )
        return Response(
            {
                "error": True,
                "message": "Invalid data"
            },
            status=status.HTTP_400_BAD_REQUEST,
        )