def login_user(): with app.app_context(): db = get_db() req_data = request.get_json() uname = req_data['username'] pwrd = req_data['password'] user = User.query.filter_by(username=uname).first() if user is None: return bad_request('invalid username') if user.check_password(pwrd): access_jwt = create_access_token(identity=uname) refresh_jwt = create_refresh_token(identity=uname) resp = ok({'access_token': access_jwt, 'username': uname}) set_refresh_cookies(resp, refresh_jwt) return resp return bad_request('invalid password')
def gen_usrPg(): with app.app_context(): db = get_db() heads = request.headers if 'date' not in heads: date = str(datetime.now(EST)) else: date = heads['date'] uname = heads['username'] matches = User.query.filter_by(username=uname).all() if not matches: return bad_request('no such user') user_obj = matches[0] uid = user_obj.id all_purchases = get_active_holdings(uid, db, date=date) payload = {'available_funds': user_obj.available_funds} payload['holdings'] = all_purchases total = user_obj.available_funds for abr, item in all_purchases.items(): for p in item: t = Team.query.filter(Team.abr == abr).first() total += p['num_shares'] * t.price payload['total_assets'] = total payload['graphData'] = get_user_graph_points(uid, db) return ok(payload)
def make_sale(): uname = get_jwt_identity() with app.app_context(): db = get_db() usr = User.query.filter(User.username == uname).first() js = request.get_json() try: sell_shares(usr, js['abr'], int(js['num_shares']), db) except ValueError as e: return bad_request(str(e)) return ok({})
def create_user(): with app.app_context(): db = get_db() req_data = request.get_json() pwrd = req_data['password'] pwrd_c = req_data['confirm-password'] if pwrd != pwrd_c: return bad_request('passwords do not match') uname = req_data['userName'] email = req_data['email'] try: u = User(username=uname, email=email, password=pwrd) db.session.add(u) db.session.commit() access_jwt = create_access_token(identity=uname) refresh_jwt = create_refresh_token(identity=uname) resp = ok({'access_token': access_jwt, 'username': uname}) set_refresh_cookies(resp, refresh_jwt) return resp except: return bad_request('username/email is already in use')