Added pagination to quiz/list-endpoint

This commit is contained in:
Mawoka
2022-08-13 18:46:01 +02:00
parent d3c3986c77
commit 4dbb3609c3
+8 -2
View File
@@ -7,6 +7,9 @@ import re
import uuid import uuid
from datetime import datetime from datetime import datetime
from random import randint from random import randint
import ormar.exceptions
from classquiz.helpers import get_meili_data, generate_spreadsheet from classquiz.helpers import get_meili_data, generate_spreadsheet
from fastapi import APIRouter, Depends, HTTPException from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import JSONResponse, StreamingResponse from fastapi.responses import JSONResponse, StreamingResponse
@@ -129,8 +132,11 @@ async def get_game_id(game_pin: str):
@router.get("/list") @router.get("/list")
async def get_quiz_list(user: User = Depends(get_current_user)): async def get_quiz_list(user: User = Depends(get_current_user), page_size: int | None = 10, page: int | None = 1):
return await Quiz.objects.filter(user_id=user.id).all() try:
return await Quiz.objects.filter(user_id=user.id).paginate(page, page_size=page_size).all()
except ormar.exceptions.QueryDefinitionError:
raise HTTPException(status_code=400, detail="Invalid page(size). page(size) have to be greater than 0.")
@router.put("/update/{quiz_id}", deprecated=True) @router.put("/update/{quiz_id}", deprecated=True)