From e1b1d98c7a2d298ec050e18175aae46ef886bece Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Mon, 28 Jul 2025 15:18:06 +0000 Subject: [PATCH] fix(user): adjust for osu! client --- app/router/user.py | 47 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/app/router/user.py b/app/router/user.py index 56f9fc8..7317c52 100644 --- a/app/router/user.py +++ b/app/router/user.py @@ -5,7 +5,6 @@ from typing import Literal from app.database import ( User as DBUser, ) -from app.dependencies import get_current_user from app.dependencies.database import get_db from app.models.score import INT_TO_MODE from app.models.user import ( @@ -21,28 +20,6 @@ from sqlmodel.ext.asyncio.session import AsyncSession from sqlmodel.sql.expression import col -@router.get("/users/{user}/{ruleset}", response_model=ApiUser) -@router.get("/users/{user}", response_model=ApiUser) -async def get_user_info_default( - user: str, - ruleset: Literal["osu", "taiko", "fruits", "mania"] = "osu", - current_user: DBUser = Depends(get_current_user), - session: AsyncSession = Depends(get_db), -): - searched_user = ( - await session.exec( - DBUser.all_select_clause().where( - DBUser.id == int(user) - if user.isdigit() - else DBUser.name == user.removeprefix("@") - ) - ) - ).first() - if not searched_user: - raise HTTPException(404, detail="User not found") - return await convert_db_user_to_api_user(searched_user, ruleset=ruleset) - - class BatchUserResponse(BaseModel): users: list[ApiUser] @@ -52,7 +29,6 @@ class BatchUserResponse(BaseModel): async def get_users( user_ids: list[int] = Query(default_factory=list, alias="ids[]"), include_variant_statistics: bool = Query(default=False), # TODO - current_user: DBUser = Depends(get_current_user), session: AsyncSession = Depends(get_db), ): if user_ids: @@ -68,8 +44,29 @@ async def get_users( return BatchUserResponse( users=[ await convert_db_user_to_api_user( - searched_user, ruleset=INT_TO_MODE[current_user.preferred_mode].value + searched_user, ruleset=INT_TO_MODE[searched_user.preferred_mode].value ) for searched_user in searched_users ] ) + + +@router.get("/users/{user}/{ruleset}", response_model=ApiUser) +@router.get("/users/{user}", response_model=ApiUser) +async def get_user_info( + user: str, + ruleset: Literal["osu", "taiko", "fruits", "mania"] = "osu", + session: AsyncSession = Depends(get_db), +): + searched_user = ( + await session.exec( + DBUser.all_select_clause().where( + DBUser.id == int(user) + if user.isdigit() + else DBUser.name == user.removeprefix("@") + ) + ) + ).first() + if not searched_user: + raise HTTPException(404, detail="User not found") + return await convert_db_user_to_api_user(searched_user, ruleset=ruleset)