diff --git a/src/main.py b/src/main.py index 74480e2..0fdef2c 100644 --- a/src/main.py +++ b/src/main.py @@ -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 diff --git a/src/modules/statistic_creator.py b/src/modules/statistic_creator.py index fb577ab..b981c2b 100644 --- a/src/modules/statistic_creator.py +++ b/src/modules/statistic_creator.py @@ -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):