diff options
Diffstat (limited to 'be/app.py')
| -rw-r--r-- | be/app.py | 65 |
1 files changed, 65 insertions, 0 deletions
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/<team>/<username>', 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/<team>/<username>', methods=["GET"]) +def user_points(team, username): + return {"points": points.get_user_points(sanitise(team), sanitise(username))} + +@app.route('/points/<team>/', 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/<team>", 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 "" |
