WebHost: fix /api/room_info

This commit is contained in:
Fabian Dill 2022-01-19 18:51:26 +01:00
parent 238e2d0280
commit ab4fb6e69c
2 changed files with 15 additions and 8 deletions
WebHostLib/api

View File

@ -1,9 +1,10 @@
"""API endpoints package."""
from uuid import UUID
from typing import List, Tuple
from flask import Blueprint, abort
from ..models import Room
from ..models import Room, Seed
from .. import cache
api_endpoints = Blueprint('api', __name__, url_prefix="/api")
@ -13,16 +14,22 @@ from . import generate, user # trigger registration
# unsorted/misc endpoints
def get_players(seed: Seed) -> List[Tuple[str, str]]:
return [(slot.player_name, slot.game) for slot in seed.slots]
@api_endpoints.route('/room_status/<suuid:room>')
def room_info(room: UUID):
room = Room.get(id=room)
if room is None:
return abort(404)
return {"tracker": room.tracker,
"players": room.seed.multidata["names"],
return {
"tracker": room.tracker,
"players": get_players(room.seed),
"last_port": room.last_port,
"last_activity": room.last_activity,
"timeout": room.timeout}
"timeout": room.timeout
}
@api_endpoints.route('/datapackage')

View File

@ -1,7 +1,7 @@
from flask import session, jsonify
from WebHostLib.models import *
from . import api_endpoints
from . import api_endpoints, get_players
@api_endpoints.route('/get_rooms')
@ -27,6 +27,6 @@ def get_seeds():
response.append({
"seed_id": seed.id,
"creation_time": seed.creation_time,
"players": [(slot.player_name, slot.game) for slot in seed.slots],
"players": get_players(seed.slots),
})
return jsonify(response)