summaryrefslogtreecommitdiff
path: root/src/match_up/__init__.py
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2024-10-25 18:24:13 +0200
committerKaran Jayachandra <mail@karanjayachandra.com>2024-10-25 18:24:13 +0200
commit2a390e99e03fe538169aa6d7c23669eaa5ece467 (patch)
tree211a184bfc362fbc3f7186789eb65391b7f1fb87 /src/match_up/__init__.py
parent70b7b2d950b62939034eaa34c605beb8159edd51 (diff)
Added the requirements on the static files
Diffstat (limited to 'src/match_up/__init__.py')
-rw-r--r--src/match_up/__init__.py93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/match_up/__init__.py b/src/match_up/__init__.py
new file mode 100644
index 0000000..badf3f0
--- /dev/null
+++ b/src/match_up/__init__.py
@@ -0,0 +1,93 @@
+from dotenv import load_dotenv
+from match_up.controller import RoundGenerator
+from match_up.model import CourtList, PlayerList
+from jinja2 import FileSystemLoader, Environment
+from flask import Flask, render_template, request
+
+
+load_dotenv()
+app = Flask("Match Up! Backend")
+rg = RoundGenerator(courts=CourtList(), players=PlayerList())
+re = Environment(loader=FileSystemLoader("templates"))
+
+
+@app.route("/", methods=["GET"])
+def home():
+ return render_template("index.j2")
+
+
+@app.route("/time", methods=["GET"])
+def get_time():
+ mins, secs = rg.timer.get()
+ t = re.from_string('{% from "macros.j2" import timer %}{{timer(mins, secs)}}')
+ return render_template(t, mins=mins, secs=secs)
+
+
+@app.route("/control", methods=["GET"])
+def get_controls():
+ return render_template("controls.j2", courts=rg.courts.get_courts())
+
+
+@app.route("/guests", methods=["GET"])
+def get_guests():
+ t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}')
+ return render_template(t, count=rg.players.guests)
+
+
+@app.route("/decrement", methods=["POST"])
+def increment_guests():
+ t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}')
+ return render_template(t, count=rg.players.decrement_guests())
+
+
+@app.route("/increment", methods=["POST"])
+def decrement_guests():
+ t = re.from_string('{% from "macros.j2" import guests %}{{guests(count)}}')
+ return render_template(t, count=rg.players.increment_guests())
+
+
+@app.route("/propose", methods=["POST"])
+def get_random_games():
+ levels = int(request.form["type"].split()[0])
+ return render_template("games.j2", games=rg.propose(levels), title="Proposal")
+
+
+@app.route("/confirm", methods=["POST"])
+def confirm_games():
+ return render_template("games.j2", games=rg.confirm(), title=f"Round: {rg.round}")
+
+
+@app.route("/clear", methods=["POST"])
+def clear_games():
+ return render_template("games.j2", games=rg.clear(), title=f"Round: {rg.round}")
+
+
+@app.route("/player-toggle/<player_request>", methods=["POST"])
+def toggle_player(player_request):
+ id = int(player_request)
+ status, name = rg.players.toggle_player_status(id)
+ t = re.from_string(
+ '{% from "macros.j2" import player %}{{player(id, status, name)}}'
+ )
+ return render_template(t, id=id, status=status, name=name)
+
+
+@app.route("/players", methods=["GET"])
+def get_list_of_players():
+ return render_template("players.j2", players=rg.players.get_players())
+
+
+@app.route("/court-toggle/<court_number>", methods=["POST"])
+def toggle_court(court_number):
+ id = int(court_number)
+ status = rg.courts.toggle_court_status(id)
+ t = re.from_string('{% from "macros.j2" import court %}{{ court(id, status) }}')
+ return render_template(t, id=id, status=status)
+
+
+@app.route("/courts", methods=["GET"])
+def get_list_of_courts():
+ return render_template("courts.j2", courts=rg.courts.get_courts())
+
+def main():
+ app.run()