diff --git a/classquiz/routers/quiz.py b/classquiz/routers/quiz.py index 16ad00e..ec63d8e 100644 --- a/classquiz/routers/quiz.py +++ b/classquiz/routers/quiz.py @@ -14,16 +14,17 @@ from classquiz.db.models import Quiz, QuizInput, User, PlayGame from classquiz.kahoot_importer.import_quiz import import_quiz settings = settings() +imgur_regex = r"^https://i\.imgur\.com\/.{7}.(jpg|png|gif)$" +server_regex = rf"^{settings.root_address}/api/v1/storage/download/.{36}--.{36}$" router = APIRouter() @router.post("/create") async def create_quiz_lol(quiz_input: QuizInput, user: User = Depends(get_current_user)): - imgur_regex = r"^https://i\.imgur\.com\/.{7}.(jpg|png|gif)$" - server_regex = rf"^{settings.root_address}/api/v1/storage/download/.{36}--.{36}$" + for question in quiz_input.questions: - if question.image is not None: + if question.image is not "": if not re.match(imgur_regex, question.image) or not re.match(server_regex, question.image): raise HTTPException(status_code=400, detail="image url is not valid") quiz = Quiz(**quiz_input.dict(), user_id=user.id, id=uuid.uuid4()) @@ -90,6 +91,10 @@ async def get_quiz_list(user: User = Depends(get_current_user)): @router.put("/update/{quiz_id}") async def update_quiz(quiz_id: str, quiz_input: QuizInput, user: User = Depends(get_current_user)): + for question in quiz_input.questions: + if question.image is not "": + if not re.match(imgur_regex, question.image) or not re.match(server_regex, question.image): + raise HTTPException(status_code=400, detail="image url is not valid") try: quiz_id = uuid.UUID(quiz_id) except ValueError: