Fixed user-feedback

This commit is contained in:
Mawoka
2022-09-27 14:12:05 +02:00
parent 17a7a6a614
commit f42cae34b2
+20 -4
View File
@@ -18,7 +18,7 @@ import bleach
from classquiz.auth import get_current_user, check_api_key from classquiz.auth import get_current_user, check_api_key
from classquiz.config import redis, settings, storage, meilisearch from classquiz.config import redis, settings, storage, meilisearch
from classquiz.db.models import Quiz, QuizInput, User, PlayGame, GameSession, GameAnswer1, GameAnswer2 from classquiz.db.models import Quiz, QuizInput, User, PlayGame, GameSession, GameAnswer1, GameAnswer2, GamePlayer
from classquiz.kahoot_importer.import_quiz import import_quiz from classquiz.kahoot_importer.import_quiz import import_quiz
import html import html
from classquiz.socket_server import sio, ReturnQuestion from classquiz.socket_server import sio, ReturnQuestion
@@ -309,8 +309,17 @@ async def get_game_user_count(game_pin: int, as_string: bool = False):
return {"players": {"count": player_count}} return {"players": {"count": player_count}}
@router.get("/live/players", response_model=GameSession, tags=["live"]) class _LivePlayersReturn(BaseModel):
async def get_game_session(game_pin: int, api_key: str): # players: list[GamePlayer | None]
answers: list[GameAnswer1 | None]
players: list[GamePlayer | None]
@router.get(
"/live/players",
tags=["live"],
)
async def get_game_session(game_pin: int, api_key: str, in_array: bool = False):
user_id = await check_api_key(api_key) user_id = await check_api_key(api_key)
redis_res = await redis.get(f"game_session:{game_pin}") redis_res = await redis.get(f"game_session:{game_pin}")
if redis_res is None or user_id is None: if redis_res is None or user_id is None:
@@ -327,7 +336,14 @@ async def get_game_session(game_pin: int, api_key: str):
res = json.loads(res) res = json.loads(res)
ga_1 = GameAnswer1(id=i, answers=[GameAnswer2.parse_obj(i) for i in res]) ga_1 = GameAnswer1(id=i, answers=[GameAnswer2.parse_obj(i) for i in res])
data.answers.append(ga_1) data.answers.append(ga_1)
return data players = await redis.smembers(f"game_session:{game_pin}:players")
player_list = []
for p in players:
player_list.append(GamePlayer.parse_raw(p))
if in_array:
return [_LivePlayersReturn(answers=data.answers, players=player_list)]
else:
return _LivePlayersReturn(answers=data.answers, players=player_list)
@router.post("/live/set_question", tags=["live"]) @router.post("/live/set_question", tags=["live"])