/* Copyright © 2025 filifa This program 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. This program 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 this program. If not, see . */ /* Stats API Documentation Official API for Major League Baseball. API version: 2.0.0 */ // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. package api import ( "bytes" "context" "io" "net/http" "net/url" "strings" ) // JobAPIService JobAPI service type JobAPIService service type ApiDatacastersRequest struct { ctx context.Context ApiService *JobAPIService sportId *interface{} date *interface{} fields *interface{} } // Top level organization of a sport func (r ApiDatacastersRequest) SportId(sportId interface{}) ApiDatacastersRequest { r.sportId = &sportId return r } // Date of Game. Format: YYYY-MM-DD func (r ApiDatacastersRequest) Date(date interface{}) ApiDatacastersRequest { r.date = &date return r } // Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute func (r ApiDatacastersRequest) Fields(fields interface{}) ApiDatacastersRequest { r.fields = &fields return r } func (r ApiDatacastersRequest) Execute() (*http.Response, error) { return r.ApiService.DatacastersExecute(r) } /* Datacasters Get datacaster jobs Get datacaster jobs @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ApiDatacastersRequest */ func (a *JobAPIService) Datacasters(ctx context.Context) ApiDatacastersRequest { return ApiDatacastersRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request func (a *JobAPIService) DatacastersExecute(r ApiDatacastersRequest) (*http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "JobAPIService.Datacasters") if err != nil { return nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/api/v1/jobs/datacasters" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.sportId != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "sportId", r.sportId, "", "") } if r.date != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "date", r.date, "", "") } if r.fields != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "fields", r.fields, "", "") } // 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 } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) if err != nil { return nil, err } localVarHTTPResponse, err := a.client.callAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarHTTPResponse, err } localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := &GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status, } return localVarHTTPResponse, newErr } return localVarHTTPResponse, nil } type ApiGetJobsByTypeRequest struct { ctx context.Context ApiService *JobAPIService jobType *interface{} sportId *interface{} date *interface{} fields *interface{} } // Job Type Identifier (ie. UMPR, etc..) func (r ApiGetJobsByTypeRequest) JobType(jobType interface{}) ApiGetJobsByTypeRequest { r.jobType = &jobType return r } // Top level organization of a sport func (r ApiGetJobsByTypeRequest) SportId(sportId interface{}) ApiGetJobsByTypeRequest { r.sportId = &sportId return r } // Date of Game. Format: YYYY-MM-DD func (r ApiGetJobsByTypeRequest) Date(date interface{}) ApiGetJobsByTypeRequest { r.date = &date return r } // Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute func (r ApiGetJobsByTypeRequest) Fields(fields interface{}) ApiGetJobsByTypeRequest { r.fields = &fields return r } func (r ApiGetJobsByTypeRequest) Execute() (*http.Response, error) { return r.ApiService.GetJobsByTypeExecute(r) } /* GetJobsByType Get jobs by type This endpoint allows you to pull teams @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ApiGetJobsByTypeRequest */ func (a *JobAPIService) GetJobsByType(ctx context.Context) ApiGetJobsByTypeRequest { return ApiGetJobsByTypeRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request func (a *JobAPIService) GetJobsByTypeExecute(r ApiGetJobsByTypeRequest) (*http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "JobAPIService.GetJobsByType") if err != nil { return nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/api/v1/jobs" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.jobType == nil { return nil, reportError("jobType is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "jobType", r.jobType, "", "") if r.sportId != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "sportId", r.sportId, "", "") } if r.date != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "date", r.date, "", "") } if r.fields != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "fields", r.fields, "", "") } // 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 } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) if err != nil { return nil, err } localVarHTTPResponse, err := a.client.callAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarHTTPResponse, err } localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := &GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status, } return localVarHTTPResponse, newErr } return localVarHTTPResponse, nil } type ApiOfficialScorersRequest struct { ctx context.Context ApiService *JobAPIService sportId *interface{} date *interface{} fields *interface{} } // Top level organization of a sport func (r ApiOfficialScorersRequest) SportId(sportId interface{}) ApiOfficialScorersRequest { r.sportId = &sportId return r } // Date of Game. Format: YYYY-MM-DD func (r ApiOfficialScorersRequest) Date(date interface{}) ApiOfficialScorersRequest { r.date = &date return r } // Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute func (r ApiOfficialScorersRequest) Fields(fields interface{}) ApiOfficialScorersRequest { r.fields = &fields return r } func (r ApiOfficialScorersRequest) Execute() (*http.Response, error) { return r.ApiService.OfficialScorersExecute(r) } /* OfficialScorers Get official scorers This endpoint allows you to pull teams @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ApiOfficialScorersRequest */ func (a *JobAPIService) OfficialScorers(ctx context.Context) ApiOfficialScorersRequest { return ApiOfficialScorersRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request func (a *JobAPIService) OfficialScorersExecute(r ApiOfficialScorersRequest) (*http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "JobAPIService.OfficialScorers") if err != nil { return nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/api/v1/jobs/officialScorers" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.sportId != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "sportId", r.sportId, "", "") } if r.date != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "date", r.date, "", "") } if r.fields != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "fields", r.fields, "", "") } // 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 } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) if err != nil { return nil, err } localVarHTTPResponse, err := a.client.callAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarHTTPResponse, err } localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := &GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status, } return localVarHTTPResponse, newErr } return localVarHTTPResponse, nil } type ApiUmpireScheduleRequest struct { ctx context.Context ApiService *JobAPIService umpireId interface{} season *interface{} fields *interface{} } // Season of play func (r ApiUmpireScheduleRequest) Season(season interface{}) ApiUmpireScheduleRequest { r.season = &season return r } // Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute func (r ApiUmpireScheduleRequest) Fields(fields interface{}) ApiUmpireScheduleRequest { r.fields = &fields return r } func (r ApiUmpireScheduleRequest) Execute() (*http.Response, error) { return r.ApiService.UmpireScheduleExecute(r) } /* UmpireSchedule Get umpires and associated game for umpireId This endpoint allows you to pull teams @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param umpireId A unique identifier for an umpire @return ApiUmpireScheduleRequest */ func (a *JobAPIService) UmpireSchedule(ctx context.Context, umpireId interface{}) ApiUmpireScheduleRequest { return ApiUmpireScheduleRequest{ ApiService: a, ctx: ctx, umpireId: umpireId, } } // Execute executes the request func (a *JobAPIService) UmpireScheduleExecute(r ApiUmpireScheduleRequest) (*http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "JobAPIService.UmpireSchedule") if err != nil { return nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/api/v1/jobs/umpires/games/{umpireId}" localVarPath = strings.Replace(localVarPath, "{"+"umpireId"+"}", url.PathEscape(parameterValueToString(r.umpireId, "umpireId")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.season == nil { return nil, reportError("season is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "season", r.season, "", "") if r.fields != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "fields", r.fields, "", "") } // 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 } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) if err != nil { return nil, err } localVarHTTPResponse, err := a.client.callAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarHTTPResponse, err } localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := &GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status, } return localVarHTTPResponse, newErr } return localVarHTTPResponse, nil } type ApiUmpiresRequest struct { ctx context.Context ApiService *JobAPIService sportId *interface{} date *interface{} fields *interface{} season *interface{} } // Top level organization of a sport func (r ApiUmpiresRequest) SportId(sportId interface{}) ApiUmpiresRequest { r.sportId = &sportId return r } // Date of Game. Format: YYYY-MM-DD func (r ApiUmpiresRequest) Date(date interface{}) ApiUmpiresRequest { r.date = &date return r } // Comma delimited list of specific fields to be returned. Format: topLevelNode, childNode, attribute func (r ApiUmpiresRequest) Fields(fields interface{}) ApiUmpiresRequest { r.fields = &fields return r } // Season of play func (r ApiUmpiresRequest) Season(season interface{}) ApiUmpiresRequest { r.season = &season return r } func (r ApiUmpiresRequest) Execute() (*http.Response, error) { return r.ApiService.UmpiresExecute(r) } /* Umpires Get umpires This endpoint allows you to pull teams @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ApiUmpiresRequest */ func (a *JobAPIService) Umpires(ctx context.Context) ApiUmpiresRequest { return ApiUmpiresRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request func (a *JobAPIService) UmpiresExecute(r ApiUmpiresRequest) (*http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "JobAPIService.Umpires") if err != nil { return nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/api/v1/jobs/umpires" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.sportId != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "sportId", r.sportId, "", "") } if r.date != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "date", r.date, "", "") } if r.fields != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "fields", r.fields, "", "") } if r.season != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "season", r.season, "", "") } // 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 } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles) if err != nil { return nil, err } localVarHTTPResponse, err := a.client.callAPI(req) if err != nil || localVarHTTPResponse == nil { return localVarHTTPResponse, err } localVarBody, err := io.ReadAll(localVarHTTPResponse.Body) localVarHTTPResponse.Body.Close() localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) if err != nil { return localVarHTTPResponse, err } if localVarHTTPResponse.StatusCode >= 300 { newErr := &GenericOpenAPIError{ body: localVarBody, error: localVarHTTPResponse.Status, } return localVarHTTPResponse, newErr } return localVarHTTPResponse, nil }