Пример #1
0
def list_open_bets():

    # Authenticate user
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # Get open bets
    db_bets = db.get_open_bets(loguser)
    bets = []
    for db_bet in db_bets:
        bet = db_bet

        db_user1 = db.get_user(db_bet['user1id'])
        user1 = {
            'user_id': db_user1['user_id'],
            'first_name': db_user1['first_name'],
            'last_name': db_user1['last_name'],
            'profile_pic_url': db_user1['profile_pic_url'],
            'team': db_bet['user1team']
        }

        bet['user1'] = user1
        bets.append(bet)

    # Return JSON response
    result = {'bets': bets}
    return create_http_response(data=result)
Пример #2
0
def login():
    error = None
    if request.method == 'POST':
        value = db.authenticate(
            request.form['username'],
            request.form['password'])
        if (value == 1):
            print ("Succesful")
            session['name'] = request.form['username']
            user_data = session['name']
            print (user_data)
            data = db.filter_user_data(user_data)
            print (type(data), data, len(data))
            data_user_get = db.filter_user_chart(user_data)
            graph_data = []
            for elem in data_user_get:
                cat = elem[0]
                exp = elem[1]
                li = [cat, int(exp)]
                graph_data.append(li)
            graph_data.insert(0, ['Category', 'Expenses'])
            print ("Graph data ", graph_data)
            return render_template(
                'index.html',
                error=error,
                data=data,
                data_chart=graph_data)
        else:
            error = 'Invalid username or password \
            Please try again!'
            return render_template('login.html', error=error, session=session)
    return render_template('login.html')
Пример #3
0
def check_user():
    # Authenticate user
    log_user = request.args.get('loguser')
    auth = request.args.get('auth')
    auth_ = db.authenticate(log_user, auth)
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('unauthenticated user')
        return create_http_response(data=result, errors=result['errors'])

    #
    is_friend = request.args.get('friends')
    response = {}
    if is_friend:
        data = {}
        data['user_name'] = log_user
        all_friends = db.get_friends(data)
        count = 0
        for friend in all_friends:
            if friend == request.args.get('username'):
                break
            count += 1
        if count == len(all_friends):
            response['value'] = False
        else:
            response['value'] = True
    else:
        data = {}
        data['user_name'] = request.args.get('username')
        response['value'] = db.user_exist(data)

    return create_http_response(data=response)
Пример #4
0
def find_user():
    log_user = request.args.get('loguser')
    auth = request.args.get('auth')
    auth_ = db.authenticate(log_user, auth)
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('unauthenticated user')
        return create_http_response(data=result, errors=result['errors'])

    result = {}
    username = request.args.get('username')
    user = db.get_user(username)

    if not user:
        result = {}
        result['errors'] = []
        result['errors'].append('username does not exist')
        return create_http_response(data=result, errors=result['errors'])

    result['username'] = user['user_name']
    result['first_name'] = user['first_name']
    result['last_name'] = user['last_name']
    result['profile_pic_url'] = user['profile_pic_url']
    result['friends'] = db.are_friends(log_user, username)
    w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545"))
    public_address = w3.toChecksumAddress(user['public_key'])
    result['balance'] = float(
        Web3.fromWei(w3.eth.getBalance(public_address), 'ether'))

    return create_http_response(data=result)
Пример #5
0
def get_user():
    log_user = request.args.get('loguser')
    auth = request.args.get('auth')
    auth_ = db.authenticate(log_user, auth)
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('unauthenticated user')
        return create_http_response(data=result, errors=result['errors'])
    
    result = {}
    data = {}
    data['user_name'] = request.args.get('username')
    users = db.get_user(data)
    if len(users) == 0:
        result = {}
        result['errors'] = []
        result['errors'].append('username does not exist')
        return create_http_response(data=result, errors=result['errors'])
    elif len(users) > 1:
        result = {}
        result['errors'] = []
        result['errors'].append('multiple identical usernames found')
        return create_http_response(data=result, errors=result['errors'])

    result['username'] = users[0]['user_name']
    result['first_name'] = users[0]['first_name']
    result['last_name'] = users[0]['last_name']
    result['profile_pic_url'] = users[0]['profile_pic_url']

    return create_http_response(data=result)
