fix(api): 使/beatmaps/{beatmap}/score能够正常工作
This commit is contained in:
@@ -36,7 +36,7 @@ class Rank(str, Enum):
|
|||||||
|
|
||||||
class APIMod(BaseModel):
|
class APIMod(BaseModel):
|
||||||
acronym: str
|
acronym: str
|
||||||
settings: dict[str, Any] = {}
|
# settings: dict[str, Any] = {}
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/ppy/osu/blob/master/osu.Game/Rulesets/Scoring/HitResult.cs
|
# https://github.com/ppy/osu/blob/master/osu.Game/Rulesets/Scoring/HitResult.cs
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ from app.database.score import Score, ScoreResp, APIMod
|
|||||||
from app.database.beatmapset import Beatmapset
|
from app.database.beatmapset import Beatmapset
|
||||||
from app.dependencies.database import get_db
|
from app.dependencies.database import get_db
|
||||||
from app.dependencies.user import get_current_user
|
from app.dependencies.user import get_current_user
|
||||||
|
from typing import List, Optional
|
||||||
|
|
||||||
from .api_router import router
|
from .api_router import router
|
||||||
|
|
||||||
@@ -77,8 +78,8 @@ async def batch_get_beatmaps(
|
|||||||
|
|
||||||
|
|
||||||
class BeatmapScores(BaseModel):
|
class BeatmapScores(BaseModel):
|
||||||
scores: list[ScoreResp]
|
scores: List[ScoreResp]
|
||||||
userScore: ScoreResp | None
|
userScore: Optional[ScoreResp] = None
|
||||||
|
|
||||||
|
|
||||||
@router.get(
|
@router.get(
|
||||||
@@ -88,7 +89,7 @@ async def get_beatmapset_scores(
|
|||||||
beatmap: int,
|
beatmap: int,
|
||||||
legacy_only: bool = Query(None), # TODO:加入对这个参数的查询
|
legacy_only: bool = Query(None), # TODO:加入对这个参数的查询
|
||||||
mode: str = Query(None),
|
mode: str = Query(None),
|
||||||
mods: list[APIMod] = Query(None),
|
# mods: List[APIMod] = Query(None), # TODO:加入指定MOD的查询
|
||||||
type: str = Query(None),
|
type: str = Query(None),
|
||||||
current_user: DBUser = Depends(get_current_user),
|
current_user: DBUser = Depends(get_current_user),
|
||||||
db: AsyncSession = Depends(get_db),
|
db: AsyncSession = Depends(get_db),
|
||||||
@@ -102,7 +103,7 @@ async def get_beatmapset_scores(
|
|||||||
await db.exec(
|
await db.exec(
|
||||||
select(Score)
|
select(Score)
|
||||||
.where(Score.beatmap_id == beatmap)
|
.where(Score.beatmap_id == beatmap)
|
||||||
.where(Score.mods == APIMod if mods else True)
|
# .where(Score.mods == mods if mods else True)
|
||||||
)
|
)
|
||||||
).all()
|
).all()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user