Skip to content

Commit 2cc9a60

Browse files
Merge pull request #12 from QuizCast/dev
added endpoint
2 parents 5f50c93 + 2f7b34d commit 2cc9a60

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

app/api/endpoints/users.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ async def update_user(user: user_schema.UserUpdate):
2525

2626
@router.get("/get_user/{email}", response_model=user_schema.UserResponse, dependencies=[Depends(get_current_user)])
2727
async def get_user_by_email(email: str):
28-
return user_crud.get_user_by_email(email)
28+
return user_crud.get_user_by_email(email)
29+
30+
@router.get("/get_quizHistory/{user_id}", response_model=List[user_schema.AvailableQuiz])
31+
async def get_quiz_history(user_id: int):
32+
return user_crud.get_quiz_history(user_id)

app/crud/user_crud.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,12 @@ def get_user_by_email(email: str) -> user_schema.UserResponse:
3232
return user.data[0]
3333
except Exception as e:
3434
return{"error": f"Failed to retrieve user: {str(e)}"}
35+
36+
def get_quiz_history(user_id: int) -> List[user_schema.AvailableQuiz]:
37+
try:
38+
quiz_history = supabase.table("leaderboard").select("room_key").eq("id", user_id).execute()
39+
return [user_schema.AvailableQuiz(id=user_id, room_key=quiz["room_key"]) for quiz in quiz_history.data]
40+
except Exception as e:
41+
return{"error": f"Failed to retrieve quiz history: {str(e)}"}
42+
3543

app/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
)
2929
app.middleware("http")(auth_middleware)
3030

31+
app.include_router(auth.router)
3132
app.include_router(users.router)
3233
app.include_router(quizEntry.router)
33-
app.include_router(auth.router)
3434

3535

3636
@app.get("/")

app/schemas/user_schema.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,8 @@ class UserUpdate(BaseModel):
2727
name: str
2828
email: str
2929
img_url: Optional[str] = "None"
30-
is_active: Optional[bool] = True
30+
is_active: Optional[bool] = True
31+
32+
class AvailableQuiz(BaseModel):
33+
id: int
34+
room_key: int

0 commit comments

Comments
 (0)