kopia lustrzana https://github.com/bugout-dev/moonstream
Deleting old versions on versionless add_scores endpoint.
rodzic
e6b75d59d9
commit
6a250fe518
|
@ -1935,3 +1935,25 @@ def get_leaderboard_version_scores(
|
|||
query = query.offset(offset)
|
||||
|
||||
return query
|
||||
|
||||
|
||||
def delete_previous_versions(
|
||||
db_session: Session,
|
||||
leaderboard_id: uuid.UUID,
|
||||
threshold_version_number: int,
|
||||
) -> int:
|
||||
"""
|
||||
Delete old leaderboard versions
|
||||
"""
|
||||
|
||||
versions_to_delete = (
|
||||
db_session.query(LeaderboardVersion)
|
||||
.filter(LeaderboardVersion.leaderboard_id == leaderboard_id)
|
||||
.filter(LeaderboardVersion.version_number < threshold_version_number)
|
||||
)
|
||||
|
||||
num_deleted = versions_to_delete.delete(synchronize_session=False)
|
||||
|
||||
db_session.commit()
|
||||
|
||||
return num_deleted
|
||||
|
|
|
@ -675,6 +675,16 @@ async def leaderboard_push_scores(
|
|||
logger.error(f"Error while updating leaderboard version: {e}")
|
||||
raise EngineHTTPException(status_code=500, detail="Internal server error")
|
||||
|
||||
try:
|
||||
actions.delete_previous_versions(
|
||||
db_session=db_session,
|
||||
leaderboard_id=leaderboard_id,
|
||||
threshold_version_number=new_version.version_number,
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Error while deleting leaderboard versions: {e}")
|
||||
raise EngineHTTPException(status_code=500, detail="Internal server error")
|
||||
|
||||
result = [
|
||||
data.LeaderboardScore(
|
||||
leaderboard_id=score["leaderboard_id"],
|
||||
|
|
Ładowanie…
Reference in New Issue