From 5461621c421130bd359efff4a10c3e1ba330e85c Mon Sep 17 00:00:00 2001 From: akiyamn Date: Thu, 2 Nov 2023 22:29:09 +1100 Subject: Init --- be/app.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 be/app.py (limited to 'be/app.py') diff --git a/be/app.py b/be/app.py new file mode 100644 index 0000000..399ce97 --- /dev/null +++ b/be/app.py @@ -0,0 +1,65 @@ +from flask import Flask, request +from flask_cors import CORS +from werkzeug.middleware.proxy_fix import ProxyFix +import points + +app = Flask(__name__) + +app.wsgi_app = ProxyFix( + app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1 +) + +CORS(app) + +@app.route("/") +def ping(): + return "🀄" + +TEAMS = ["green", "purple"] +points.init_databases(TEAMS) + +def sanitise(string): + return string.lower() + +@app.route('/increment//', methods=["POST"]) +def increment_user_points(team, username): + team = team.lower() + multiplier = points.get_multiplier(team) + return {"points": points.increment_points(sanitise(team), sanitise(username), float(multiplier))} + +@app.route('/points//', methods=["GET"]) +def user_points(team, username): + return {"points": points.get_user_points(sanitise(team), sanitise(username))} + +@app.route('/points//', methods=["GET"]) +def get_team_points(team): + return {"points": points.get_team_points(sanitise(team))} + +@app.route("/leaderboard/", methods=["GET"]) +def get_leaderboard(): + return points.get_leaderboard() + +@app.route("/multiplier/", methods=["GET", "POST"]) +def multiplier(team): + if request.method == "GET": + return {"multiplier": points.get_multiplier(sanitise(team))} + else: + data = request.get_json() + if "multiplier" in data: + return {"multiplier": points.set_multiplier(sanitise(team), data["multiplier"])} + return "", 400 + +@app.route("/prompt/", methods=["GET", "POST"]) +def prompt(): + if request.method == "GET": + return {"prompt": points.get_prompt()} + else: + data = request.get_json() + if "prompt" in data: + return {"prompt": points.set_prompt(data["prompt"])} + return "", 400 + +@app.route("/clear/", methods=["POST"]) +def clear(): + points.init_databases(TEAMS, clear=True) + return "" -- cgit v1.2.3