Add 6-week limit to stat pulls

This commit is contained in:
Cal Corum 2023-03-20 13:18:53 -05:00
parent a080ba4d9b
commit 9bf5ef70a0

36
main.py
View File

@ -1817,18 +1817,20 @@ async def v1_battingstats_get(
all_stats = all_stats.where(BattingStat.player == this_player) all_stats = all_stats.where(BattingStat.player == this_player)
start = 0 start = 1
end = Schedule.select(fn.MAX(Schedule.week)).scalar() end = Current.get(Current.season == season).week
if week_start: if week_start is not None:
start = week_start start = week_start
if week_end: if week_end is not None:
end = week_end end = min(week_end, end)
if start > end: if start > end:
db.close() db.close()
raise HTTPException(status_code=404, raise HTTPException(status_code=404,
detail=f'Start week {start} is after end week {end} - cannot pull stats') detail=f'Start week {start} is after end week {end} - cannot pull stats')
if start + 5 < end:
start = end - 5
logging.info(f'\n\nweek_start: {week_start} / week_end: {week_end} / game_num: {game_num} / ' logging.info(f'\n\nweek_start: {week_start} / week_end: {week_end} / game_num: {game_num} / '
f'start: {start} / end: {end}') f'start: {start} / end: {end}')
@ -2271,18 +2273,20 @@ async def v1_pitchingstat_get(
all_stats = all_stats.where(PitchingStat.player == this_player) all_stats = all_stats.where(PitchingStat.player == this_player)
start = 0 start = 1
end = Schedule.select(fn.MAX(Schedule.week)).scalar() end = Current.get(Current.season == season).week
if week_start: if week_start is not None:
start = week_start start = week_start
if week_end: if week_end is not None:
end = week_end end = min(week_end, end)
if start > end: if start > end:
db.close() db.close()
raise HTTPException(status_code=404, raise HTTPException(status_code=404,
detail=f'Start week {start} is after end week {end} - cannot pull stats') detail=f'Start week {start} is after end week {end} - cannot pull stats')
if start + 5 < end:
start = end - 5
all_stats = all_stats.where( all_stats = all_stats.where(
(PitchingStat.week >= start) & (PitchingStat.week <= end) (PitchingStat.week >= start) & (PitchingStat.week <= end)
@ -2629,18 +2633,20 @@ async def v1_fieldingstats_get(
all_stats = all_stats.where(BattingStat.player == this_player) all_stats = all_stats.where(BattingStat.player == this_player)
start = 0 start = 1
end = Schedule.select(fn.MAX(Schedule.week)).scalar() end = Current.get(Current.season == season).week
if week_start: if week_start is not None:
start = week_start start = week_start
if week_end: if week_end is not None:
end = week_end end = min(week_end, end)
if start > end: if start > end:
db.close() db.close()
raise HTTPException(status_code=404, raise HTTPException(status_code=404,
detail=f'Start week {start} is after end week {end} - cannot pull stats') detail=f'Start week {start} is after end week {end} - cannot pull stats')
if start + 5 < end:
start = end - 5
all_stats = all_stats.where( all_stats = all_stats.where(
(BattingStat.week >= start) & (BattingStat.week <= end) (BattingStat.week >= start) & (BattingStat.week <= end)