diff --git a/backend/src/app.py b/backend/src/app.py index cd551c2..8602d86 100644 --- a/backend/src/app.py +++ b/backend/src/app.py @@ -1,14 +1,42 @@ -from flask import Flask +from flask import Flask, request, Response, jsonify from flask_cors import CORS +from .classes import Room + app = Flask(__name__) CORS(app) +ROOMS: dict[int, Room] = {} # { room_id: room, ... } + + +def error(msg: str, status: int = 400) -> Response: + res = jsonify({"success": False, "error": msg}) + res.status_code = status + return res + + @app.route("/api") def index(): return "hello from flask" +@app.route("/api/join") +def join(): + room_id = request.args.get("room") + code = request.args.get("code") + + if room_id is None: + return error("Missing room id") + + if (room := ROOMS.get(int(room_id))) is None: + return error("Invalid room") + + if room.pin is not None and room.pin != code: + return error("Invalid code") + + return {"success": True, "ws": f"/ws/{room_id}"} + + if __name__ == "__main__": app.run(debug=True) diff --git a/backend/src/classes.py b/backend/src/classes.py new file mode 100644 index 0000000..c607883 --- /dev/null +++ b/backend/src/classes.py @@ -0,0 +1,9 @@ +from dataclasses import dataclass + + +@dataclass +class Room: + id: int + coord: ... + name: str + pin: int | None