mlbstats/api/api_streaks.go

302 lines
12 KiB
Go

/*
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 <https://www.gnu.org/licenses/>.
*/
/*
* 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
}