def new_player(data, db): code = 503 resp = {"ok": False, "message": "Internal server error"} username = data.get("username", None) git_username = data.get("git_username", None) if not username: code = 400 resp["message"] = "Missing username" return resp, code existing_users = Helper.get_players_by_username(db.players, username) if len(existing_users) > 0: user = existing_users[0] if user["git_username"] != git_username: new_user = {"username": username, "git_username": git_username} Helper.create_player(db.players, username, new_user) code = 200 resp["ok"] = True resp["message"] = "Player updated successfully" else: code = 200 resp["ok"] = True resp["message"] = "Player already exists, no changes" else: new_user = {"username": username, "git_username": git_username} Helper.create_player(mongo.players, username, new_user) code = 200 resp["ok"] = True resp["message"] = "Player created successfully" return resp, code
def join_game(data, db): code = 503 resp = {"ok": False, "message": "Internal server error"} game_id = data.get("game_id", None) username = data.get("username", None) if game_id is not None and username is not None: player = Helper.get_player_by_username(db.players, username) if player is not None: Helper.add_player_to_game(db.games, game_id, player) found_game = Helper.get_game(db.games, game_id) code = 200 resp["ok"] = True resp["message"] = "Success" resp["game"] = found_game else: code = 400 resp["message"] = username + " could not be found in the player database" else: code = 400 error = "Missing: " if not game_id: error += "game_id" if not username: error += "username" resp["message"] = error return resp, code
def seed_db(db): Helper.seed_players_db(db.players) Helper.seed_games_db(db.games) Helper.seed_actions_db(db.actions) Helper.seed_rules_db(db.rules) response = {"ok": True, "message": "All databases seeded"} code = 200 return response, code
def get_player(data, db): code = 503 resp = {"ok": False, "message": "Internal server error"} username = data.get("username", None) if username is not None: found_player = Helper.get_player_by_username(db.players, username) actions = Helper.get_actions_by_username(db.actions, username) found_player["actions"] = actions code = 200 resp["ok"] = True resp["message"] = "Success" resp["players"] = found_player else: code = 400 resp["message"] = "Missing username" return resp, code
def set_rules(data, db): code = 503 resp = {"ok": False, "message": "Internal server error"} game_id = data.get("game_id", None) rules = data.get("ruleset", None) if game_id is not None and rules is not None: Helper.update_ruleset(db.rules, game_id, rules) code = 200 resp["ok"] = True resp["message"] = "Rules updated successfully" else: code = 400 error = "Missing: " if not game_id: error += "game_id" if not rules: error += "rules" resp["message"] = error return resp, code
def get_chat_log(db, game_id): code = 200 resp = {"ok": True, "message": "No chat logs found"} transcript = Helper.get_chat_log(db.chats, game_id) print(transcript) if len(transcript) > 0: code = 200 resp["ok"] = True resp["message"] = "Success" resp["transcript"] = transcript return resp, code
def new_game(data, db): code = 503 resp = {"ok": False, "message": "Internal server error"} game_id = data.get("game_id", None) if not game_id: code = 400 resp["message"] = "Missing game_id" return resp, code existing_games = Helper.get_games_by_id(db.games, game_id) if len(existing_games) > 0: code = 400 resp["message"] = "A game with game_id already exists" else: Helper.create_game(db.games, game_id) code = 200 resp["ok"] = True resp["message"] = "Game created successfully" return resp, code
def get_rules(game_id, db): code = 503 resp = {"ok": False, "message": "Internal server error"} game = None if game_id: game = game_id if game_id is not None: rules = Helper.get_rules_for_game(db.rules, game_id) code = 200 resp["ok"] = True resp["message"] = "Success" resp["rules"] = rules else: rulesets = Helper.get_all_rules(db.rules) code = 200 resp["ok"] = True resp["message"] = "Success" resp["rules"] = rulesets return resp, code
def handle_client_hook(player_db, action_db, data, audio_dir, request_origin): code = 503 resp = {"ok": False, "message": "Internal server error"} git_user = data.get("git_username", None) if not git_user: resp["message"] = "Missing git_username" else: player = Helper.get_player_by_git_username(player_db, git_user) game = data.get("game_id", None) if player and game: client_proc = cHook.Client(player, game, audio_dir, request_origin) action = client_proc.process_payload(payload=data) Helper.add_action(action_db, action) code = 200 resp["ok"] = True resp["message"] = "Success" resp["action"] = action send_action_message(action) return resp, code
def send_chat_message(data, db): print("Message being processed") username = data['username'] game = data['gameId'] message = data['message'] chatObj = { "_id": str(uuid.uuid4()), "username": username, "gameId": game, "message": message, "date": str(datetime.now()) } Helper.add_chat_message(db.chats, game, chatObj) if username and game and message: event = { "type": "message", "username": username, "gameId": game, "message": message } notify_room(event, game)
def all_games(db): code = 503 resp = {"ok": False, "message": "Internal server error"} found_games = Helper.get_all_games(db.games) if len(found_games) > 0: code = 200 resp["ok"] = True resp["message"] = "Success" resp["games"] = found_games else: code = 200 resp["ok"] = True resp["message"] = "No games found" return resp, code
def get_all_actions(db): code = 503 resp = {"ok": False, "message": "Internal server error"} found_actions = Helper.get_all_actions(db.actions) if len(found_actions) > 0: code = 200 resp["ok"] = True resp["message"] = "Success" resp["actions"] = found_actions else: code = 200 resp["ok"] = True resp["message"] = "No actions found" return resp, code