예제 #1
0
def send_stock_details():
    """returns JSON with basic company details - similar to what is found on portfolio page"""

    stock_symbol = request.json.get('stock_symbol')

    # 404 should not be an issue if we have gotten to this stage
    returned_stock_details = Stock.query.get_or_404(stock_symbol)

    # adds / updates stock details to DB
    returned_stock_details = Stock.add_stock_details(stock_symbol)

    db.session.add(returned_stock_details)
    db.session.commit()

    return jsonify(stock=returned_stock_details.serialize_basic_stock_details())
예제 #2
0
def company_details(stock_symbol):
    """generate company details route"""
    # check user stocks
    stock_arr = []
    if (current_user.is_authenticated):
        stock_details = User_Stock.get_users_stocks(current_user.id)
        
        for details in stock_details[0]:
            stock_arr.append(details.stock_symbol)
    
    # newStockForm is displayed as a Modal in the html
    form = NewStockForm()

    # check DB for stock
    returned_stock_details = Stock.query.get(stock_symbol)
    if returned_stock_details:
        company_name = returned_stock_details.stock_name
        # render template
        return render_template('/stock/detailed_stock_view.html', stock_symbol=stock_symbol, company_name=company_name, stock_arr=stock_arr, form=form)
    
    # if company was not found in DB - search API for stock symbol
    returned_stock_details = User_Stock.add_stock_symbol(stock_symbol)
    # if stock symbol returned true (stock found and added to our DB)
    if returned_stock_details:
        # add stock basic details to DB
        returned_stock_details = Stock.add_stock_details(stock_symbol)
        company_name = returned_stock_details.stock_name
        # render template
        return render_template('/stock/detailed_stock_view.html', stock_symbol=stock_symbol, company_name=company_name, stock_arr=stock_arr, form=form)

    # if stock symbol returned false (stock not found in API)
    flash('Stock was not found', 'warning')
    
    db.session.rollback()
    if not (current_user.is_active):
        return redirect(url_for('homepage'))

    return redirect(url_for('portfolio'))