api_default.go•27.1 kB
/*
GameBrain API
GameBrain API
API version: 1.0.1
Contact: mail@gamebrain.co
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package gamebrain
import (
"bytes"
"context"
"io"
"net/http"
"net/url"
"strings"
)
// DefaultAPIService DefaultAPI service
type DefaultAPIService service
type ApiDetailRequest struct {
ctx context.Context
ApiService *DefaultAPIService
id int32
apiKey *string
}
// Your API key for authentication.
func (r ApiDetailRequest) ApiKey(apiKey string) ApiDetailRequest {
r.apiKey = &apiKey
return r
}
func (r ApiDetailRequest) Execute() (*GameResponse, *http.Response, error) {
return r.ApiService.DetailExecute(r)
}
/*
Detail Get Game Details
Get all the details about a game given its id. Details include screenshots, ratings, release dates, videos, description, tags, and much more.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param id The unique identifier of the game.
@return ApiDetailRequest
*/
func (a *DefaultAPIService) Detail(ctx context.Context, id int32) ApiDetailRequest {
return ApiDetailRequest{
ApiService: a,
ctx: ctx,
id: id,
}
}
// Execute executes the request
// @return GameResponse
func (a *DefaultAPIService) DetailExecute(r ApiDetailRequest) (*GameResponse, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GameResponse
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.Detail")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/games/{id}"
localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", url.PathEscape(parameterValueToString(r.id, "id")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.apiKey == nil {
return localVarReturnValue, nil, reportError("apiKey is required and must be specified")
}
if strlen(*r.apiKey) > 300 {
return localVarReturnValue, nil, reportError("apiKey must have less than 300 elements")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "api-key", r.apiKey, "")
// 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{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["apiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarQueryParams.Add("api-key", key)
}
}
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["headerApiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["x-api-key"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiNewsRequest struct {
ctx context.Context
ApiService *DefaultAPIService
id int32
offset *int32
limit *int32
apiKey *string
}
func (r ApiNewsRequest) Offset(offset int32) ApiNewsRequest {
r.offset = &offset
return r
}
func (r ApiNewsRequest) Limit(limit int32) ApiNewsRequest {
r.limit = &limit
return r
}
func (r ApiNewsRequest) ApiKey(apiKey string) ApiNewsRequest {
r.apiKey = &apiKey
return r
}
func (r ApiNewsRequest) Execute() (*GameNewsResponse, *http.Response, error) {
return r.ApiService.NewsExecute(r)
}
/*
News Get Game News
Get news related to the given game.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param id
@return ApiNewsRequest
*/
func (a *DefaultAPIService) News(ctx context.Context, id int32) ApiNewsRequest {
return ApiNewsRequest{
ApiService: a,
ctx: ctx,
id: id,
}
}
// Execute executes the request
// @return GameNewsResponse
func (a *DefaultAPIService) NewsExecute(r ApiNewsRequest) (*GameNewsResponse, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *GameNewsResponse
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.News")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/games/{id}/news"
localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", url.PathEscape(parameterValueToString(r.id, "id")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.offset == nil {
return localVarReturnValue, nil, reportError("offset is required and must be specified")
}
if r.limit == nil {
return localVarReturnValue, nil, reportError("limit is required and must be specified")
}
if r.apiKey == nil {
return localVarReturnValue, nil, reportError("apiKey is required and must be specified")
}
if strlen(*r.apiKey) > 300 {
return localVarReturnValue, nil, reportError("apiKey must have less than 300 elements")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "offset", r.offset, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "api-key", r.apiKey, "")
// 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{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["apiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarQueryParams.Add("api-key", key)
}
}
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["headerApiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["x-api-key"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiSearchRequest struct {
ctx context.Context
ApiService *DefaultAPIService
query *string
offset *int32
limit *int32
filters *string
sort *string
sortOrder *string
generateFilterOptions *bool
apiKey *string
}
// The search query, e.g., game name, platform, genre, or any combination.
func (r ApiSearchRequest) Query(query string) ApiSearchRequest {
r.query = &query
return r
}
// The number of results to skip before starting to collect the result set. Between 0 and 1000.
func (r ApiSearchRequest) Offset(offset int32) ApiSearchRequest {
r.offset = &offset
return r
}
// The maximum number of results to return between 1 and 10.
func (r ApiSearchRequest) Limit(limit int32) ApiSearchRequest {
r.limit = &limit
return r
}
// JSON array of filter objects to apply to the search.
func (r ApiSearchRequest) Filters(filters string) ApiSearchRequest {
r.filters = &filters
return r
}
// The field by which to sort the results, either computed_rating, price, or release_date
func (r ApiSearchRequest) Sort(sort string) ApiSearchRequest {
r.sort = &sort
return r
}
// The sort order: 'asc' for ascending or 'desc' for descending.
func (r ApiSearchRequest) SortOrder(sortOrder string) ApiSearchRequest {
r.sortOrder = &sortOrder
return r
}
// Whether to generate filter options in the response.
func (r ApiSearchRequest) GenerateFilterOptions(generateFilterOptions bool) ApiSearchRequest {
r.generateFilterOptions = &generateFilterOptions
return r
}
// Your API key for authentication.
func (r ApiSearchRequest) ApiKey(apiKey string) ApiSearchRequest {
r.apiKey = &apiKey
return r
}
func (r ApiSearchRequest) Execute() (*SearchResponse, *http.Response, error) {
return r.ApiService.SearchExecute(r)
}
/*
Search Search Games
Search hundreds of thousands of video games from over 70 platforms. The query can be a game name, a platform, a genre, or any combination
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiSearchRequest
*/
func (a *DefaultAPIService) Search(ctx context.Context) ApiSearchRequest {
return ApiSearchRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return SearchResponse
func (a *DefaultAPIService) SearchExecute(r ApiSearchRequest) (*SearchResponse, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *SearchResponse
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.Search")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/games"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.query == nil {
return localVarReturnValue, nil, reportError("query is required and must be specified")
}
if strlen(*r.query) > 300 {
return localVarReturnValue, nil, reportError("query must have less than 300 elements")
}
if r.offset == nil {
return localVarReturnValue, nil, reportError("offset is required and must be specified")
}
if r.limit == nil {
return localVarReturnValue, nil, reportError("limit is required and must be specified")
}
if r.filters == nil {
return localVarReturnValue, nil, reportError("filters is required and must be specified")
}
if strlen(*r.filters) > 3000 {
return localVarReturnValue, nil, reportError("filters must have less than 3000 elements")
}
if r.sort == nil {
return localVarReturnValue, nil, reportError("sort is required and must be specified")
}
if strlen(*r.sort) > 300 {
return localVarReturnValue, nil, reportError("sort must have less than 300 elements")
}
if r.sortOrder == nil {
return localVarReturnValue, nil, reportError("sortOrder is required and must be specified")
}
if strlen(*r.sortOrder) > 4 {
return localVarReturnValue, nil, reportError("sortOrder must have less than 4 elements")
}
if r.generateFilterOptions == nil {
return localVarReturnValue, nil, reportError("generateFilterOptions is required and must be specified")
}
if r.apiKey == nil {
return localVarReturnValue, nil, reportError("apiKey is required and must be specified")
}
if strlen(*r.apiKey) > 300 {
return localVarReturnValue, nil, reportError("apiKey must have less than 300 elements")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "offset", r.offset, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "filters", r.filters, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "sort", r.sort, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "sort-order", r.sortOrder, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "generate-filter-options", r.generateFilterOptions, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "api-key", r.apiKey, "")
// 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{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["apiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarQueryParams.Add("api-key", key)
}
}
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["headerApiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["x-api-key"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiSimilarRequest struct {
ctx context.Context
ApiService *DefaultAPIService
id int32
limit *int32
apiKey *string
}
func (r ApiSimilarRequest) Limit(limit int32) ApiSimilarRequest {
r.limit = &limit
return r
}
func (r ApiSimilarRequest) ApiKey(apiKey string) ApiSimilarRequest {
r.apiKey = &apiKey
return r
}
func (r ApiSimilarRequest) Execute() (*SimilarGamesResponse, *http.Response, error) {
return r.ApiService.SimilarExecute(r)
}
/*
Similar Get Similar Games
Get games that are similar to the given one.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param id
@return ApiSimilarRequest
*/
func (a *DefaultAPIService) Similar(ctx context.Context, id int32) ApiSimilarRequest {
return ApiSimilarRequest{
ApiService: a,
ctx: ctx,
id: id,
}
}
// Execute executes the request
// @return SimilarGamesResponse
func (a *DefaultAPIService) SimilarExecute(r ApiSimilarRequest) (*SimilarGamesResponse, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *SimilarGamesResponse
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.Similar")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/games/{id}/similar"
localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", url.PathEscape(parameterValueToString(r.id, "id")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.limit == nil {
return localVarReturnValue, nil, reportError("limit is required and must be specified")
}
if r.apiKey == nil {
return localVarReturnValue, nil, reportError("apiKey is required and must be specified")
}
if strlen(*r.apiKey) > 300 {
return localVarReturnValue, nil, reportError("apiKey must have less than 300 elements")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "api-key", r.apiKey, "")
// 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{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["apiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarQueryParams.Add("api-key", key)
}
}
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["headerApiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["x-api-key"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiSuggestRequest struct {
ctx context.Context
ApiService *DefaultAPIService
query *string
limit *int32
apiKey *string
}
// The partial search query to get suggestions for.
func (r ApiSuggestRequest) Query(query string) ApiSuggestRequest {
r.query = &query
return r
}
// The maximum number of suggestions to return.
func (r ApiSuggestRequest) Limit(limit int32) ApiSuggestRequest {
r.limit = &limit
return r
}
// Your API key for authentication.
func (r ApiSuggestRequest) ApiKey(apiKey string) ApiSuggestRequest {
r.apiKey = &apiKey
return r
}
func (r ApiSuggestRequest) Execute() (*SearchSuggestionResponse, *http.Response, error) {
return r.ApiService.SuggestExecute(r)
}
/*
Suggest Get Game Suggestions
Get game suggestions based on (partial) search queries. For example, the query 'gt' will return games like GTA.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiSuggestRequest
*/
func (a *DefaultAPIService) Suggest(ctx context.Context) ApiSuggestRequest {
return ApiSuggestRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return SearchSuggestionResponse
func (a *DefaultAPIService) SuggestExecute(r ApiSuggestRequest) (*SearchSuggestionResponse, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *SearchSuggestionResponse
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultAPIService.Suggest")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/games/suggestions"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.query == nil {
return localVarReturnValue, nil, reportError("query is required and must be specified")
}
if strlen(*r.query) > 300 {
return localVarReturnValue, nil, reportError("query must have less than 300 elements")
}
if r.limit == nil {
return localVarReturnValue, nil, reportError("limit is required and must be specified")
}
if r.apiKey == nil {
return localVarReturnValue, nil, reportError("apiKey is required and must be specified")
}
if strlen(*r.apiKey) > 300 {
return localVarReturnValue, nil, reportError("apiKey must have less than 300 elements")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "api-key", r.apiKey, "")
// 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{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["apiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarQueryParams.Add("api-key", key)
}
}
}
if r.ctx != nil {
// API Key Authentication
if auth, ok := r.ctx.Value(ContextAPIKeys).(map[string]APIKey); ok {
if apiKey, ok := auth["headerApiKey"]; ok {
var key string
if apiKey.Prefix != "" {
key = apiKey.Prefix + " " + apiKey.Key
} else {
key = apiKey.Key
}
localVarHeaderParams["x-api-key"] = key
}
}
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}