Пример #6
0
def accept_bet():
    '''
    accepts bet

    :return:
    '''

    # load request json data as dict
    data = json.loads(request.data)

    # authenticate user
    loguser = data['loguser']
    auth = data['auth']
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # accept bet
    bet_id = data['bet_id']
    db.accept_bet(bet_id, loguser)

    user = db.get_user(loguser)
    public_key = user['public_key']

    bet = db.get_bet(bet_id)
    amount = bet['ammount']

    ethereum_client.accept_bet(bet_id, amount, public_key)
    # Send json response
    return create_http_response()
Пример #7
0
def place_bet():
    '''
    Places a bet into the database, and returns success message
    :return:
    '''

    # Load request json data as dict
    data = json.loads(request.data)

    # Authenticate user
    loguser = data['loguser']
    auth = data['auth']
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # Add bet to db
    bet_id = db.place_bet(data)

    # Send json response
    response_data = {'bet_id': bet_id}

    user = db.get_user(loguser)
    public_key = user['public_key']
    amount = float(data['amount'])
    ethereum_client.create_bet(bet_id, amount, public_key)

    return create_http_response(data=response_data)
Пример #8
0
def find_id():
    log_user = request.args.get('loguser')
    auth = request.args.get('auth')
    auth_ = db.authenticate(log_user, auth)
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('unauthenticated user')
        return create_http_response(data=result, errors=result['errors'])

    result = {}
    user_id = request.args.get('user_id')
    user = db.find_id(user_id)

    if not user:
        result = {}
        result['errors'] = []
        result['errors'].append('username does not exist')
        return create_http_response(data=result, errors=result['errors'])

    result['user_id'] = user['user_id']
    result['username'] = user['user_name']
    result['first_name'] = user['first_name']
    result['last_name'] = user['last_name']
    result['profile_pic_url'] = user['profile_pic_url']
    result['friends'] = db.are_friends(log_user, username)

    return create_http_response(data=result)
Пример #9
0
def list_open_bets_by_game():
    # Authenticate user
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    game_id = int(request.args.get('game_id'))
    db_bets = db.get_open_bets(loguser)
    bets = []
    for db_bet in db_bets:
        bet = db_bet
        if db_bet['game_id'] == game_id:
            db_user1 = db.get_user(bet['user1'])
            user1 = {
                'username': db_user1['user_name'],
                'first_name': db_user1['first_name'],
                'last_name': db_user1['last_name'],
                'profile_pic_url': db_user1['profile_pic_url'],
                'team': db_bet['team1']
            }
            bet['user1'] = user1
            if 'user2' in bet: del bet['user2']
            bets.append(bet)

    result = {'bets': bets}
    return create_http_response(data=result)\
Пример #10
0
def login():
    error = None
    if request.method == 'POST':
        value = db.authenticate(request.form['username'],
                                request.form['password'])
        if (value == 1):
            print "login Succesfully"
            session['name'] = request.form['username']
            user_data = session['name']
            print user_data
            data = db.filter_user_data(user_data)
            print type(data), data, len(data)
            data_user_get = db.filter_user_chart(user_data)
            graph_data = []
            for elem in data_user_get:
                cat = elem[0]
                exp = elem[1]
                li = [cat, int(exp)]
                graph_data.append(li)
            graph_data.insert(0, ['Category', 'Expenses'])
            print "Graph data ", graph_data
            return render_template('index.html',
                                   error=error,
                                   data=data,
                                   data_chart=graph_data)
        else:
            error = 'Invalid username or password \
            Please try again!'

            return render_template('login.html', error=error, session=session)
    return render_template('login.html')
Пример #11
0
def list_closed_bets_bet_history():
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # TODO
    # Note: major problem here will be adding bet users to the proper bets
    pass
Пример #12
0
def list_direct_bets_pending():
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # TODO

    pass
Пример #13
0
def login_user():
    data = json.loads(request.data)
    username = data['username']
    auth = data['auth']
    auth_ = db.authenticate(username, auth)
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('username and auth dont match up')
        return create_http_response(data=result, errors=result['errors'])

    return create_http_response()
Пример #14
0
def get_teams():
    # TODO: create games json object and return it
    # check authentication
    log_user = request.args.get('loguser')
    auth_token = request.args.get('auth')
    authenticated = db.authenticate(log_user, auth_token)
    if not authenticated:
        return create_http_response(errors=['unauthenticated user'])

    # make query
    teams = {'teams': db.get_teams()}

    return create_http_response(data=teams)
