from os import getenv from controller import Session from dotenv import load_dotenv from model import CourtList, PlayerList from flask import Flask, render_template, request load_dotenv() S = Session(courts=CourtList(12), players=PlayerList("test_data_large.csv")) app = Flask("Match Up! Backend") app.config.from_object(getenv("PROD_APP_SETTINGS", "config.DevelopmentConfig")) @app.route("/", methods=["GET"]) def home(): return render_template("index.j2") @app.route("/propose", methods=["POST"]) def get_random_games(): levels = int(request.form["type"].split()[0]) return render_template("games.j2", title="Proposal", games=S.propose_round(levels)) @app.route("/clear", methods=["POST"]) def clear_games(): return render_template("games.j2", title=f"Round: {S.round}", games=S.clear_round()) @app.route("/player-toggle/", methods=["POST"]) def toggle_player(player_request): id = int(player_request) status, name = S.players.toggle_player_status(id) return render_template("player.j2", id=id, status=status, name=name) @app.route("/players", methods=["GET"]) def get_list_of_players(): return render_template("players.j2", players=S.players.get_players()) @app.route("/court-toggle/", methods=["POST"]) def toggle_court(court_number): id = int(court_number) status = S.courts.toggle_court_status(id) return render_template("court.j2", id=id, status=status) @app.route("/courts", methods=["GET"]) def get_list_of_courts(): return render_template("courts.j2", courts=S.courts.get_courts())