Example #1
0
def purchase():
    genericData = {"title": "Purchase", "heading": "Purchase"}

    form = PurchaseForm()
    form.agent.choices = utilities.getAgentChoices(type=PurchaseAgent)
    form.variety.choices = utilities.getVarietyChoices()
    if form.validate_on_submit():
        status, e = purchaseFormHandler(form)
        if status != 200:
            abort(status)
        flash("Purchase inserted Successfully")
        app.logger.info("Purchase inserted Successfully")
        return redirect('purchase')

    return render_template("purchase.html", data=genericData, form=form)
Example #2
0
def checkout():
    form = PurchaseForm()
    print(request.get_json())
    # Get the csrf_token from the request cookie and put it into the
    # form manually to validate_on_submit can be used
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        purchase = Purchase(
            user_id=form.user_id.data,
            listing_id=form.listing_id.data,
            quantity=form.quantity.data,
        )
    db.session.add(purchase)
    db.session.commit()
    return {'item': purchase.to_dict()}
    return {'errors': validation_errors_to_error_messages(form.errors)}, 401
Example #3
0
def create_purchase():
    """
    Creates a purchase.
    """
    form = PurchaseForm()
    print(request.get_json())
    # Get the csrf_token from the request cookie and put it into the
    # form manually to validate_on_submit can be used
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        purchase = Purchase(node_id=form.data['node_id'],
                            project_id=form.data['project_id'],
                            num_shares=form.data['num_shares'])
        db.session.add(purchase)
        db.session.commit()
        return purchase.to_dict()
    return 'invalid form'
Example #4
0
def purchase():
    form = PurchaseForm()
    accounts = Account.query.filter(Account.user == current_user)
    choices = []
    for account in accounts:
        choices.append(
            (str(account.account_id),
             account.nickname + ' (' + account.account_type.name + ')'))
    form.account.choices = choices
    if form.validate_on_submit():
        post_request = {
            "merchant_id": form.merchant_id.data,
            "medium": "balance",
            "purchase_date": datetime.now().isoformat(),
            "amount": form.amount.data,
            "status": "pending",
            "description": form.description.id
        }

        json_request = json.dumps(post_request)
        payload = {'key': Config.API_KEY}
        response = requests.post(
            ('{}accounts/{}/purchases').format(Config.API_URL,
                                               form.account.data),
            params=payload,
            data=json_request,
            headers={'content-type': 'application/json'})

        if response.status_code == 200 or response.status_code == 201:
            flash('Purchase completed')
        else:
            json_response = json.loads(response.text)
            flash(('Error {}: {}: {}').format(
                json_response["code"], json_response["message"],
                ','.join(json_response["culprit"])), 'error')

        return redirect(url_for('purchase'))

    return render_template('basic_form.html',
                           message="Make Purchase",
                           form=form)