Exemplo n.º 1
0
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})
        
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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({})
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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')
Exemplo n.º 9
0
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')
Exemplo n.º 10
0
def leaderboard():
    with app.app_context():
        db = get_db()
        return ok(get_leaderboard(db))
Exemplo n.º 11
0
def all_team_data():
    with app.app_context():
        db = get_db()
        return ok(get_all_team_data(db))