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())
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'))