From 33d2e095fbdb3a4aa59ceb22b4a2faec597bafc0 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Sat, 12 Mar 2022 17:44:40 +0100 Subject: [PATCH] :ambulance: Redis.get was replaced by redis.search --- classquiz/db/models.py | 13 +++++++++++-- classquiz/socket_server/__init__.py | 18 +++++++++--------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/classquiz/db/models.py b/classquiz/db/models.py index f248481..48d18d1 100644 --- a/classquiz/db/models.py +++ b/classquiz/db/models.py @@ -9,7 +9,7 @@ from . import metadata, database class User(ormar.Model): """ - The user model + The user model in the database """ id: uuid.UUID = ormar.UUID(primary_key=True, default=uuid.uuid4()) email: str = ormar.String(unique=True, max_length=100) @@ -27,7 +27,7 @@ class User(ormar.Model): class UserSession(ormar.Model): """ - The user session model + The user session model for user-sessions """ id: uuid.UUID = ormar.UUID(primary_key=True, default=uuid.uuid4()) user: uuid.UUID = ormar.ForeignKey(User) @@ -78,15 +78,24 @@ class Quiz(ormar.Model): class Token(BaseModel): + """ + For JWT + """ access_token: str token_type: str class TokenData(BaseModel): + """ + For JWT + """ email: str | None = None class PlayGame(BaseModel): + """ + For JWT + """ quiz_id: uuid.UUID | str description: str title: str diff --git a/classquiz/socket_server/__init__.py b/classquiz/socket_server/__init__.py index 22c5429..1ab1a9e 100644 --- a/classquiz/socket_server/__init__.py +++ b/classquiz/socket_server/__init__.py @@ -31,14 +31,14 @@ async def join_game(sid, data): if not resp_data["success"]: print("CAPTCHA FAILED") return - redis_res = await redis.search(f"game:{data['game_pin']}") + redis_res = await redis.get(f"game:{data['game_pin']}") if redis_res is None: await sio.emit("game_not_found", room=sid) else: session = {'game_pin': data["game_pin"], "username": data["username"], "admin": False} await sio.save_session(sid, session) await sio.emit("joined_game", redis_res, room=sid) - redis_res = (await redis.search(f"game_session:{data['game_pin']}")) + redis_res = (await redis.get(f"game_session:{data['game_pin']}")) redis_res = json.loads(redis_res) # print(redis_res) redis_res["players"].append({"username": data["username"], "sid": sid}) @@ -62,11 +62,11 @@ async def start_game(sid, data): async def register_as_admin(sid, data): game_pin = data["game_pin"] game_id = data["game_id"] - if (await redis.search(f"game_session:{game_pin}")) is None: + if (await redis.get(f"game_session:{game_pin}")) is None: await redis.set(f"game_session:{game_pin}", json.dumps({"admin": sid, "game_id": game_id, "players": []}), ex=18000) - await sio.emit("registered_as_admin", {"game_id": game_id, "game": await redis.search( + await sio.emit("registered_as_admin", {"game_id": game_id, "game": await redis.get( f"game:{data['game_pin']}")}, room=sid) async with sio.session(sid) as session: @@ -81,7 +81,7 @@ async def register_as_admin(sid, data): async def get_question_results(sid, data): session = await sio.get_session(sid) if session["admin"]: - redis_res = await redis.search(f"game_session:{session['game_pin']}:{data['question_number']}") + redis_res = await redis.get(f"game_session:{session['game_pin']}:{data['question_number']}") game_pin = session['game_pin'] await sio.emit("question_results", redis_res, room=game_pin) @@ -97,16 +97,16 @@ async def set_question_number(sid, data): @sio.event async def submit_answer(sid, data): session = await sio.get_session(sid) - redis_res = await redis.search(f"game_session:{session['game_pin']}") + redis_res = await redis.get(f"game_session:{session['game_pin']}") game_session = GameSession(**json.loads(redis_res)) - game_data = PlayGame(**json.loads(await redis.search(f"game:{session['game_pin']}"))) + game_data = PlayGame(**json.loads(await redis.get(f"game:{session['game_pin']}"))) # print(game_session) answer_right = False for answer in game_data.questions[int(data["question_index"])].answers: if answer.answer == data["answer"] and answer.right: answer_right = True break - answers = await redis.search(f"game_session:{session['game_pin']}:{data['question_index']}") + answers = await redis.get(f"game_session:{session['game_pin']}:{data['question_index']}") if answers is None: await redis.set(f"game_session:{session['game_pin']}:{data['question_index']}", json.dumps( @@ -141,7 +141,7 @@ async def submit_answer(sid, data): @sio.event async def get_game_data(sid, data): game_pin = (await sio.get_session(sid))['game_pin'] - game_data = await redis.search(f"game:{game_pin}") + game_data = await redis.get(f"game:{game_pin}") if game_data is not None: await sio.emit("game_data", json.loads(game_data), room=game_pin) # print(sid, data, "GET_GAME_DATA")