from django.shortcuts import render, redirect
from timedelta import datetime
import requests
import time
from django.http import JsonResponse
import random
import string
from django.http import HttpResponseRedirect
from django.http import HttpResponse
from django.shortcuts import get_object_or_404, render
from .models import Payment
def confirmed_payments(request):
    phone=request.GET.get('phone', '')
    plans=request.GET.get('plan', '')
    myToken = '6c9fdf54936f9816396b81ad36cd0f001ed37f86'
    # get payments from Api
    myUrl = 'https://helios-radius.com/payment/'
    head = {'Authorization': 'token {}'.format(myToken)}
    response = requests.get(myUrl, headers=head)
    data=response.json()
    username=''
    password=''
    access_session='' # time in seconds
    for all_payments in data:
        if phone == all_payments["notes"] and f"{plans}" == f"{int(float(all_payments['amount']))}":
            letters = string.digits
            username = ''.join(random.choice(letters) for i in range(8))
            password="12345678wp"
            if f"{plans}" == "5":
                access_session='3600'
            if f"{plans}" == "10":
                access_session='10800'
            if f"{plans}" == "20":
                access_session='86400'
            if f"{plans}" == "30":
                access_session='86400'
            if f"{plans}" == "250":
                access_session='604800'
            if f"{plans}" == "250":
                access_session='604800'
            print(username)
    #create user 
    if username:
        head = {'Authorization': 'token {}'.format(myToken)}
        response = requests.post('https://helios-radius.com/user-create/',headers=head, json={
            "username": username,
            "attribute": "Cleartext-Password",
            "op": ":=",
            "value": password
        })
        print(response.json())
    #user access limit in seconds
    if access_session: 
        head = {'Authorization': 'token {}'.format(myToken)}
        response = requests.post('https://helios-radius.com/user-create/',headers=head,json={
            "username": username,
            "attribute": "Access-Period",
            "op": ":=",
            "value": access_session
        }) 
        head = {'Authorization': 'token {}'.format(myToken)}
        response = requests.post('https://helios-radius.com/Radusergroup/',headers=head, json={
            "username": username,
            "groupname": '3MBPS',
            "priority": '1',
        })
        # create user billing history
        current_date_and_time = datetime.datetime.now()
        date = current_date_and_time.strftime("%Y-%m-%d")
        head = {'Authorization': 'token {}'.format(myToken)}
        response = requests.post('https://helios-radius.com/BillingHistory/',headers=head,json={
            "username": username,
             "planid" :'33961241',
             "billamount" :plans,
             "billaction" :"Refill Session Time",
             "billperformer" : "Helios Radius",
             "billreason" : "Refill Session Time",
             "paymentmethod" : "Mpesa",
             "creationdate" : date,
        }) 

        head = {'Authorization': 'token {}'.format(myToken)}
        response = requests.post('https://helios-radius.com/create_userbillinfo/',headers=head,json={
              "company" :'33961241', 
              "username" : username,
              "planname" : '3MBPS',
              "lead" : "hotspot",
              "lastbill" :  date,
              "nextbill" :  date,
              "billstatus" : ">>>>>>>",
              "phone":phone,
              "contactperson":phone,
        }) 
    if phone:
        msg="Your voucher code is "+username+""
        r = requests.post("https://smsportal.hostpinnacle.co.ke/SMSApi/send",
            data={
            'userid': 'comcast',
            'password': 'cyZGZpgD',
            'mobile': phone,
            'msgType': 'text',
            'msg':  msg,
            'senderid': 'COMCAST',
            'duplicatecheck': 'true',
            'output' : 'json',
            'sendMethod':'quick',
            })
        context={
        'username':username
        }
        
    return render(request,'dologin.html',context);