🐛 Fix Pydantic breaking changes

This commit is contained in:
Mawoka
2024-07-11 00:27:45 +02:00
parent b8aebd31ee
commit abafdd40f9
11 changed files with 91 additions and 89 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ router = APIRouter()
class SetControllerUpInput(BaseModel):
player_name: str | None
player_name: str | None = None
name: str
+2 -2
View File
@@ -50,7 +50,7 @@ class LoginSession(BaseModel):
user_id: str
step_1: set[StartLoginResponseTypes]
step_2: set[StartLoginResponseTypes]
webauthn_challenge: str | None
webauthn_challenge: str | None = None
step1_success: bool = False
@@ -58,7 +58,7 @@ class StartLoginResponse(BaseModel):
step_1: set[StartLoginResponseTypes]
step_2: set[StartLoginResponseTypes]
session_id: str
webauthn_data: None | str
webauthn_data: None | str = None
def verify_webauthn(data, fidocredentialss: list[FidoCredentials], login_session: LoginSession):
+1 -1
View File
@@ -47,7 +47,7 @@ async def get_newest_quizzes(
class SetModRatingForQuizInput(BaseModel):
rating: int | None
rating: int | None = None
@router.post("/rating/set/{quiz_id}")
+8 -6
View File
@@ -15,13 +15,14 @@ import ormar.exceptions
from classquiz.helpers import generate_spreadsheet, handle_import_from_excel
from fastapi import APIRouter, Depends, HTTPException, UploadFile, File
from fastapi.responses import JSONResponse, StreamingResponse
from pydantic import ValidationError, BaseModel, Field
from pydantic import ValidationError, BaseModel
from classquiz.auth import get_current_user
from classquiz.config import redis, settings, storage, meilisearch
from classquiz.db.models import Quiz, User, PlayGame, GameInLobby, QuizQuestion, QuizQuestionType
from classquiz.helpers.box_controller import generate_code
from classquiz.kahoot_importer.import_quiz import import_quiz
from uuid import UUID
import urllib.parse
settings = settings()
@@ -54,9 +55,9 @@ class PublicQuizResponseUser(BaseModel):
id: uuid.UUID
class PublicQuizResponse(Quiz.get_pydantic()):
class PublicQuizResponse(Quiz.get_pydantic(exclude={"questions"})):
user_id: PublicQuizResponseUser
var_questions: list[QuizQuestion] = Field(..., alias="questions")
questions: list[QuizQuestion]
likes: int
dislikes: int
views: int
@@ -143,8 +144,8 @@ async def start_quiz(
class CheckIfCaptchaEnabledResponse(BaseModel):
enabled: bool
game_mode: str | None
custom_field: str | None
game_mode: str | None = None
custom_field: str | None = None
@router.get("/play/check_captcha/{game_pin}", response_model=CheckIfCaptchaEnabledResponse)
@@ -229,7 +230,8 @@ async def export_quiz_answers(export_token: str, game_pin: str):
data = json.loads(data)
data2 = await redis.get(f"game:{game_pin}")
game_data = PlayGame.parse_raw(data2)
quiz = await Quiz.objects.get_or_none(id=game_data.quiz_id)
print(type(game_data.quiz_id))
quiz = await Quiz.objects.get_or_none(id=UUID(game_data.quiz_id))
if quiz is None:
raise HTTPException(status_code=404, detail="quiz not found")
+4 -4
View File
@@ -25,9 +25,9 @@ async def get_shares(user: User = Depends(get_current_user)) -> list[PublicQuizT
class CreateShareInput(BaseModel):
name: str | None
name: str | None = None
quiztivity: UUID
expire_in: int | None
expire_in: int | None = None
@router.post("/")
@@ -55,8 +55,8 @@ async def delete_share(uuid: UUID, user: User = Depends(get_current_user)):
class UpdateShareInput(BaseModel):
name: str | None
expire_in: int | None
name: str | None = None
expire_in: int | None = None
@router.put("/{uuid}")
+1 -1
View File
@@ -297,7 +297,7 @@ async def get_other_avatar(respo: Response, user_id: uuid.UUID):
class InternalAuthData(BaseModel):
rememberme: str
jwt: str | None
jwt: str | None = None
@router.post("/auth/internal")