/* Copyright (C) 2025 filifa This file is part of mlbstats. mlbstats is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. mlbstats is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with mlbstats. If not, see . */ /* * Stats API Documentation * * Official API for Major League Baseball. * * API version: 2.0.0 * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) */ package api import ( "context" "github.com/antihax/optional" "io/ioutil" "net/http" "net/url" "scm.dairydemon.net/filifa/mlbstats/api/models" "strings" ) // Linger please var ( _ context.Context ) type MilestonesApiService service /* MilestonesApiService View available achievementStatus options - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []models.MilestoneAchievementType */ func (a *MilestonesApiService) AchievementStatuses(ctx context.Context) ([]models.MilestoneAchievementType, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue []models.MilestoneAchievementType ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/achievementStatuses" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v []models.MilestoneAchievementType err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil } /* MilestonesApiService View available milestoneDurations options - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []models.MilestoneDuration */ func (a *MilestonesApiService) MilestoneDurations(ctx context.Context) ([]models.MilestoneDuration, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue []models.MilestoneDuration ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/milestoneDurations" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v []models.MilestoneDuration err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil } /* MilestonesApiService View available milestoneLookup options - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return map[string][]interface{} */ func (a *MilestonesApiService) MilestoneLookups(ctx context.Context) (map[string][]interface{}, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue map[string][]interface{} ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/milestoneLookups" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v map[string][]interface{} err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil } /* MilestonesApiService View available milestone statistics options - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []models.MilestoneStatisticRestObject */ func (a *MilestonesApiService) MilestoneStatistics(ctx context.Context) ([]models.MilestoneStatisticRestObject, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue []models.MilestoneStatisticRestObject ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/milestoneStatistics" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v []models.MilestoneStatisticRestObject err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil } /* MilestonesApiService View available milestoneType options - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return []models.MilestoneType */ func (a *MilestonesApiService) MilestoneTypes(ctx context.Context) ([]models.MilestoneType, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue []models.MilestoneType ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/milestoneTypes" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v []models.MilestoneType err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil } /* MilestonesApiService View pending and achieved milestones. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *MilestonesApiMilestonesOpts - Optional Parameters: * @param "OrgType" (optional.Interface of OrganizationType) - Organization level. Format: T(Team), L(League), S(Sport) * @param "AchievementStatuses" (optional.Interface of []models.MilestoneAchievementType) - Comma delimited list of milestone achievement types * @param "MilestoneTypes" (optional.Interface of []models.MilestoneType) - Comma delimited list of milestone types * @param "IsLastAchievement" (optional.Bool) - Filters out milestones that have already been surpassed. * @param "MilestoneStatistics" (optional.Interface of []Statistic) - Comma delimited list of milestone statistics * @param "MilestoneValues" (optional.Interface of []int32) - Comma delimited list of milestone values * @param "PlayerIds" (optional.Interface of []int32) - A unique identifier for players * @param "TeamIds" (optional.Interface of []int32) - Comma delimited list of Unique Team identifiers * @param "LeagueIds" (optional.Interface of []int32) - Comma delimited list of Unique league identifiers * @param "StatGroup" (optional.Interface of StatGroup) - Category of statistic to return. Available types in /api/v1/statGroups * @param "Season" (optional.String) - Season of play * @param "Seasons" (optional.Interface of []string) - Comma delimited list of Seasons of play * @param "VenueIds" (optional.Interface of []int32) - Comma delimited list of Unique venue identifiers * @param "GamePks" (optional.Interface of []int32) - Comma delimited list of unique primary keys * @param "Limit" (optional.Int32) - Number of results to return * @param "Fields" (optional.Interface of []string) - Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute * @param "ShowFirsts" (optional.Bool) - True to show play first milestones, like first HR, first Save, etc @return models.MilestoneContainerRestObject */ type MilestonesApiMilestonesOpts struct { OrgType optional.Interface AchievementStatuses optional.Interface MilestoneTypes optional.Interface IsLastAchievement optional.Bool MilestoneStatistics optional.Interface MilestoneValues optional.Interface PlayerIds optional.Interface TeamIds optional.Interface LeagueIds optional.Interface StatGroup optional.Interface Season optional.String Seasons optional.Interface VenueIds optional.Interface GamePks optional.Interface Limit optional.Int32 Fields optional.Interface ShowFirsts optional.Bool } func (a *MilestonesApiService) Milestones(ctx context.Context, localVarOptionals *MilestonesApiMilestonesOpts) (models.MilestoneContainerRestObject, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue models.MilestoneContainerRestObject ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/milestones" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.OrgType.IsSet() { localVarQueryParams.Add("orgType", parameterToString(localVarOptionals.OrgType.Value(), "")) } if localVarOptionals != nil && localVarOptionals.AchievementStatuses.IsSet() { localVarQueryParams.Add("achievementStatuses", parameterToString(localVarOptionals.AchievementStatuses.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.MilestoneTypes.IsSet() { localVarQueryParams.Add("milestoneTypes", parameterToString(localVarOptionals.MilestoneTypes.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.IsLastAchievement.IsSet() { localVarQueryParams.Add("isLastAchievement", parameterToString(localVarOptionals.IsLastAchievement.Value(), "")) } if localVarOptionals != nil && localVarOptionals.MilestoneStatistics.IsSet() { localVarQueryParams.Add("milestoneStatistics", parameterToString(localVarOptionals.MilestoneStatistics.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.MilestoneValues.IsSet() { localVarQueryParams.Add("milestoneValues", parameterToString(localVarOptionals.MilestoneValues.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.PlayerIds.IsSet() { localVarQueryParams.Add("playerIds", parameterToString(localVarOptionals.PlayerIds.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.TeamIds.IsSet() { localVarQueryParams.Add("teamIds", parameterToString(localVarOptionals.TeamIds.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.LeagueIds.IsSet() { localVarQueryParams.Add("leagueIds", parameterToString(localVarOptionals.LeagueIds.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.StatGroup.IsSet() { localVarQueryParams.Add("statGroup", parameterToString(localVarOptionals.StatGroup.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Season.IsSet() { localVarQueryParams.Add("season", parameterToString(localVarOptionals.Season.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Seasons.IsSet() { localVarQueryParams.Add("seasons", parameterToString(localVarOptionals.Seasons.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.VenueIds.IsSet() { localVarQueryParams.Add("venueIds", parameterToString(localVarOptionals.VenueIds.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.GamePks.IsSet() { localVarQueryParams.Add("gamePks", parameterToString(localVarOptionals.GamePks.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.Limit.IsSet() { localVarQueryParams.Add("limit", parameterToString(localVarOptionals.Limit.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Fields.IsSet() { localVarQueryParams.Add("fields", parameterToString(localVarOptionals.Fields.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.ShowFirsts.IsSet() { localVarQueryParams.Add("showFirsts", parameterToString(localVarOptionals.ShowFirsts.Value(), "")) } // to determine the Content-Type header localVarHttpContentTypes := []string{} // set Content-Type header localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) if localVarHttpContentType != "" { localVarHeaderParams["Content-Type"] = localVarHttpContentType } // to determine the Accept header localVarHttpHeaderAccepts := []string{"*/*"} // set Accept header localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) if localVarHttpHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHttpHeaderAccept } r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err } localVarHttpResponse, err := a.client.callAPI(r) if err != nil || localVarHttpResponse == nil { return localVarReturnValue, localVarHttpResponse, err } localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) localVarHttpResponse.Body.Close() if err != nil { return localVarReturnValue, localVarHttpResponse, err } if localVarHttpResponse.StatusCode < 300 { // If we succeed, return the data, otherwise pass on to decode error. err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err == nil { return localVarReturnValue, localVarHttpResponse, err } } if localVarHttpResponse.StatusCode >= 300 { newErr := GenericSwaggerError{ body: localVarBody, error: localVarHttpResponse.Status, } if localVarHttpResponse.StatusCode == 200 { var v models.MilestoneContainerRestObject err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHttpResponse, newErr } newErr.model = v return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, newErr } return localVarReturnValue, localVarHttpResponse, nil }