Merge pull request #993 from moonstream-to/fix-leaderboard-info

Fix leaderboard info endpoint.
pull/996/head
Andrey Dolgolev 2024-01-10 16:04:33 +02:00 zatwierdzone przez GitHub
commit d8baa5b114
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
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