Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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
Example #7
0
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
Example #8
0
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
Example #10
0
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)
Example #11
0
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
Example #12
0
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