Created parameter for winrate_over_time to filter on specific boardgame

This commit is contained in:
Yarne Coppens 2025-02-12 17:44:34 +01:00
parent e784a16e75
commit 4531e54e4a
2 changed files with 5 additions and 3 deletions

View file

@ -251,8 +251,8 @@ def get_winrate(player_name: str | None = None, session: Session = Depends(get_s
return statistic_to_return
@app.get('/statistics/winrate_over_time', response_model=Union[statistic_classes.TimeLineStatistic, Dict[str,statistic_classes.TimeLineStatistic]])
def get_winrate_over_time(player_name: str | None = None, day_step: int = 1, session: Session=Depends(get_session)):
statistic_to_return = statistic_creator.get_winrate_over_time(session, player_name, day_step)
def get_winrate_over_time(player_name: str | None = None, day_step: int = 1, boardgame_id: int | None = None, session: Session=Depends(get_session)):
statistic_to_return = statistic_creator.get_winrate_over_time(session, player_name, day_step, boardgame_id)
return statistic_to_return

View file

@ -374,7 +374,7 @@ def get_winrate(session: Session, player_name: str | None = None):
return statistic_to_return
def get_winrate_over_time(session: Session, player_name: str | None = None, day_step = 1) -> Dict[str,statistic_classes.TimeLineStatistic]:
def get_winrate_over_time(session: Session, player_name: str | None = None, day_step = 1, boardgame_id: int | None = None) -> Dict[str,statistic_classes.TimeLineStatistic]:
statistic_name = 'Player winrate over time'
@ -409,6 +409,8 @@ def get_winrate_over_time(session: Session, player_name: str | None = None, day_
all_playplayers = [playplayer for playplayer in wanted_player.playplayers]
all_playplayers.sort(key=lambda x: x.play.play_date)
all_playplayers = list(filter(lambda playplayer: boardgame_id == None or playplayer.play.boardgame.id == boardgame_id, all_playplayers))
timeline_dict = {}
for current_date in daterange(start_date, date.today(), day_step):