Пример #15
0
def get_games():
    # TODO: create games json object and return it
    # check authentication
    log_user = request.args.get('loguser')
    auth_token = request.args.get('auth')
    authenticated = db.authenticate(log_user, auth_token)
    if not authenticated:
        return create_http_response(errors=['unauthenticated user'])

    # make query
    '''
    games = {
        'games': db.get_games()
    }
    '''
    # send GET request to api endpoint emulating gold standard sports api
    #URL = 'http://socialbet.jpkrieg.com:5001/api/sports_api_emulator/'
    URL = 'http://localhost:5001/api/sports_api_emulator/'
    print(URL)
    PARAMS = {}
    PARAMS['league'] = request.args.get('league')
    PARAMS['day'] = request.args.get('day')
    PARAMS['month'] = request.args.get('month')
    PARAMS['year'] = request.args.get('year')

    r = requests.get(url=URL, params=PARAMS)
    response = r.json()
    all_games = {}
    all_games['games'] = []
    for g in response:
        game = {}
        game['game_id'] = g['game_id']
        game['team1'] = g['HomeTeam']['fullName']
        game['team2'] = g['AwayTeam']['fullName']
        game['team1_url'] = g['HomeTeam']['shortName']
        game['team2_url'] = g['AwayTeam']['shortName']
        game['game_time'] = g['eventStartsAt']
        game['home_score'] = g['homeScore']
        game['away_score'] = g['awayScore']
        all_games['games'].append(game)

    return create_http_response(data=all_games)
Пример #16
0
def accept_bet():
    '''
    Accepts bet

    :return:
    '''

    # Load request json data as dict
    data = json.loads(request.data)

    response_data = {}
    # TODO: Authenticate user
    auth = db.authenticate(data['loguser'], data['auth'])
    if (auth):
        db.accept_bet(data)
        return create_http_response()
    else:
        response_data['errors'] = []
        response_data['errors'].append('unauthenticated user')
        return create_http_response(errors=response_data['errors'])
Пример #17
0
def list_users_live_bets():

    # Authenticate user
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])
    username = request.args.get('username')

    # Get live bets and construct JSON
    db_bets = db.get_users_live_bets(username)

    bets = []
    for db_bet in db_bets:
        bet = db_bet

        db_user1 = db.get_user(db_bet['user1'])
        user1 = {
            'username': db_user1['user_name'],
            'first_name': db_user1['first_name'],
            'last_name': db_user1['last_name'],
            'profile_pic_url': db_user1['profile_pic_url'],
            'team': db_bet['team1']
        }
        db_user2 = db.get_user(db_bet['user2'])
        user2 = {
            'username': db_user2['user_name'],
            'first_name': db_user2['first_name'],
            'last_name': db_user2['last_name'],
            'profile_pic_url': db_user2['profile_pic_url'],
            'team': db_bet['team2']
        }

        bet['user1'] = user1
        bet['user2'] = user2
        bets.append(bet)

    # Return JSON response
    result = {'bets': bets}

    return create_http_response(data=result)
Пример #18
0
def get_unnotified_games():

    log_user = request.args.get('loguser')
    auth_token = request.args.get('auth')
    authenticated = db.authenticate(log_user, auth_token)
    if not authenticated:
        return create_http_response(errors=['unauthenticated user'])

    bets_to_notify = db.unnotified_bets(log_user)
    response = []

    for db_bet in bets_to_notify:
        bet = db_bet
        db_user1 = db.get_user(db_bet['user1'])
        user1 = {
            'username': db_user1['user_name'],
            'first_name': db_user1['first_name'],
            'last_name': db_user1['last_name'],
            'profile_pic_url': db_user1['profile_pic_url'],
            'team': db_bet['team1']
        }
        db_user2 = db.get_user(db_bet['user2'])
        user2 = {
            'username': db_user2['user_name'],
            'first_name': db_user2['first_name'],
            'last_name': db_user2['last_name'],
            'profile_pic_url': db_user2['profile_pic_url'],
            'team': db_bet['team2']
        }

        bet['user1'] = user1
        bet['user2'] = user2
        response.append(bet)

    for db_bet in bets_to_notify:
        db.set_bet_to_notified(db_bet['bet_id'])

    # Return JSON response
    result = {'bets': response}

    return create_http_response(data=result)
