/* 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 StreaksApiService service /* StreaksApiService View streaks * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *StreaksApiGetStreaksOpts - Optional Parameters: * @param "StreakOrg" (optional.Interface of OrganizationType) - * @param "StreakStat" (optional.Interface of []StreakStatEnum) - * @param "StreakSpan" (optional.Interface of StreakSpanEnum) - * @param "StreakLevel" (optional.Interface of StreakLevelEnum) - * @param "StreakThreshold" (optional.Int32) - * @param "Inverse" (optional.Bool) - * @param "StartersOnly" (optional.Bool) - * @param "StatGroup" (optional.Interface of []StatGroup) - Category of statistic to return. Available types in /api/v1/statGroups * @param "GameType" (optional.Interface of []models.GameTypeEnum) - Type of Game. Available types in /api/v1/gameTypes * @param "Season" (optional.Interface of []string) - Season of play * @param "TeamId" (optional.Interface of []int32) - Unique Team Identifier. Format: 141, 147, etc * @param "LeagueId" (optional.Interface of []int32) - Unique League Identifier * @param "SportId" (optional.Interface of []int32) - Top level organization of a sport * @param "ActiveStreak" (optional.Bool) - Whether or not a player is active * @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 "PlayerId" (optional.Interface of []int32) - A unique identifier for a player @return models.StreaksWrapperRestObject */ type StreaksApiGetStreaksOpts struct { StreakOrg optional.Interface StreakStat optional.Interface StreakSpan optional.Interface StreakLevel optional.Interface StreakThreshold optional.Int32 Inverse optional.Bool StartersOnly optional.Bool StatGroup optional.Interface GameType optional.Interface Season optional.Interface TeamId optional.Interface LeagueId optional.Interface SportId optional.Interface ActiveStreak optional.Bool Limit optional.Int32 Fields optional.Interface PlayerId optional.Interface } func (a *StreaksApiService) GetStreaks(ctx context.Context, localVarOptionals *StreaksApiGetStreaksOpts) (models.StreaksWrapperRestObject, *http.Response, error) { var ( localVarHttpMethod = strings.ToUpper("Get") localVarPostBody interface{} localVarFileName string localVarFileBytes []byte localVarReturnValue models.StreaksWrapperRestObject ) // create path and map variables localVarPath := a.client.cfg.BasePath + "/api/v1/streaks" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if localVarOptionals != nil && localVarOptionals.StreakOrg.IsSet() { localVarQueryParams.Add("streakOrg", parameterToString(localVarOptionals.StreakOrg.Value(), "")) } if localVarOptionals != nil && localVarOptionals.StreakStat.IsSet() { localVarQueryParams.Add("streakStat", parameterToString(localVarOptionals.StreakStat.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.StreakSpan.IsSet() { localVarQueryParams.Add("streakSpan", parameterToString(localVarOptionals.StreakSpan.Value(), "")) } if localVarOptionals != nil && localVarOptionals.StreakLevel.IsSet() { localVarQueryParams.Add("streakLevel", parameterToString(localVarOptionals.StreakLevel.Value(), "")) } if localVarOptionals != nil && localVarOptionals.StreakThreshold.IsSet() { localVarQueryParams.Add("streakThreshold", parameterToString(localVarOptionals.StreakThreshold.Value(), "")) } if localVarOptionals != nil && localVarOptionals.Inverse.IsSet() { localVarQueryParams.Add("inverse", parameterToString(localVarOptionals.Inverse.Value(), "")) } if localVarOptionals != nil && localVarOptionals.StartersOnly.IsSet() { localVarQueryParams.Add("startersOnly", parameterToString(localVarOptionals.StartersOnly.Value(), "")) } if localVarOptionals != nil && localVarOptionals.StatGroup.IsSet() { localVarQueryParams.Add("statGroup", parameterToString(localVarOptionals.StatGroup.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.GameType.IsSet() { localVarQueryParams.Add("gameType", parameterToString(localVarOptionals.GameType.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.Season.IsSet() { localVarQueryParams.Add("season", parameterToString(localVarOptionals.Season.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.TeamId.IsSet() { localVarQueryParams.Add("teamId", parameterToString(localVarOptionals.TeamId.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.LeagueId.IsSet() { localVarQueryParams.Add("leagueId", parameterToString(localVarOptionals.LeagueId.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.SportId.IsSet() { localVarQueryParams.Add("sportId", parameterToString(localVarOptionals.SportId.Value(), "multi")) } if localVarOptionals != nil && localVarOptionals.ActiveStreak.IsSet() { localVarQueryParams.Add("activeStreak", parameterToString(localVarOptionals.ActiveStreak.Value(), "")) } 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.PlayerId.IsSet() { localVarQueryParams.Add("playerId", parameterToString(localVarOptionals.PlayerId.Value(), "multi")) } // 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.StreaksWrapperRestObject 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 } /* StreaksApiService View streaks parameter 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 *StreaksApiService) StreakTypes(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/streaks/types" 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 }