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