/* API Яндекс Маркета для продавцов API Яндекс Маркета помогает продавцам автоматизировать и упростить работу с маркетплейсом. В числе возможностей интеграции: * управление каталогом товаров и витриной, * обработка заказов, * изменение настроек магазина, * получение отчетов. API version: LATEST */ // Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT. package ymclient import ( "bytes" "context" "io" "net/http" "net/url" "strings" ) // ModelsAPIService ModelsAPI service type ModelsAPIService service type ModelsAPIGetModelRequest struct { ctx context.Context ApiService *ModelsAPIService modelId int64 regionId *int64 currency *CurrencyType } // Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]). func (r ModelsAPIGetModelRequest) RegionId(regionId int64) ModelsAPIGetModelRequest { r.regionId = ®ionId return r } // Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина). func (r ModelsAPIGetModelRequest) Currency(currency CurrencyType) ModelsAPIGetModelRequest { r.currency = ¤cy return r } func (r ModelsAPIGetModelRequest) Execute() (*GetModelsResponse, *http.Response, error) { return r.ApiService.GetModelExecute(r) } /* GetModel Информация об одной модели {% include notitle [:no-translate[access]](../../_auto/method_scopes/getModel.md) %} Возвращает информацию о модели товара. Для методов `GET models`, `GET models/{modelId}` и `POST models` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество моделей, информация о которых запрошена при помощи этих методов. |**:no-translate[⚙️] Лимит:** 100 000 моделей в час| |-| @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param modelId Идентификатор модели товара. @return ModelsAPIGetModelRequest Deprecated */ func (a *ModelsAPIService) GetModel(ctx context.Context, modelId int64) ModelsAPIGetModelRequest { return ModelsAPIGetModelRequest{ ApiService: a, ctx: ctx, modelId: modelId, } } // Execute executes the request // // @return GetModelsResponse // // Deprecated func (a *ModelsAPIService) GetModelExecute(r ModelsAPIGetModelRequest) (*GetModelsResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile localVarReturnValue *GetModelsResponse ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ModelsAPIService.GetModel") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/models/{modelId}" localVarPath = strings.Replace(localVarPath, "{"+"modelId"+"}", url.PathEscape(parameterValueToString(r.modelId, "modelId")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.modelId < 0 { return localVarReturnValue, nil, reportError("modelId must be greater than 0") } if r.regionId == nil { return localVarReturnValue, nil, reportError("regionId is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "regionId", r.regionId, "", "") if r.currency != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "currency", r.currency, "", "") } // 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 } localVarHeaderParams["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, } if localVarHTTPResponse.StatusCode == 400 { var v ApiClientDataErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 401 { var v ApiUnauthorizedErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 403 { var v ApiForbiddenErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 404 { var v ApiNotFoundErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 420 { var v ApiLimitErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 500 { var v ApiServerErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v } 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 ModelsAPIGetModelOffersRequest struct { ctx context.Context ApiService *ModelsAPIService modelId int64 regionId *int64 currency *CurrencyType orderByPrice *SortOrderType count *int32 page *int32 } // Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]). func (r ModelsAPIGetModelOffersRequest) RegionId(regionId int64) ModelsAPIGetModelOffersRequest { r.regionId = ®ionId return r } // Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина). func (r ModelsAPIGetModelOffersRequest) Currency(currency CurrencyType) ModelsAPIGetModelOffersRequest { r.currency = ¤cy return r } // Направление сортировки по цене. Возможные значения: * :no-translate[`ASC`] — сортировка по возрастанию. * :no-translate[`DESC`] — сортировка по убыванию. Значение по умолчанию: предложения выводятся в произвольном порядке. func (r ModelsAPIGetModelOffersRequest) OrderByPrice(orderByPrice SortOrderType) ModelsAPIGetModelOffersRequest { r.orderByPrice = &orderByPrice return r } // Количество предложений на странице ответа. func (r ModelsAPIGetModelOffersRequest) Count(count int32) ModelsAPIGetModelOffersRequest { r.count = &count return r } // {% note warning \"Если в методе есть :no-translate[`page_token`]\" %} Используйте его вместо параметра :no-translate[`page`]. [Подробнее о типах пагинации и их использовании](:no-translate[../../concepts/pagination.md]) {% endnote %} Номер страницы результатов. Используется вместе с параметром :no-translate[`pageSize`]. :no-translate[`page`] игнорируется, если задан :no-translate[`page_token`] или :no-translate[`limit`]. func (r ModelsAPIGetModelOffersRequest) Page(page int32) ModelsAPIGetModelOffersRequest { r.page = &page return r } func (r ModelsAPIGetModelOffersRequest) Execute() (*GetModelsOffersResponse, *http.Response, error) { return r.ApiService.GetModelOffersExecute(r) } /* GetModelOffers Список предложений для одной модели {% include notitle [:no-translate[access]](../../_auto/method_scopes/getModelOffers.md) %} Возвращает информацию о первых десяти предложениях, расположенных на карточке модели. Предложения выдаются для определенного региона и располагаются в том же порядке, в котором они показываются в выдаче Маркета на карточке модели. Для групповых моделей метод не поддерживается. Идентификатор групповой модели игнорируется. Для методов `GET models/{modelId}/offers` и `POST models/offers` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество моделей, информация о которых запрошена при помощи этих методов. |**:no-translate[⚙️] Лимит:** 100 000 предложений в час| |-| @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param modelId Идентификатор модели товара. @return ModelsAPIGetModelOffersRequest Deprecated */ func (a *ModelsAPIService) GetModelOffers(ctx context.Context, modelId int64) ModelsAPIGetModelOffersRequest { return ModelsAPIGetModelOffersRequest{ ApiService: a, ctx: ctx, modelId: modelId, } } // Execute executes the request // // @return GetModelsOffersResponse // // Deprecated func (a *ModelsAPIService) GetModelOffersExecute(r ModelsAPIGetModelOffersRequest) (*GetModelsOffersResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile localVarReturnValue *GetModelsOffersResponse ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ModelsAPIService.GetModelOffers") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/models/{modelId}/offers" localVarPath = strings.Replace(localVarPath, "{"+"modelId"+"}", url.PathEscape(parameterValueToString(r.modelId, "modelId")), -1) localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.modelId < 0 { return localVarReturnValue, nil, reportError("modelId must be greater than 0") } if r.regionId == nil { return localVarReturnValue, nil, reportError("regionId is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "regionId", r.regionId, "", "") if r.currency != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "currency", r.currency, "", "") } if r.orderByPrice != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "orderByPrice", r.orderByPrice, "", "") } if r.count != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "count", r.count, "", "") } else { var defaultValue int32 = 10 r.count = &defaultValue } if r.page != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "page", r.page, "", "") } else { var defaultValue int32 = 1 r.page = &defaultValue } // 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 } localVarHeaderParams["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, } if localVarHTTPResponse.StatusCode == 400 { var v ApiClientDataErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 401 { var v ApiUnauthorizedErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 403 { var v ApiForbiddenErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 404 { var v ApiNotFoundErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 420 { var v ApiLimitErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 500 { var v ApiServerErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v } 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 ModelsAPIGetModelsRequest struct { ctx context.Context ApiService *ModelsAPIService regionId *int64 getModelsRequest *GetModelsRequest currency *CurrencyType } // Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]). func (r ModelsAPIGetModelsRequest) RegionId(regionId int64) ModelsAPIGetModelsRequest { r.regionId = ®ionId return r } func (r ModelsAPIGetModelsRequest) GetModelsRequest(getModelsRequest GetModelsRequest) ModelsAPIGetModelsRequest { r.getModelsRequest = &getModelsRequest return r } // Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина). func (r ModelsAPIGetModelsRequest) Currency(currency CurrencyType) ModelsAPIGetModelsRequest { r.currency = ¤cy return r } func (r ModelsAPIGetModelsRequest) Execute() (*GetModelsResponse, *http.Response, error) { return r.ApiService.GetModelsExecute(r) } /* GetModels Информация о нескольких моделях {% include notitle [:no-translate[access]](../../_auto/method_scopes/getModels.md) %} Возвращает информацию о моделях товаров. В одном запросе можно получить информацию не более чем о 100 моделях. Для методов `GET models`, `GET models/{modelId}` и `POST models` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество моделей, информация о которых запрошена при помощи этих методов. |**:no-translate[⚙️] Лимит:** 100 000 моделей в час| |-| @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ModelsAPIGetModelsRequest Deprecated */ func (a *ModelsAPIService) GetModels(ctx context.Context) ModelsAPIGetModelsRequest { return ModelsAPIGetModelsRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request // // @return GetModelsResponse // // Deprecated func (a *ModelsAPIService) GetModelsExecute(r ModelsAPIGetModelsRequest) (*GetModelsResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} formFiles []formFile localVarReturnValue *GetModelsResponse ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ModelsAPIService.GetModels") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/models" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.regionId == nil { return localVarReturnValue, nil, reportError("regionId is required and must be specified") } if r.getModelsRequest == nil { return localVarReturnValue, nil, reportError("getModelsRequest is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "regionId", r.regionId, "", "") if r.currency != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "currency", r.currency, "", "") } // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // 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 } // body params localVarPostBody = r.getModelsRequest 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 } localVarHeaderParams["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, } if localVarHTTPResponse.StatusCode == 400 { var v ApiClientDataErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 401 { var v ApiUnauthorizedErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 403 { var v ApiForbiddenErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 404 { var v ApiNotFoundErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 420 { var v ApiLimitErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 500 { var v ApiServerErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v } 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 ModelsAPIGetModelsOffersRequest struct { ctx context.Context ApiService *ModelsAPIService regionId *int64 getModelsRequest *GetModelsRequest currency *CurrencyType orderByPrice *SortOrderType } // Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]). func (r ModelsAPIGetModelsOffersRequest) RegionId(regionId int64) ModelsAPIGetModelsOffersRequest { r.regionId = ®ionId return r } func (r ModelsAPIGetModelsOffersRequest) GetModelsRequest(getModelsRequest GetModelsRequest) ModelsAPIGetModelsOffersRequest { r.getModelsRequest = &getModelsRequest return r } // Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина). func (r ModelsAPIGetModelsOffersRequest) Currency(currency CurrencyType) ModelsAPIGetModelsOffersRequest { r.currency = ¤cy return r } // Направление сортировки по цене. Возможные значения: * :no-translate[`ASC`] — сортировка по возрастанию. * :no-translate[`DESC`] — сортировка по убыванию. Значение по умолчанию: предложения выводятся в произвольном порядке. func (r ModelsAPIGetModelsOffersRequest) OrderByPrice(orderByPrice SortOrderType) ModelsAPIGetModelsOffersRequest { r.orderByPrice = &orderByPrice return r } func (r ModelsAPIGetModelsOffersRequest) Execute() (*GetModelsOffersResponse, *http.Response, error) { return r.ApiService.GetModelsOffersExecute(r) } /* GetModelsOffers Список предложений для нескольких моделей {% include notitle [:no-translate[access]](../../_auto/method_scopes/getModelsOffers.md) %} Возвращает информацию о первых десяти предложениях, расположенных на карточках моделей, идентификаторы которых указаны в запросе. Предложения выдаются для определенного региона и располагаются в том же порядке, в котором они показываются в выдаче Маркета на карточке модели. Для групповых моделей выдача предложений не поддерживается. Идентификаторы групповых моделей игнорируются. В одном запросе можно получить информацию о предложениях не более чем для 100 моделей. Для методов `GET models/{modelId}/offers` и `POST models/offers` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество моделей, информация о которых запрошена при помощи этих методов. |**:no-translate[⚙️] Лимит:** 100 000 предложений в час| |-| @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ModelsAPIGetModelsOffersRequest Deprecated */ func (a *ModelsAPIService) GetModelsOffers(ctx context.Context) ModelsAPIGetModelsOffersRequest { return ModelsAPIGetModelsOffersRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request // // @return GetModelsOffersResponse // // Deprecated func (a *ModelsAPIService) GetModelsOffersExecute(r ModelsAPIGetModelsOffersRequest) (*GetModelsOffersResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodPost localVarPostBody interface{} formFiles []formFile localVarReturnValue *GetModelsOffersResponse ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ModelsAPIService.GetModelsOffers") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/models/offers" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} if r.regionId == nil { return localVarReturnValue, nil, reportError("regionId is required and must be specified") } if r.getModelsRequest == nil { return localVarReturnValue, nil, reportError("getModelsRequest is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "regionId", r.regionId, "", "") if r.currency != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "currency", r.currency, "", "") } if r.orderByPrice != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "orderByPrice", r.orderByPrice, "", "") } // to determine the Content-Type header localVarHTTPContentTypes := []string{"application/json"} // 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 } // body params localVarPostBody = r.getModelsRequest 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 } localVarHeaderParams["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, } if localVarHTTPResponse.StatusCode == 400 { var v ApiClientDataErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 401 { var v ApiUnauthorizedErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 403 { var v ApiForbiddenErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 404 { var v ApiNotFoundErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 420 { var v ApiLimitErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 500 { var v ApiServerErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v } 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 ModelsAPISearchModelsRequest struct { ctx context.Context ApiService *ModelsAPIService query *string regionId *int64 currency *CurrencyType page *int32 pageSize *int32 } // Поисковый запрос по названию модели товара. func (r ModelsAPISearchModelsRequest) Query(query string) ModelsAPISearchModelsRequest { r.query = &query return r } // Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]). func (r ModelsAPISearchModelsRequest) RegionId(regionId int64) ModelsAPISearchModelsRequest { r.regionId = ®ionId return r } // Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина). func (r ModelsAPISearchModelsRequest) Currency(currency CurrencyType) ModelsAPISearchModelsRequest { r.currency = ¤cy return r } // {% note warning \"Если в методе есть :no-translate[`page_token`]\" %} Используйте его вместо параметра :no-translate[`page`]. [Подробнее о типах пагинации и их использовании](:no-translate[../../concepts/pagination.md]) {% endnote %} Номер страницы результатов. Используется вместе с параметром :no-translate[`pageSize`]. :no-translate[`page`] игнорируется, если задан :no-translate[`page_token`] или :no-translate[`limit`]. func (r ModelsAPISearchModelsRequest) Page(page int32) ModelsAPISearchModelsRequest { r.page = &page return r } // Размер страницы. Используется вместе с параметром :no-translate[`page`]. :no-translate[`pageSize`] игнорируется, если задан :no-translate[`page_token`] или :no-translate[`limit`]. func (r ModelsAPISearchModelsRequest) PageSize(pageSize int32) ModelsAPISearchModelsRequest { r.pageSize = &pageSize return r } func (r ModelsAPISearchModelsRequest) Execute() (*SearchModelsResponse, *http.Response, error) { return r.ApiService.SearchModelsExecute(r) } /* SearchModels Поиск модели товара {% include notitle [:no-translate[access]](../../_auto/method_scopes/searchModels.md) %} Возвращает информацию о моделях, удовлетворяющих заданным в запросе условиям поиска. В одном запросе можно получить информацию не более чем о 100 моделях. Для методов `GET models`, `GET models/{modelId}` и `POST models` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество моделей, информация о которых запрошена при помощи этих методов. |**:no-translate[⚙️] Лимит:** 100 000 моделей в час| |-| @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @return ModelsAPISearchModelsRequest Deprecated */ func (a *ModelsAPIService) SearchModels(ctx context.Context) ModelsAPISearchModelsRequest { return ModelsAPISearchModelsRequest{ ApiService: a, ctx: ctx, } } // Execute executes the request // // @return SearchModelsResponse // // Deprecated func (a *ModelsAPIService) SearchModelsExecute(r ModelsAPISearchModelsRequest) (*SearchModelsResponse, *http.Response, error) { var ( localVarHTTPMethod = http.MethodGet localVarPostBody interface{} formFiles []formFile localVarReturnValue *SearchModelsResponse ) localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ModelsAPIService.SearchModels") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } localVarPath := localBasePath + "/models" 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 r.regionId == nil { return localVarReturnValue, nil, reportError("regionId is required and must be specified") } parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "", "") parameterAddToHeaderOrQuery(localVarQueryParams, "regionId", r.regionId, "", "") if r.currency != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "currency", r.currency, "", "") } if r.page != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "page", r.page, "", "") } else { var defaultValue int32 = 1 r.page = &defaultValue } if r.pageSize != nil { parameterAddToHeaderOrQuery(localVarQueryParams, "pageSize", r.pageSize, "", "") } // 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 } localVarHeaderParams["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, } if localVarHTTPResponse.StatusCode == 400 { var v ApiClientDataErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 401 { var v ApiUnauthorizedErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 403 { var v ApiForbiddenErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 404 { var v ApiNotFoundErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 420 { var v ApiLimitErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } if localVarHTTPResponse.StatusCode == 500 { var v ApiServerErrorResponse err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() return localVarReturnValue, localVarHTTPResponse, newErr } newErr.error = formatErrorMessage(localVarHTTPResponse.Status, &v) newErr.model = v } 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 }