1209 lines
49 KiB
Go
1209 lines
49 KiB
Go
/*
|
||
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
|
||
}
|