def get_avFunds(): uname = get_jwt_identity() with app.app_context(): db = get_db() usr = User.query.filter(User.username == uname).first() return ok({'available_funds': usr.available_funds})
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 get_pos(): uname = get_jwt_identity() js = request.headers with app.app_context(): db = get_db() usr = User.query.filter(User.username == uname).first() tm = Team.query.filter(Team.abr == js['Abr']).first() return ok(get_user_position(tm, usr, db))
def names(): with app.app_context(): db = get_db() teams_all = Team.query.all() payload = {} for team in teams_all: payload[team.abr] = team.name return ok(payload)
def logout_user(): tok = get_raw_jwt()['jti'] with app.app_context(): db = get_db() blTok = BlacklistedToken(jwt=tok) db.session.add(blTok) db.session.commit() resp = ok({}) return resp
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 all_team_data(): with app.app_context(): db = get_db() teams_all = Team.query.all() payload = {} for team in teams_all: d = {} d['graph'] = get_team_graph_points(team.id, db) d['price'] = {'price': team.price} d['name'] = team.name payload[team.abr] = d return ok(payload)
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 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')
def leaderboard(): with app.app_context(): db = get_db() return ok(get_leaderboard(db))
def all_team_data(): with app.app_context(): db = get_db() return ok(get_all_team_data(db))