Ejemplo n.º 1
0
def create_donation(id):
    nonce_from_the_client = request.form["this-input"]
    amount = request.form.get('this-amount')
    gateway.transaction.sale({
        "amount": amount,
        "payment_method_nonce": nonce_from_the_client,
        "options": {
            "submit_for_settlement": True
        }
    })
    Donation(amount=amount, image=id, user=current_user.username).save()

    image = Image.get_by_id(id)
    user = User.get_or_none(User.id == image.user_id)
    message = Mail(
        from_email='*****@*****.**',
        to_emails=user.email,
        subject='Donation Notification',
        html_content='@' + current_user.username + ' donated' +
        f' ${amount} to the following image below!<br><img src="{ image.upload_image_url }" />'
    )
    try:
        sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
        response = sg.send(message)
        print(response.status_code)
        print(response.body)
        print(response.headers)
    except Exception as e:
        print(str(e))
    return redirect(url_for('home'))
Ejemplo n.º 2
0
def create():
    amount = request.form.get('amount')
    
    image_id = request.form.get('image_id')
    image_user_id = request.form.get('image_user_id')
    
    nonce_from_the_client = request.form.get("nonce")
    
    result = gateway.transaction.sale({
        "amount": amount,
        "payment_method_nonce": nonce_from_the_client,
        "options": {
        "submit_for_settlement": True
        }
    })
    
    # breakpoint
      
    if result.is_success:
        flash("Successfully donated !", "success")
        donation = Donation(username=current_user.id, image=image_id, amount=amount)
        donation.save()
        return  redirect(f'images/{image_user_id}/images')
    
    else:
        flash("Error has occured, please try again", "danger")
        return render_template(url_for('donations.new'))
Ejemplo n.º 3
0
def create(image_id):
    nonce = request.form.get('payment_method_nonce')
    if not nonce:
        flash('invalid credit card details', 'warning')
        return redirect(url_for('users.index'))

    image = Image.get_or_none(Image.id == image_id)

    if not image:
        flash('No image found with the provided id', 'waning')
        return redirect(url_for('users.index'))

    amount = request.form.get('amount')

    if not amount:
        flash('No donation amount provided', 'warning')
        return redirect(url_for('users.index'))

    result = gateway.transaction.sale({
        "amount": amount,
        "payment_method_nonce": nonce,
        # "device_data": device_data_from_the_client,
        "options": {
            "submit_for_settlement": True
        }
    })

    if not result.is_success:
        flash('Unable to complete transaction', 'warning')
        return redirect(request.referrer)

    donation = Donation(amount=amount,
                        image_id=image.id,
                        user_id=current_user.id)

    if not donation.save():
        flash('Donation successful but error creating record', 'warning')
        return redirect(url_for('users.index'))

    flash(f'Donation successful. ${amount} donated', 'success')
    user = User.select().join(Image).where(Image.id == image_id)
    send_simple_message(user[0].email)
    return redirect(url_for('users.index'))
Ejemplo n.º 4
0
def create(image_id):
    amount = request.form.get('amount')
    payment_nonce = request.form.get('payment_nonce')
    result = gateway.transaction.sale({
        "amount": amount,
        "payment_method_nonce": payment_nonce,
        "options": {
            "submit_for_settlement": True
        }
    })
    if not result.is_success:
        flash(u'dono did not work out.', 'warning')
        return redirect(request.referrer)

    dono = Donation(amount=amount, image_id=image_id)
    if dono.save():
        user = User.select().join(Image).where(Image.id == image_id)
        send_simple_message(user[0].email)
        flash(f'successfully donated RM{amount}', 'info')
        return redirect(url_for('users.index'))