Fix leaderboard info endpoint.

pull/993/head
Andrey 2023-12-20 04:51:20 +02:00
rodzic b84e484f67
commit 4d90055813
1 zmienionych plików z 17 dodań i 10 usunięć

Wyświetl plik

@ -1029,7 +1029,7 @@ def get_leaderboard_info(
version_number=version_number, version_number=version_number,
) )
leaderboard = ( query = (
db_session.query( db_session.query(
Leaderboard.id, Leaderboard.id,
Leaderboard.title, Leaderboard.title,
@ -1038,26 +1038,33 @@ def get_leaderboard_info(
func.max(LeaderboardScores.updated_at).label("last_update"), func.max(LeaderboardScores.updated_at).label("last_update"),
) )
.join( .join(
LeaderboardScores, LeaderboardVersion,
LeaderboardScores.leaderboard_id == Leaderboard.id, and_(
LeaderboardVersion.leaderboard_id == Leaderboard.id,
LeaderboardVersion.published == True,
),
isouter=True, isouter=True,
) )
.join( .join(
LeaderboardVersion, LeaderboardScores,
and_( and_(
LeaderboardVersion.leaderboard_id == LeaderboardScores.leaderboard_id, LeaderboardScores.leaderboard_id == Leaderboard.id,
LeaderboardVersion.version_number LeaderboardScores.leaderboard_version_number
== LeaderboardScores.leaderboard_version_number, == LeaderboardVersion.version_number,
), ),
isouter=True, isouter=True,
) )
.filter( .filter(
LeaderboardVersion.published == True, or_(
LeaderboardVersion.version_number == latest_version, LeaderboardVersion.published == None,
LeaderboardVersion.version_number == latest_version,
)
) )
.filter(Leaderboard.id == leaderboard_id) .filter(Leaderboard.id == leaderboard_id)
.group_by(Leaderboard.id, Leaderboard.title, Leaderboard.description) .group_by(Leaderboard.id, Leaderboard.title, Leaderboard.description)
).one() )
leaderboard = query.one()
return leaderboard return leaderboard