✨ Adding live/get_question/now-endpoint
This commit is contained in:
@@ -188,3 +188,28 @@ async def get_live_player_scores(game_pin: str, api_key: str):
|
|||||||
return_arr.append({"username": username, "score": int(res[username])})
|
return_arr.append({"username": username, "score": int(res[username])})
|
||||||
return_arr = sorted(return_arr, key=lambda d: d["score"], reverse=True)
|
return_arr = sorted(return_arr, key=lambda d: d["score"], reverse=True)
|
||||||
return return_arr
|
return return_arr
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/get_question/now")
|
||||||
|
async def too_stupid_to_come_up_with_a_name(game_pin: str, api_key: str):
|
||||||
|
user_id = await check_api_key(api_key)
|
||||||
|
redis_res = await redis.get(f"game:{game_pin}")
|
||||||
|
if redis_res is None:
|
||||||
|
game_pin = await redis.get(f"game_pin:{user_id}:{game_pin}")
|
||||||
|
redis_res = await redis.get(f"game:{game_pin}")
|
||||||
|
if redis_res is None or user_id is None:
|
||||||
|
raise HTTPException(status_code=404, detail="Game not found or API key not found")
|
||||||
|
game = PlayGame.parse_raw(redis_res)
|
||||||
|
for i, question in enumerate(game.questions):
|
||||||
|
if question.type == QuizQuestionType.ABCD:
|
||||||
|
for o, answer in enumerate(question.answers):
|
||||||
|
color = "#00F007"
|
||||||
|
if not answer.right:
|
||||||
|
color = "#FF0000"
|
||||||
|
game.questions[i].answers[o] = _ABCDQuizAnswer(
|
||||||
|
right=answer.right, answer=answer.answer, color=answer.color, color_code=color
|
||||||
|
)
|
||||||
|
if game.current_question >= 0:
|
||||||
|
return [{**game.questions[game.current_question].dict(), "current_question": game.current_question}]
|
||||||
|
else:
|
||||||
|
return [{"question": {}, "current_question": game.current_question}]
|
||||||
|
|||||||
Reference in New Issue
Block a user