Files
Sipro-Marketplaces/pkg/api/yandex/ymclient/api_models.go
2025-08-15 11:10:28 +03:00

1209 lines
49 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
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 = &regionId
return r
}
// Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[`BYN`] — белорусский рубль. * :no-translate[`KZT`] — казахстанский тенге. * :no-translate[`RUR`] — российский рубль. * :no-translate[`UAH`] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина).
func (r ModelsAPIGetModelRequest) Currency(currency CurrencyType) ModelsAPIGetModelRequest {
r.currency = &currency
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 = &regionId
return r
}
// Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[&#x60;BYN&#x60;] — белорусский рубль. * :no-translate[&#x60;KZT&#x60;] — казахстанский тенге. * :no-translate[&#x60;RUR&#x60;] — российский рубль. * :no-translate[&#x60;UAH&#x60;] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина).
func (r ModelsAPIGetModelOffersRequest) Currency(currency CurrencyType) ModelsAPIGetModelOffersRequest {
r.currency = &currency
return r
}
// Направление сортировки по цене. Возможные значения: * :no-translate[&#x60;ASC&#x60;] — сортировка по возрастанию. * :no-translate[&#x60;DESC&#x60;] — сортировка по убыванию. Значение по умолчанию: предложения выводятся в произвольном порядке.
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 \&quot;Если в методе есть :no-translate[&#x60;page_token&#x60;]\&quot; %} Используйте его вместо параметра :no-translate[&#x60;page&#x60;]. [Подробнее о типах пагинации и их использовании](:no-translate[../../concepts/pagination.md]) {% endnote %} Номер страницы результатов. Используется вместе с параметром :no-translate[&#x60;pageSize&#x60;]. :no-translate[&#x60;page&#x60;] игнорируется, если задан :no-translate[&#x60;page_token&#x60;] или :no-translate[&#x60;limit&#x60;].
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 = &regionId
return r
}
func (r ModelsAPIGetModelsRequest) GetModelsRequest(getModelsRequest GetModelsRequest) ModelsAPIGetModelsRequest {
r.getModelsRequest = &getModelsRequest
return r
}
// Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[&#x60;BYN&#x60;] — белорусский рубль. * :no-translate[&#x60;KZT&#x60;] — казахстанский тенге. * :no-translate[&#x60;RUR&#x60;] — российский рубль. * :no-translate[&#x60;UAH&#x60;] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина).
func (r ModelsAPIGetModelsRequest) Currency(currency CurrencyType) ModelsAPIGetModelsRequest {
r.currency = &currency
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 = &regionId
return r
}
func (r ModelsAPIGetModelsOffersRequest) GetModelsRequest(getModelsRequest GetModelsRequest) ModelsAPIGetModelsOffersRequest {
r.getModelsRequest = &getModelsRequest
return r
}
// Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[&#x60;BYN&#x60;] — белорусский рубль. * :no-translate[&#x60;KZT&#x60;] — казахстанский тенге. * :no-translate[&#x60;RUR&#x60;] — российский рубль. * :no-translate[&#x60;UAH&#x60;] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина).
func (r ModelsAPIGetModelsOffersRequest) Currency(currency CurrencyType) ModelsAPIGetModelsOffersRequest {
r.currency = &currency
return r
}
// Направление сортировки по цене. Возможные значения: * :no-translate[&#x60;ASC&#x60;] — сортировка по возрастанию. * :no-translate[&#x60;DESC&#x60;] — сортировка по убыванию. Значение по умолчанию: предложения выводятся в произвольном порядке.
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 = &regionId
return r
}
// Валюта, в которой отображаются цены предложений на страницах с результатами поиска. Возможные значения: * :no-translate[&#x60;BYN&#x60;] — белорусский рубль. * :no-translate[&#x60;KZT&#x60;] — казахстанский тенге. * :no-translate[&#x60;RUR&#x60;] — российский рубль. * :no-translate[&#x60;UAH&#x60;] — украинская гривна. Значение по умолчанию: используется национальная валюта магазина (национальная валюта страны происхождения магазина).
func (r ModelsAPISearchModelsRequest) Currency(currency CurrencyType) ModelsAPISearchModelsRequest {
r.currency = &currency
return r
}
// {% note warning \&quot;Если в методе есть :no-translate[&#x60;page_token&#x60;]\&quot; %} Используйте его вместо параметра :no-translate[&#x60;page&#x60;]. [Подробнее о типах пагинации и их использовании](:no-translate[../../concepts/pagination.md]) {% endnote %} Номер страницы результатов. Используется вместе с параметром :no-translate[&#x60;pageSize&#x60;]. :no-translate[&#x60;page&#x60;] игнорируется, если задан :no-translate[&#x60;page_token&#x60;] или :no-translate[&#x60;limit&#x60;].
func (r ModelsAPISearchModelsRequest) Page(page int32) ModelsAPISearchModelsRequest {
r.page = &page
return r
}
// Размер страницы. Используется вместе с параметром :no-translate[&#x60;page&#x60;]. :no-translate[&#x60;pageSize&#x60;] игнорируется, если задан :no-translate[&#x60;page_token&#x60;] или :no-translate[&#x60;limit&#x60;].
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
}