def game(request, game_id): game = load_game_by_id(game_id) game.add_user(request.user) datetimeLastUpdated = timestampToDatetime(request.GET.get("lastUpdated", "0")) players = [{ 'id': gameUser.id, 'color': gameUser.get_color(), 'username': gameUser.user.username, } for gameUser in game.get_gameusers_modified_since(datetimeLastUpdated)] pieces = [{ 'id': piece.id, 'player_id': piece.gameUser.id, 'type': piece.get_type(), 'position': piece.position, } for piece in game.get_pieces_modified_since(datetimeLastUpdated)] history = [{ 'id': hist.id, 'piece_id': hist.piece_id, 'from': hist.fromPosition, 'to': hist.toPosition, } for hist in game.get_history_modified_since(datetimeLastUpdated)] response = {} if ( datetimeToEpoch(game.datetimeLastModified) > datetimeToEpoch(datetimeLastUpdated) or len(players) > 0 or len(pieces) > 0 ): game.update_status() response = { 'status': game.status, 'players': players, 'pieces': pieces, 'history': history, 'moves': [{ 'id': move['piece'].id, 'positions': move['positions'] } for move in game.get_available_moves() if move['piece'].gameUser.user == request.user], 'lastUpdated': datetimeToEpoch(datetime.datetime.utcnow()), 'currentturn_player_id': game.get_gameuser_current_turn().id, 'winner_player_id': None, } winner = game.get_winner_gameuser() if winner: response['winner_player_id'] = winner.id return HttpResponse(json.dumps(response), content_type="application/json")
def movePiece(request, game_id, piece_id, position): game = load_game_by_id(game_id) game.move_piece_to_position(int(piece_id), position) return HttpResponse(status = 200)