Exemplo n.º 1
0
def choose_deck():
    name = request.json["name"]
    try:
        current_user.choose_deck(name)
    except DeckNotExists:
        return failed("Deck %s not exists" % name)
    return success(data=current_user.deck_json)
Exemplo n.º 2
0
def leave_room(room_id):
    if current_user.playing_room == -1:
        return failed(rtn=ErrorCode.PLAYER_NOT_PLAYING, message="not in room")
    room = room_manager.get_room(current_user.playing_room)
    room.players.remove(current_user.player)
    if len(room.players) == 0:
        room_manager.delete_room(room_id)
    return success(message="Join room %s success" % room_id)
Exemplo n.º 3
0
def delete_deck():
    name = request.json["name"]
    try:
        current_user.delete_deck(name)
        user_manager.save_user(current_user)
    except DeckNotExists:
        return failed("Deck %s not exists" % name)
    return success(data=current_user.deck_json)
Exemplo n.º 4
0
def add_deck():
    data = request.json
    try:
        current_user.add_deck(data["name"], data["code"])
        current_user.choose_deck(data["name"])
        user_manager.save_user(current_user)
    except DeckNameDuplicate:
        return failed(rtn=ErrorCode.DECK_NAME_DUPLICATE, message="Deck name %s already exists")
    return success(data=current_user.deck_json)
Exemplo n.º 5
0
def sign_up():
    data = request.json
    username = data['username']
    password = data['password']
    DEBUG("username is %s, password is %s" % (username, password))
    DEBUG("users is %s" % user_manager.users)
    if username not in user_manager.users:
        user_manager.save_user(User(username, password))
        return success(message="User %s sign up success" % username)

    return failed(rtn=ErrorCode.USER_ALREADY_EXISTS, message="User %s already exists" % (username))
Exemplo n.º 6
0
def join_room(room_id):
    try:
        if current_user.playing_room == -1:
            room_manager.join_room(room_id, current_user)
            return success(message="Join room %s success" % room_id)
        else:
            return failed(
                ErrorCode.PLAYER_ALREADLY_PLAYING,
                message="playing in room %s")
    except RoomNotExists:
        return failed(rtn=ErrorCode.ROOM_NOT_EXISTS, message="Room %s does not exist" % room_id)
    except RoomFull:
        return failed(rtn=ErrorCode.ROOM_FULL, message="Room %s is full")
Exemplo n.º 7
0
def get_room(room_id):
    try:
        room = room_manager.get_room(room_id)
        DEBUG(room.players)
        return success(data={
            "players": [{
                "name": player.name,
                "hero": cards_name_map[player.starting_hero],
                "deck": [cards_name_map[card] for card in player.starting_deck]
            } for player in room.players]
        })
    except RoomNotExists:
        return failed(rtn=ErrorCode.ROOM_NOT_EXISTS, message="Room %s does not exist" % room_id)
Exemplo n.º 8
0
def logout():
    logout_user()
    return success(message='Logged out')
Exemplo n.º 9
0
def protected():
    return success(message='Logged in as: ' + current_user.id)
Exemplo n.º 10
0
def create_room():
    room = room_manager.create_room()
    return success(data={"room_id": room.id}, message="Create room success")
Exemplo n.º 11
0
def get_deck():
    return success(data=current_user.deck_json)