From 55c25bf96e18c6edfc0c5a15d456f64a7bdb8921 Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Thu, 14 Aug 2025 13:14:49 +0000 Subject: [PATCH] fix(v1-api): 500 when request with username --- app/router/v1/replay.py | 4 ++-- app/router/v1/score.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/router/v1/replay.py b/app/router/v1/replay.py index 48b858a..29e13d1 100644 --- a/app/router/v1/replay.py +++ b/app/router/v1/replay.py @@ -16,7 +16,7 @@ from .router import router from fastapi import Depends, HTTPException, Query from pydantic import BaseModel -from sqlmodel import select +from sqlmodel import col, select from sqlmodel.ext.asyncio.session import AsyncSession @@ -61,7 +61,7 @@ async def download_replay( Score.beatmap_id == beatmap, Score.user_id == user if type == "id" or user.isdigit() - else Score.user.username == user, + else col(Score.user).has(username=user), Score.mods == mods_, Score.gamemode == GameMode.from_int_extra(ruleset_id) if ruleset_id is not None diff --git a/app/router/v1/score.py b/app/router/v1/score.py index 72378a0..302a1a2 100644 --- a/app/router/v1/score.py +++ b/app/router/v1/score.py @@ -83,7 +83,7 @@ async def get_user_best( .where( Score.user_id == user if type == "id" or user.isdigit() - else Score.user.username == user, + else col(Score.user).has(username=user), Score.gamemode == GameMode.from_int_extra(ruleset_id), exists().where(col(PPBestScore.score_id) == Score.id), ) @@ -119,7 +119,7 @@ async def get_user_recent( .where( Score.user_id == user if type == "id" or user.isdigit() - else Score.user.username == user, + else col(Score.user).has(username=user), Score.gamemode == GameMode.from_int_extra(ruleset_id), Score.ended_at > datetime.now(UTC) - timedelta(hours=24), ) @@ -160,7 +160,7 @@ async def get_scores( Score.beatmap_id == beatmap_id, Score.user_id == user if type == "id" or user.isdigit() - else Score.user.username == user, + else col(Score.user).has(username=user), ) .options(joinedload(Score.beatmap)) .order_by(col(Score.classic_total_score).desc())