Filter out PH from fielding stats

This commit is contained in:
Peter 2023-09-17 20:01:11 -04:00
parent 3f21f24a8a
commit af375adb68

View File

@ -1,6 +1,6 @@
import type { Game, Team } from './apiResponseTypes'
import type { Player } from './playersService'
import { MODERN_STAT_ERA_START, SITE_URL } from './utilities'
import { MODERN_STAT_ERA_START, SITE_URL, isNotUndefined } from './utilities'
// TODO make a stats object that has properties for current regular season, current post season,
// last 4 games, historical seasons, career totals
@ -43,7 +43,7 @@ interface FieldingStatRaw {
interface LegacyFieldingStat {
player: Player
team: Team
pos: 'P' | 'C' | '1B' | '2B' | '3B' | 'SS' | 'LF' | 'CF' | 'RF' | 'TOT'
pos: 'P' | 'C' | '1B' | '2B' | '3B' | 'SS' | 'LF' | 'CF' | 'RF' | 'TOT' | 'PH'
xch: number
xhit: number
error: number
@ -67,8 +67,6 @@ export async function fetchFieldingStatsBySeasonAndPlayerId(seasonNumber: number
if (fieldingStatsResponse.count === 0) return []
return fieldingStatsResponse.stats.map(normalizeFieldingStat)
}
@ -82,7 +80,9 @@ async function fetchLegacyFieldingStatsBySeasonAndPlayerId(seasonNumber: number,
if (legacyFieldingStatsResponse.count === 0) return []
return legacyFieldingStatsResponse.stats.map(makeModernFieldingStatFromLegacy)
return legacyFieldingStatsResponse.stats
.map(makeModernFieldingStatFromLegacy)
.filter(isNotUndefined)
}
export async function fetchFieldingStatsForLastFourGamesBySeasonAndPlayerId(seasonNumber: number, playerId: number): Promise<FieldingStat[]> {
@ -144,7 +144,9 @@ export function aggregateFieldingStats(fieldingStats: FieldingStat[]): FieldingS
return Object.values(fieldingStatsByPosition)
}
function makeModernFieldingStatFromLegacy(legacyStat: LegacyFieldingStat): FieldingStat {
function makeModernFieldingStatFromLegacy(legacyStat: LegacyFieldingStat): FieldingStat | undefined {
// filter out "PH" fielding stats here which used to occur when position/xchecks were loosely checked/observed
if (legacyStat.pos === 'PH') return undefined
return {
game: 'TOT',
player: legacyStat.player,