Пример #19
0
def login():
    error = None
    if request.method == 'POST':
        value = db.authenticate(request.form['username'],
                                request.form['password'])
        if (value == 1):
            print "login Succesful"
            session['name'] = request.form['username']
            user_data = session['name']
            print user_data
            data = db.filter_user_data(user_data)
            print(data, 'fetched')
            data = map(str, list(data))
            print(len(data), data)
            return render_template('index.html', data=data)
        else:
            error = 'Invalid username or password \
            Please try again!'

            return render_template('login.html', error=error, session=session)
    return render_template('login.html')
Пример #20
0
def cancel_bet():
    '''
    Cancel's a bet by
        1) Removing it from mysql database
        2) Cancelling smart contract
    :return:
    '''

    # Load request json data as dict
    data = json.loads(request.data)

    # Authenticate user
    loguser = data['loguser']
    auth = data['auth']
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    # Accept bet
    bet_id = data['bet_id']
    db.cancel_bet(bet_id)

    # Send json response
    return create_http_response()
Пример #21
0
def add_friend():
    data = json.loads(request.data)
    info = {}

    info['loguser'] = data['loguser']
    info['auth'] = data['auth']
    auth_ = db.authenticate(info['loguser'], info['auth'])
    if not auth_:
        result = {}
        result['errors'] = []
        result['errors'].append('unauthenticated user')
        return create_http_response(data=result, errors=result['errors'])
    info['user1'] = data['user1']
    info['user2'] = data['user2']

    worked = db.add_friend(info)
    if worked:
        return create_http_response()
    else:
        result = {}
        result['errors'] = []
        result['errors'].append("Error Occurred")
        return create_http_response(data=result, errors=result['errors'])
Пример #22
0
def place_bet():
    '''
    Places a bet into the database, and returns success message
    :return:
    '''

    # Load request json data as dict
    data = json.loads(request.args)

    response_data = {}

    # Authenticating user and building response_data accordingly
    auth = db.authenticate(data['loguser'], data['auth'])
    if (auth):
        # add bet to db and give bet_id in response
        bet_id = db.place_bet(data)
        response_data['bet_id'] = bet_id
    else:
        # give unauthenticated error
        response_data['errors'] = []
        response_data['errors'].append('unauthenticated user')

    return create_http_response(data=response_data,
                                errors=response_data['errors'])
Пример #23
0
def cancel_bet():
    '''
    Cancel's a bet by
        1) Removing it from mysql database
        2) Cancelling smart contract
    :return:
    '''

    # Load request json data as dict
    data = json.loads(request.data)
    bet_id = data['bet_id']

    # TODO: Authenticate user
    auth = db.authenticate(data['loguser'], data['auth'])
    if auth:
        db.cancel_bet(bet_id)
        return create_http_response()

    response_data = {}
    response_data['errors'] = []
    response_data['errors'].append('unauthenticated user')

    # Respond with status
    return create_http_response(errors=response_data['errors'])
Пример #24
0
def list_closed_bets():
    loguser = request.args.get('loguser')
    auth = request.args.get('auth')
    if not db.authenticate(loguser, auth):
        return create_http_response(errors=['unauthenticated user'])

    db_bets = db.get_closed_bets(loguser)

    bets = []
    for db_bet in db_bets:
        bet = db_bet

        db_user1 = db.get_user(db_bet['user1'])
        user1 = {
            'username': db_user1['user_name'],
            'first_name': db_user1['first_name'],
            'last_name': db_user1['last_name'],
            'profile_pic_url': db_user1['profile_pic_url'],
            'team': db_bet['team1']
        }
        db_user2 = db.get_user(db_bet['user2'])
        user2 = {
            'username': db_user2['user_name'],
            'first_name': db_user2['first_name'],
            'last_name': db_user2['last_name'],
            'profile_pic_url': db_user2['profile_pic_url'],
            'team': db_bet['team2']
        }

        bet['user1'] = user1
        bet['user2'] = user2
        bets.append(bet)

    result = {'bets': bets}

    return create_http_response(data=result)