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, )
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)
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, )