diff --git a/WebHostLib/api/__init__.py b/WebHostLib/api/__init__.py index abe4aeb2..76878e49 100644 --- a/WebHostLib/api/__init__.py +++ b/WebHostLib/api/__init__.py @@ -7,7 +7,8 @@ from ..models import Room api_endpoints = Blueprint('api', __name__, url_prefix="/api") -from . import generate +from . import generate, user # trigger registration + # unsorted/misc endpoints @@ -20,4 +21,4 @@ def room_info(room: UUID): "players": room.seed.multidata["names"], "last_port": room.last_port, "last_activity": room.last_activity, - "timeout": room.timeout} \ No newline at end of file + "timeout": room.timeout} diff --git a/WebHostLib/api/user.py b/WebHostLib/api/user.py new file mode 100644 index 00000000..ec129394 --- /dev/null +++ b/WebHostLib/api/user.py @@ -0,0 +1,33 @@ +from flask import session, jsonify + +from WebHostLib.models import * +from . import api_endpoints + + +@api_endpoints.route('/get_rooms') +def get_rooms(): + response = [] + for room in select(room for room in Room if room.owner == session["_id"]): + response.append({ + "room_id": room.id, + "seed_id": room.seed.id, + "creation_time": room.creation_time, + "last_activity": room.last_activity, + "last_port": room.last_port, + "timeout": room.timeout, + "tracker": room.tracker, + "players": room.seed.multidata["names"] if room.seed.multidata else [["Singleplayer"]], + }) + return jsonify(response) + + +@api_endpoints.route('/get_seeds') +def get_seeds(): + response = [] + for seed in select(seed for seed in Seed if seed.owner == session["_id"]): + response.append({ + "seed_id": seed.id, + "creation_time": seed.creation_time, + "players": seed.multidata.names if seed.multidata else [["Singleplayer"]], + }) + return jsonify(response) \ No newline at end of file