Exemplo n.º 1
0
    def post(self):
        '''Create a new game.'''
        players = api.payload["players"]
        columns = api.payload["columns"]
        rows = api.payload["rows"]
        if (len(players) <= 1 or len(players) > 2 or (columns != 4)
                or (rows != 4) or players[0] == players[1]):
            return {"message": "Malformed request"}, 400

        player_one = players[0]
        player_two = players[1]

        player_one = Player.query.get(player_one)
        if player_one == None:
            player_one = Player()
            player_one.id = players[0]
            player_one.symbol = "X"
            db.session.add(player_one)
            db.session.commit()

        player_two = Player.query.get(player_two)
        if player_two == None:
            player_two = Player()
            player_two.id = players[1]
            player_two.symbol = "O"
            db.session.add(player_two)
            db.session.commit()

        game = Game()
        game.playerOneId = player_one.id
        game.playerTwoId = player_two.id
        game.status = "IN_PROGRESS"  #TODO consider creating a const or an enum for the game status
        board = Board()
        game.board = board.layout
        db.session.add(game)
        db.session.commit()
        token = create_access_token(identity=game.id)

        return {"gameId": token}