def app_forgot_password(request): content = {} if request.method == 'POST': email = request.POST.get("email", "") try: user = User.objects.get(email=email) token = get_token(user.username) email_data = {"token": token, "user": user.username} body = render_to_string('mail/reset.html', email_data) services.send_email_mailgun('Reset Password Avicrypto', body, email, from_email="postmaster") content = { "status": "ok", "message": "Email has send to your address." } user.profile.token = token user.profile.save() return HttpResponse(json.dumps(content)) except User.DoesNotExist: content = { "status": "error", "message": "Can't find that email, sorry." } return HttpResponse(json.dumps(content)) return render(request, 'forgot-password.html', content)
def send_otp_sms_mail(otp=None, mobile=None, email=None): # if mobile and otp: # services.send_sms('+%s'%mobile, otp) if email and otp: body = "Your avicrypto verification code is: %s" % otp services.send_email_mailgun('Avicrypto Verification', body, email, from_email="postmaster")
def send_notificaion_mail(self, request, queryset): for data in queryset: email_data = { "user": data.user.first_name, } body = render_to_string('mail/alert.html', email_data) try: email = data.user.email except: email = '*****@*****.**' services.send_email_mailgun( 'Important Notice - Payout release downtime ', body, email, from_email="postmaster")
def withdraw(request): if request.method == "POST": user = request.user currency_type = request.POST.get('currency', "") if currency_type: user_account = UserAccount.objects.filter(user=user) owner = User.objects.get(id=1) if user_account: user_account = user_account[0] if currency_type == "BTC": if not user_account.btc_address or user_account.btc_address == "None": return HttpResponse( json.dumps({ "status": "error", "message": "Add selected crypto currency account first." })) else: crypto_addr = user_account.btc_address elif currency_type == "XRP": if not user_account.xrp_address or user_account.xrp_address == "None": return HttpResponse( json.dumps({ "status": "error", "message": "Add selected crypto currency account first." })) else: crypto_addr = user_account.xrp_address elif currency_type == "ETH": if not user_account.eth_address or user_account.eth_address == "None": return HttpResponse( json.dumps({ "status": "error", "message": "Add selected crypto currency account first." })) else: crypto_addr = user_account.eth_address if not Wallet.objects.filter( owner=owner, wallet_type=currency_type).exists(): owner_wallet = Wallet.objects.create( owner=owner, wallet_type=currency_type) else: owner_wallet = Wallet.objects.get( owner=owner, wallet_type=currency_type) if not Wallet.objects.filter( owner=user, wallet_type=currency_type).exists(): user_wallet = Wallet.objects.create( owner=user, wallet_type=currency_type) else: user_wallet = Wallet.objects.get(owner=user, wallet_type=currency_type) if User_packages.objects.filter(status='A', user=user).exists(): user_packages = User_packages.objects.get(user=user, status='A') if user_packages.total_payout > 0: if not Transactions.objects.filter( sender_wallet=owner_wallet, reciever_wallet=user_wallet, status="P", tx_type="W").exists(): total_payout = user_packages.total_payout owner_amount = total_payout / 10 user_amount = total_payout - owner_amount transaction = Transactions.objects.create( sender_wallet=owner_wallet, reciever_wallet=user_wallet, amount=user_amount, status="P", description="Withdraw Transaction", tx_type="W") owner_wallet.amount = owner_wallet.amount + owner_amount owner_wallet.save() user_wallet.amount = user_wallet.amount + user_amount user_wallet.save() user_packages.total_payout = 0 user_packages.binary = user_packages.direct = user_packages.weekly = 0 user_packages.save() services.send_email_mailgun( 'AVI Crypto Transaction Success', "Your withdrawal is successful, your transaction is pending. Your transaction is settled within 48 hours in your chosen account.", user.email, from_email="postmaster") email_data = { "user": user, "owner_amount": owner_amount, "user_amount": user_amount, "total_payout": total_payout, "currency_type": currency_type, "transaction": transaction, "today": UTC.normalize( UTC.localize(datetime.datetime.utcnow())) } body = render_to_string( 'mail/transaction-admin.html', email_data) services.send_email_mailgun( 'AVI Crypto Transaction Success', body, "*****@*****.**", from_email="postmaster") run_realtime_invest(user) return HttpResponse( json.dumps({ "status": "ok", "message": "Your withdrawal is successful, your transaction is pending. Your transaction is settled within 48 hours in your chosen account." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "You already has a transaction in pending state." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "Amount is zero." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "You dont have any package active packge to withdraw." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "Add crypto account address." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "Select currency for withdraw." }))
def add_user(request): if request.method == 'GET': user = request.user sponser_id = user.profile.user_auto_id pos = request.GET.get('pos', "left") placement_id = request.GET.get('parent_placement_id') context = { 'sponser_id': sponser_id, 'placement_id': placement_id, 'pos': pos } template = loader.get_template('add-user.html') if not request.user.is_authenticated(): return HttpResponseRedirect('/error') else: return HttpResponse(template.render(context, request)) if request.method == 'POST': data = request.POST email = data['email'] content = {} if not User.objects.filter(email=email).exists(): placement_id = Profile.objects.get( user_auto_id=data['placement_id']) user = User.objects.create(email=email, username=email) user.first_name = data['first_name'] user.last_name = data['last_name'] user.username = user.profile.user_auto_id user.is_active = True user.set_password('avi123456') user.save() profile = Profile.objects.get(user=user) sponser_id = Profile.objects.get(user=request.user) # check user active or not profile.sponser_id = sponser_id.user profile.referal_code = sponser_id.my_referal_code profile.placement_id = placement_id.user profile.mobile = data['mobile'] profile.country = data['country'] token = get_token(user.username) profile.token = token profile.email_verified = False profile.mobile_verified = False if data['placement'] == 'left': profile.placement_position = 'L' else: profile.placement_position = 'R' profile.save() email_data = { "user": user, "sponcer": sponser_id.user, "placement": placement_id.user, "placement_pos": data['placement'], "token": token } body = render_to_string('mail/network_user_welcome.html', email_data) services.send_email_mailgun('Welcome to Avicrypto', body, email, from_email="postmaster") Members.objects.create(parent_id=placement_id.user, child_id=user) # calculate_investment_binary_direct(request.user) content = { "status": "ok", "message": "Registration complete.", } else: content = { "status": "ok", "message": "Email address already registered.", } return HttpResponse(json.dumps(content))
def app_signup(request): if request.method == "POST": data = request.POST email = request.POST.get('email') referal_code = data.get('referal', None) sponcer_id = data.get('sponcer_id', None) placement_id = data.get('placement_id', None) placement_position = data.get('placement_position', "L") if email and validate_email(email) == None: first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') mobile = request.POST.get('mobile') password = request.POST.get('password') if re.match(r'^\+?1?\d{9,15}$', mobile): if not User.objects.filter(email=email).exists(): if referal_code: try: referal_user = Profile.objects.get( my_referal_code=referal_code) if placement_id: placement_user_profile = Profile.objects.get( user_auto_id=placement_id) placement_user = placement_user_profile.user position = 'l' if 'L' == placement_position else 'r' if is_member_of(referal_user, placement_user): if has_child(placement_user, position): return HttpResponse( json.dumps({ "status": "error", "message": "Placement user selected position is not empty." })) else: return HttpResponse( json.dumps({ "status": "error", "message": "Placement id user does not belong to the referal user." })) except Profile.DoesNotExist: content = { "status": "error", "message": "Referal code does not exist." } return HttpResponse(json.dumps(content)) user = User.objects.create(username=email, email=email, first_name=first_name, last_name=last_name, is_active=True) user.username = user.profile.user_auto_id user.set_password(str(password)) user.save() token = update_signup_user_profile(user, request.POST) email_data = { "user": user, "username": user.username, "password": password, "token": token } body = render_to_string('mail/welcome_.html', email_data) services.send_email_mailgun('Welcome to Avicrypto', body, email, from_email="postmaster") content = { "status": "ok", "message": "Thank you for registration. Soon you will receive a confirmation mail." } return HttpResponse(json.dumps(content)) else: content = { "status": "error", "message": "Email address already exist." } return HttpResponse(json.dumps(content)) else: content = { "status": "error", "message": "Invalid mobile number." } return HttpResponse(json.dumps(content)) else: content = {"status": "error", "message": "Not and email address."} return HttpResponse(json.dumps(content))