fix(v1-api): 500 when request with username
This commit is contained in:
@@ -16,7 +16,7 @@ from .router import router
|
|||||||
|
|
||||||
from fastapi import Depends, HTTPException, Query
|
from fastapi import Depends, HTTPException, Query
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from sqlmodel import select
|
from sqlmodel import col, select
|
||||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ async def download_replay(
|
|||||||
Score.beatmap_id == beatmap,
|
Score.beatmap_id == beatmap,
|
||||||
Score.user_id == user
|
Score.user_id == user
|
||||||
if type == "id" or user.isdigit()
|
if type == "id" or user.isdigit()
|
||||||
else Score.user.username == user,
|
else col(Score.user).has(username=user),
|
||||||
Score.mods == mods_,
|
Score.mods == mods_,
|
||||||
Score.gamemode == GameMode.from_int_extra(ruleset_id)
|
Score.gamemode == GameMode.from_int_extra(ruleset_id)
|
||||||
if ruleset_id is not None
|
if ruleset_id is not None
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ async def get_user_best(
|
|||||||
.where(
|
.where(
|
||||||
Score.user_id == user
|
Score.user_id == user
|
||||||
if type == "id" or user.isdigit()
|
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.gamemode == GameMode.from_int_extra(ruleset_id),
|
||||||
exists().where(col(PPBestScore.score_id) == Score.id),
|
exists().where(col(PPBestScore.score_id) == Score.id),
|
||||||
)
|
)
|
||||||
@@ -119,7 +119,7 @@ async def get_user_recent(
|
|||||||
.where(
|
.where(
|
||||||
Score.user_id == user
|
Score.user_id == user
|
||||||
if type == "id" or user.isdigit()
|
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.gamemode == GameMode.from_int_extra(ruleset_id),
|
||||||
Score.ended_at > datetime.now(UTC) - timedelta(hours=24),
|
Score.ended_at > datetime.now(UTC) - timedelta(hours=24),
|
||||||
)
|
)
|
||||||
@@ -160,7 +160,7 @@ async def get_scores(
|
|||||||
Score.beatmap_id == beatmap_id,
|
Score.beatmap_id == beatmap_id,
|
||||||
Score.user_id == user
|
Score.user_id == user
|
||||||
if type == "id" or user.isdigit()
|
if type == "id" or user.isdigit()
|
||||||
else Score.user.username == user,
|
else col(Score.user).has(username=user),
|
||||||
)
|
)
|
||||||
.options(joinedload(Score.beatmap))
|
.options(joinedload(Score.beatmap))
|
||||||
.order_by(col(Score.classic_total_score).desc())
|
.order_by(col(Score.classic_total_score).desc())
|
||||||
|
|||||||
Reference in New Issue
Block a user