예제 #1
0
파일: views.py 프로젝트: vigilate/backend
def get_scanner(request, station_id):

    if request.method == "OPTIONS":
        return HttpResponse()

    ret = '{"detail":"%s"}'
    auth = VigilateAuthentication()

    try:
        auth_result = auth.authenticate(request)
        if not auth_result:
            return HttpResponse(ret % "Unauthenticated", status=403)
        request.user = auth_result[0]
    except AuthenticationFailed as e:
        return HttpResponse(ret % e, status=401)

    try:
        station_id_int = int(station_id)
        station = Station.objects.filter(id=station_id_int, user=request.user.id)[0]
    except (ValueError, IndexError):
        return HttpResponse(ret % "Not found", status=404)

    with open(os.path.join(BASE_DIR, 'program_scanner/scanner.py'), 'r') as raw_scan:
        conf_scan = raw_scan.read()

    conf_scan = conf_scan.replace('DEFAULT_ID', station_id)
    conf_scan = conf_scan.replace('DEFAULT_USER', request.user.email)
    conf_scan = conf_scan.replace('DEFAULT_TOKEN', Station.objects.get(id=station_id_int).token)
    conf_scan = conf_scan.replace('DEFAULT_URL', request.get_host())
    conf_scan = conf_scan.replace('DEFAULT_SCHEME', request.scheme)

    rep = HttpResponse(content_type='text/x-python')
    rep['Content-Disposition'] = 'attachment; filename=scanner.py'
    rep.write(conf_scan)
    return rep
예제 #2
0
파일: views.py 프로젝트: vigilate/backend
def checkout(request, plan_id):

    if request.method == "OPTIONS":
        return HttpResponse()
    if request.method != "POST":
        return HttpResponse(status=400)

    plan_id = int(plan_id)
    try:
        plan = Plans.objects.get(enabled=True, id=plan_id)
    except Plans.DoesNotExist:
        return HttpResponse(status=404)

    auth = VigilateAuthentication()

    try:
        auth_result = auth.authenticate(request)
        if not auth_result:
            return HttpResponse(ret % "Unauthenticated", status=403)
        request.user = auth_result[0]
    except AuthenticationFailed as e:
        return HttpResponse(ret % e, status=401)

    data = json.loads(request.body.decode("utf8"))

    if plan.price == 0:
        request.user.contrat = int(plan_id)
        request.user.save()
        update_contrat(request.user)
        return HttpResponse(status=200)

    import stripe

    stripe.api_key = "sk_test_bbV6OD8cVZ8WDDCBrrUo2ovn"

    customer_list = stripe.Customer.list()
    if not request.user.email in [x.id for x in customer_list["data"]]:
    
        customer = stripe.Customer.create(
            customer=request.user.email,
            source=data["token"]
        )

    desc = ""
    amount = 0
    
    charge = stripe.Charge.create(
        customer=request.user.email,
        amount=round(plan.price*100),
        currency='eur',
        description=plan.name
    )

    if charge["status"] == "succeeded":
        request.user.plan = plan
        request.user.plan_purchase_date = timezone.now()
        request.user.save()
        update_contrat(request.user)

    print(charge)
    
    return HttpResponse()