From a6a329fedf72e0dc49b6132650df549faccd6c7d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 14 Sep 2024 04:47:27 +0000 Subject: [PATCH] feat(metrics): opponent-adjusted team metrics --- package.json | 2 +- src/schemas.gen.ts | 138 ++++++++++++++++++++++++++++++++++++++++++++ src/services.gen.ts | 10 +++- src/types.gen.ts | 60 +++++++++++++++++++ 4 files changed, 208 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 38cb04b..9f8f260 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cfbd", - "version": "5.0.21-alpha.0", + "version": "5.1.0-alpha.0", "description": "This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.", "repository": { "type": "git", diff --git a/src/schemas.gen.ts b/src/schemas.gen.ts index 47837fc..86314c1 100644 --- a/src/schemas.gen.ts +++ b/src/schemas.gen.ts @@ -1164,6 +1164,144 @@ export const AdvancedGameStatSchema = { additionalProperties: false } as const; +export const AdjustedMetricsSchema = { + properties: { + year: { + type: 'integer', + format: 'int32' + }, + teamId: { + type: 'integer', + format: 'int32' + }, + team: { + type: 'string' + }, + conference: { + type: 'string' + }, + epa: { + properties: { + rushing: { + type: 'number', + format: 'double' + }, + passing: { + type: 'number', + format: 'double' + }, + total: { + type: 'number', + format: 'double' + } + }, + required: ['rushing', 'passing', 'total'], + type: 'object' + }, + epaAllowed: { + properties: { + rushing: { + type: 'number', + format: 'double' + }, + passing: { + type: 'number', + format: 'double' + }, + total: { + type: 'number', + format: 'double' + } + }, + required: ['rushing', 'passing', 'total'], + type: 'object' + }, + successRate: { + properties: { + passingDowns: { + type: 'number', + format: 'double' + }, + standardDowns: { + type: 'number', + format: 'double' + }, + total: { + type: 'number', + format: 'double' + } + }, + required: ['passingDowns', 'standardDowns', 'total'], + type: 'object' + }, + successRateAllowed: { + properties: { + passingDowns: { + type: 'number', + format: 'double' + }, + standardDowns: { + type: 'number', + format: 'double' + }, + total: { + type: 'number', + format: 'double' + } + }, + required: ['passingDowns', 'standardDowns', 'total'], + type: 'object' + }, + rushing: { + properties: { + openFieldYards: { + type: 'number', + format: 'double' + }, + secondLevelYards: { + type: 'number', + format: 'double' + }, + lineYards: { + type: 'number', + format: 'double' + } + }, + required: ['openFieldYards', 'secondLevelYards', 'lineYards'], + type: 'object' + }, + rushingAllowed: { + properties: { + openFieldYards: { + type: 'number', + format: 'double' + }, + secondLevelYards: { + type: 'number', + format: 'double' + }, + lineYards: { + type: 'number', + format: 'double' + } + }, + required: ['openFieldYards', 'secondLevelYards', 'lineYards'], + type: 'object' + }, + explosiveness: { + type: 'number', + format: 'double' + }, + explosivenessAllowed: { + type: 'number', + format: 'double' + } + }, + required: ['year', 'teamId', 'team', 'conference', 'epa', 'epaAllowed', 'successRate', 'successRateAllowed', 'rushing', 'rushingAllowed', 'explosiveness', 'explosivenessAllowed'], + type: 'object', + additionalProperties: false +} as const; + export const RecruitClassificationSchema = { enum: ['JUCO', 'PrepSchool', 'HighSchool'], type: 'string' diff --git a/src/services.gen.ts b/src/services.gen.ts index c6b9ffc..5a6538a 100644 --- a/src/services.gen.ts +++ b/src/services.gen.ts @@ -1,7 +1,7 @@ // This file is auto-generated by @hey-api/openapi-ts import { createClient, createConfig, type Options } from '@hey-api/client-fetch'; -import type { GetTeamsData, GetTeamsError, GetTeamsResponse, GetFbsTeamsData, GetFbsTeamsError, GetFbsTeamsResponse, GetMatchupData, GetMatchupError, GetMatchupResponse, GetRosterData, GetRosterError, GetRosterResponse, GetConferencesError, GetConferencesResponse, GetTalentData, GetTalentError, GetTalentResponse, GetVenuesError, GetVenuesResponse, GetPlayerSeasonStatsData, GetPlayerSeasonStatsError, GetPlayerSeasonStatsResponse, GetTeamStatsData, GetTeamStatsError, GetTeamStatsResponse, GetCategoriesError, GetCategoriesResponse, GetAdvancedSeasonStatsData, GetAdvancedSeasonStatsError, GetAdvancedSeasonStatsResponse, GetAdvancedGameStatsData, GetAdvancedGameStatsError, GetAdvancedGameStatsResponse, GetRecruitsData, GetRecruitsError, GetRecruitsResponse, GetTeamRecruitingRankingsData, GetTeamRecruitingRankingsError, GetTeamRecruitingRankingsResponse, GetAggregatedTeamRecruitingRatingsData, GetAggregatedTeamRecruitingRatingsError, GetAggregatedTeamRecruitingRatingsResponse, GetSpData, GetSpError, GetSpResponse, GetConferenceSpData, GetConferenceSpError, GetConferenceSpResponse, GetSrsData, GetSrsError, GetSrsResponse, GetEloData, GetEloError, GetEloResponse, GetFpiData, GetFpiError, GetFpiResponse, GetRankingsData, GetRankingsError, GetRankingsResponse, GetPlaysData, GetPlaysError, GetPlaysResponse, GetPlayTypesError, GetPlayTypesResponse, GetPlayStatsData, GetPlayStatsError, GetPlayStatsResponse, GetPlayStatTypesError, GetPlayStatTypesResponse, SearchPlayersData, SearchPlayersError, SearchPlayersResponse, GetPlayerUsageData, GetPlayerUsageError, GetPlayerUsageResponse, GetReturningProductionData, GetReturningProductionError, GetReturningProductionResponse, GetTransferPortalData, GetTransferPortalError, GetTransferPortalResponse, GetPredictedPointsData, GetPredictedPointsError, GetPredictedPointsResponse, GetPredictedPointsAddedByTeamData, GetPredictedPointsAddedByTeamError, GetPredictedPointsAddedByTeamResponse, GetPredictedPointsAddedByGameData, GetPredictedPointsAddedByGameError, GetPredictedPointsAddedByGameResponse, GetPredictedPointsAddedByPlayerGameData, GetPredictedPointsAddedByPlayerGameError, GetPredictedPointsAddedByPlayerGameResponse, GetPredictedPointsAddedByPlayerSeasonData, GetPredictedPointsAddedByPlayerSeasonError, GetPredictedPointsAddedByPlayerSeasonResponse, GetWinProbabilityData, GetWinProbabilityError, GetWinProbabilityResponse, GetPregameWinProbabilitiesData, GetPregameWinProbabilitiesError, GetPregameWinProbabilitiesResponse, GetFieldGoalExpectedPointsError, GetFieldGoalExpectedPointsResponse, GetLivePlaysData, GetLivePlaysError, GetLivePlaysResponse, GetLinesData, GetLinesError, GetLinesResponse, GetGamesData, GetGamesError, GetGamesResponse, GetGameTeamStatsData, GetGameTeamStatsError, GetGameTeamStatsResponse, GetGamePlayerStatsData, GetGamePlayerStatsError, GetGamePlayerStatsResponse, GetMediaData, GetMediaError, GetMediaResponse, GetWeatherData, GetWeatherError, GetWeatherResponse, GetRecordsData, GetRecordsError, GetRecordsResponse, GetCalendarData, GetCalendarError, GetCalendarResponse, GetScoreboardData, GetScoreboardError, GetScoreboardResponse, GetDrivesData, GetDrivesError, GetDrivesResponse, GetDraftTeamsError, GetDraftTeamsResponse, GetDraftPositionsError, GetDraftPositionsResponse, GetDraftPicksData, GetDraftPicksError, GetDraftPicksResponse, GetCoachesData, GetCoachesError, GetCoachesResponse, GetAdvancedBoxScoreData, GetAdvancedBoxScoreError, GetAdvancedBoxScoreResponse } from './types.gen'; +import type { GetTeamsData, GetTeamsError, GetTeamsResponse, GetFbsTeamsData, GetFbsTeamsError, GetFbsTeamsResponse, GetMatchupData, GetMatchupError, GetMatchupResponse, GetRosterData, GetRosterError, GetRosterResponse, GetConferencesError, GetConferencesResponse, GetTalentData, GetTalentError, GetTalentResponse, GetVenuesError, GetVenuesResponse, GetPlayerSeasonStatsData, GetPlayerSeasonStatsError, GetPlayerSeasonStatsResponse, GetTeamStatsData, GetTeamStatsError, GetTeamStatsResponse, GetCategoriesError, GetCategoriesResponse, GetAdvancedSeasonStatsData, GetAdvancedSeasonStatsError, GetAdvancedSeasonStatsResponse, GetAdvancedGameStatsData, GetAdvancedGameStatsError, GetAdvancedGameStatsResponse, GetAdjustedTeamSeasonStatsData, GetAdjustedTeamSeasonStatsError, GetAdjustedTeamSeasonStatsResponse, GetRecruitsData, GetRecruitsError, GetRecruitsResponse, GetTeamRecruitingRankingsData, GetTeamRecruitingRankingsError, GetTeamRecruitingRankingsResponse, GetAggregatedTeamRecruitingRatingsData, GetAggregatedTeamRecruitingRatingsError, GetAggregatedTeamRecruitingRatingsResponse, GetSpData, GetSpError, GetSpResponse, GetConferenceSpData, GetConferenceSpError, GetConferenceSpResponse, GetSrsData, GetSrsError, GetSrsResponse, GetEloData, GetEloError, GetEloResponse, GetFpiData, GetFpiError, GetFpiResponse, GetRankingsData, GetRankingsError, GetRankingsResponse, GetPlaysData, GetPlaysError, GetPlaysResponse, GetPlayTypesError, GetPlayTypesResponse, GetPlayStatsData, GetPlayStatsError, GetPlayStatsResponse, GetPlayStatTypesError, GetPlayStatTypesResponse, SearchPlayersData, SearchPlayersError, SearchPlayersResponse, GetPlayerUsageData, GetPlayerUsageError, GetPlayerUsageResponse, GetReturningProductionData, GetReturningProductionError, GetReturningProductionResponse, GetTransferPortalData, GetTransferPortalError, GetTransferPortalResponse, GetPredictedPointsData, GetPredictedPointsError, GetPredictedPointsResponse, GetPredictedPointsAddedByTeamData, GetPredictedPointsAddedByTeamError, GetPredictedPointsAddedByTeamResponse, GetPredictedPointsAddedByGameData, GetPredictedPointsAddedByGameError, GetPredictedPointsAddedByGameResponse, GetPredictedPointsAddedByPlayerGameData, GetPredictedPointsAddedByPlayerGameError, GetPredictedPointsAddedByPlayerGameResponse, GetPredictedPointsAddedByPlayerSeasonData, GetPredictedPointsAddedByPlayerSeasonError, GetPredictedPointsAddedByPlayerSeasonResponse, GetWinProbabilityData, GetWinProbabilityError, GetWinProbabilityResponse, GetPregameWinProbabilitiesData, GetPregameWinProbabilitiesError, GetPregameWinProbabilitiesResponse, GetFieldGoalExpectedPointsError, GetFieldGoalExpectedPointsResponse, GetLivePlaysData, GetLivePlaysError, GetLivePlaysResponse, GetLinesData, GetLinesError, GetLinesResponse, GetGamesData, GetGamesError, GetGamesResponse, GetGameTeamStatsData, GetGameTeamStatsError, GetGameTeamStatsResponse, GetGamePlayerStatsData, GetGamePlayerStatsError, GetGamePlayerStatsResponse, GetMediaData, GetMediaError, GetMediaResponse, GetWeatherData, GetWeatherError, GetWeatherResponse, GetRecordsData, GetRecordsError, GetRecordsResponse, GetCalendarData, GetCalendarError, GetCalendarResponse, GetScoreboardData, GetScoreboardError, GetScoreboardResponse, GetDrivesData, GetDrivesError, GetDrivesResponse, GetDraftTeamsError, GetDraftTeamsResponse, GetDraftPositionsError, GetDraftPositionsResponse, GetDraftPicksData, GetDraftPicksError, GetDraftPicksResponse, GetCoachesData, GetCoachesError, GetCoachesResponse, GetAdvancedBoxScoreData, GetAdvancedBoxScoreError, GetAdvancedBoxScoreResponse } from './types.gen'; export const client = createClient(createConfig({ baseUrl: 'https://apinext.collegefootballdata.com' })); @@ -101,6 +101,14 @@ export const getAdvancedGameStats = (optio url: '/stats/game/advanced' }); }; +/** + * Retrieve opponent-adjusted team season statistics + */ +export const getAdjustedTeamSeasonStats = (options?: Options) => { return (options?.client ?? client).get({ + ...options, + url: '/stats/team/season/adjusted' +}); }; + /** * Retrieves player recruiting rankings */ diff --git a/src/types.gen.ts b/src/types.gen.ts index 16c6b54..bedb4c1 100644 --- a/src/types.gen.ts +++ b/src/types.gen.ts @@ -311,6 +311,45 @@ export type AdvancedGameStat = { }; }; +export type AdjustedMetrics = { + year: number; + teamId: number; + team: string; + conference: string; + epa: { + rushing: number; + passing: number; + total: number; + }; + epaAllowed: { + rushing: number; + passing: number; + total: number; + }; + successRate: { + passingDowns: number; + standardDowns: number; + total: number; + }; + successRateAllowed: { + passingDowns: number; + standardDowns: number; + total: number; + }; + rushing: { + openFieldYards: number; + secondLevelYards: number; + lineYards: number; + }; + rushingAllowed: { + openFieldYards: number; + secondLevelYards: number; + lineYards: number; + }; + explosiveness: number; + explosivenessAllowed: number; +}; + export type RecruitClassification = 'JUCO' | 'PrepSchool' | 'HighSchool'; export type Recruit = { @@ -1544,6 +1583,27 @@ export type GetAdvancedGameStatsResponse = (Array); export type GetAdvancedGameStatsError = unknown; +export type GetAdjustedTeamSeasonStatsData = { + query?: { + /** + * Optional conference filter + */ + conference?: string; + /** + * Optional team filter + */ + team?: string; + /** + * Optional year filter + */ + year?: number; + }; +}; + +export type GetAdjustedTeamSeasonStatsResponse = (Array); + +export type GetAdjustedTeamSeasonStatsError = unknown; + export type GetRecruitsData = { query?: { /**