feat: shit shit
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
|||||||
[submodule "api/proto/v1"]
|
[submodule "api/proto/v1"]
|
||||||
path = api/proto/v1
|
path = api/proto/v1
|
||||||
url = https://git.denco.store/fakz9/Sipro-Marketplaces-Protos.git
|
url = https://git.denco.store/fakz9/Sipro-Marketplaces-Protos.git
|
||||||
|
[submodule "pkg/api/yandex/raw"]
|
||||||
|
path = pkg/api/yandex/raw
|
||||||
|
url = https://github.com/yandex-market/yandex-market-partner-api.git
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -20,20 +21,931 @@ const (
|
|||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type CalculateProductTariffsRequest struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
MarketplaceId int64 `protobuf:"varint,1,opt,name=marketplace_id,json=marketplaceId,proto3" json:"marketplace_id,omitempty"`
|
||||||
|
Parameters *CalculateProductTariffsRequest_Parameters `protobuf:"bytes,2,opt,name=parameters,proto3" json:"parameters,omitempty"`
|
||||||
|
Offers []*CalculateProductTariffsRequest_Offers `protobuf:"bytes,3,rep,name=offers,proto3" json:"offers,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) Reset() {
|
||||||
|
*x = CalculateProductTariffsRequest{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsRequest) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[0]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsRequest.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsRequest) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) GetMarketplaceId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.MarketplaceId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) GetParameters() *CalculateProductTariffsRequest_Parameters {
|
||||||
|
if x != nil {
|
||||||
|
return x.Parameters
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest) GetOffers() []*CalculateProductTariffsRequest_Offers {
|
||||||
|
if x != nil {
|
||||||
|
return x.Offers
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsResponse struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Offers []*CalculateProductTariffsResponse_Offers `protobuf:"bytes,1,rep,name=offers,proto3" json:"offers,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse) Reset() {
|
||||||
|
*x = CalculateProductTariffsResponse{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[1]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsResponse) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[1]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsResponse.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse) GetOffers() []*CalculateProductTariffsResponse_Offers {
|
||||||
|
if x != nil {
|
||||||
|
return x.Offers
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductsRequest struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
MarketplaceId int64 `protobuf:"varint,1,opt,name=marketplace_id,json=marketplaceId,proto3" json:"marketplace_id,omitempty"`
|
||||||
|
OfferIds []string `protobuf:"bytes,2,rep,name=offer_ids,json=offerIds,proto3" json:"offer_ids,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsRequest) Reset() {
|
||||||
|
*x = GetProductsRequest{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[2]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsRequest) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetProductsRequest) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetProductsRequest) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[2]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetProductsRequest.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetProductsRequest) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsRequest) GetMarketplaceId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.MarketplaceId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsRequest) GetOfferIds() []string {
|
||||||
|
if x != nil {
|
||||||
|
return x.OfferIds
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductsResponse struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Offers []*GetProductsResponse_Offer `protobuf:"bytes,1,rep,name=offers,proto3" json:"offers,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse) Reset() {
|
||||||
|
*x = GetProductsResponse{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[3]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetProductsResponse) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[3]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetProductsResponse.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetProductsResponse) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{3}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse) GetOffers() []*GetProductsResponse_Offer {
|
||||||
|
if x != nil {
|
||||||
|
return x.Offers
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsRequest_Offers struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
CategoryId int64 `protobuf:"varint,1,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
|
||||||
|
Price int64 `protobuf:"varint,2,opt,name=price,proto3" json:"price,omitempty"`
|
||||||
|
Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
|
||||||
|
Width int64 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"`
|
||||||
|
Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
|
||||||
|
Weight int64 `protobuf:"varint,6,opt,name=weight,proto3" json:"weight,omitempty"`
|
||||||
|
Quantity int64 `protobuf:"varint,7,opt,name=quantity,proto3" json:"quantity,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) Reset() {
|
||||||
|
*x = CalculateProductTariffsRequest_Offers{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[4]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsRequest_Offers) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[4]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsRequest_Offers.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsRequest_Offers) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{0, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetCategoryId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CategoryId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetPrice() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Price
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetLength() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Length
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetWidth() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Width
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetHeight() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Height
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetWeight() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Weight
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Offers) GetQuantity() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Quantity
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsRequest_Parameters struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
CampaignId int64 `protobuf:"varint,1,opt,name=campaign_id,json=campaignId,proto3" json:"campaign_id,omitempty"`
|
||||||
|
SellingProgram string `protobuf:"bytes,2,opt,name=selling_program,json=sellingProgram,proto3" json:"selling_program,omitempty"`
|
||||||
|
Frequency string `protobuf:"bytes,3,opt,name=frequency,proto3" json:"frequency,omitempty"`
|
||||||
|
Currency string `protobuf:"bytes,4,opt,name=currency,proto3" json:"currency,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) Reset() {
|
||||||
|
*x = CalculateProductTariffsRequest_Parameters{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[5]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsRequest_Parameters) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[5]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsRequest_Parameters.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsRequest_Parameters) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{0, 1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) GetCampaignId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CampaignId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) GetSellingProgram() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.SellingProgram
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) GetFrequency() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Frequency
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsRequest_Parameters) GetCurrency() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Currency
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsResponse_Offer struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
CategoryId int64 `protobuf:"varint,1,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"`
|
||||||
|
Price int64 `protobuf:"varint,2,opt,name=price,proto3" json:"price,omitempty"`
|
||||||
|
Length int64 `protobuf:"varint,3,opt,name=length,proto3" json:"length,omitempty"`
|
||||||
|
Width int64 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"`
|
||||||
|
Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"`
|
||||||
|
Weight int64 `protobuf:"varint,6,opt,name=weight,proto3" json:"weight,omitempty"`
|
||||||
|
Quantity int64 `protobuf:"varint,7,opt,name=quantity,proto3" json:"quantity,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) Reset() {
|
||||||
|
*x = CalculateProductTariffsResponse_Offer{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[6]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsResponse_Offer) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[6]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsResponse_Offer.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsResponse_Offer) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{1, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetCategoryId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CategoryId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetPrice() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Price
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetLength() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Length
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetWidth() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Width
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetHeight() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Height
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetWeight() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Weight
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offer) GetQuantity() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Quantity
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsResponse_Parameter struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
|
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Parameter) Reset() {
|
||||||
|
*x = CalculateProductTariffsResponse_Parameter{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[7]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Parameter) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsResponse_Parameter) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Parameter) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[7]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsResponse_Parameter.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsResponse_Parameter) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{1, 1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Parameter) GetName() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Name
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Parameter) GetValue() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Value
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsResponse_Tariff struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
|
||||||
|
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"`
|
||||||
|
Currency string `protobuf:"bytes,3,opt,name=currency,proto3" json:"currency,omitempty"`
|
||||||
|
Parameters []*CalculateProductTariffsResponse_Parameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) Reset() {
|
||||||
|
*x = CalculateProductTariffsResponse_Tariff{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[8]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsResponse_Tariff) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[8]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsResponse_Tariff.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsResponse_Tariff) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{1, 2}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) GetType() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Type
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) GetAmount() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Amount
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) GetCurrency() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Currency
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Tariff) GetParameters() []*CalculateProductTariffsResponse_Parameter {
|
||||||
|
if x != nil {
|
||||||
|
return x.Parameters
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type CalculateProductTariffsResponse_Offers struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Offer *CalculateProductTariffsResponse_Offer `protobuf:"bytes,1,opt,name=offer,proto3" json:"offer,omitempty"`
|
||||||
|
Tariffs []*CalculateProductTariffsResponse_Tariff `protobuf:"bytes,2,rep,name=tariffs,proto3" json:"tariffs,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offers) Reset() {
|
||||||
|
*x = CalculateProductTariffsResponse_Offers{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[9]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offers) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*CalculateProductTariffsResponse_Offers) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offers) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[9]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use CalculateProductTariffsResponse_Offers.ProtoReflect.Descriptor instead.
|
||||||
|
func (*CalculateProductTariffsResponse_Offers) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{1, 3}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offers) GetOffer() *CalculateProductTariffsResponse_Offer {
|
||||||
|
if x != nil {
|
||||||
|
return x.Offer
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CalculateProductTariffsResponse_Offers) GetTariffs() []*CalculateProductTariffsResponse_Tariff {
|
||||||
|
if x != nil {
|
||||||
|
return x.Tariffs
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductsResponse_Offer struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
MarketCategoryId int64 `protobuf:"varint,1,opt,name=market_category_id,json=marketCategoryId,proto3" json:"market_category_id,omitempty"`
|
||||||
|
WeightDimensions *GetProductsResponse_Offer_WeightDimensions `protobuf:"bytes,2,opt,name=weight_dimensions,json=weightDimensions,proto3" json:"weight_dimensions,omitempty"`
|
||||||
|
BasicPrice *GetProductsResponse_Offer_BasicPrice `protobuf:"bytes,3,opt,name=basic_price,json=basicPrice,proto3" json:"basic_price,omitempty"`
|
||||||
|
OfferId string `protobuf:"bytes,4,opt,name=offer_id,json=offerId,proto3" json:"offer_id,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) Reset() {
|
||||||
|
*x = GetProductsResponse_Offer{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[10]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetProductsResponse_Offer) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[10]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetProductsResponse_Offer.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetProductsResponse_Offer) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{3, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) GetMarketCategoryId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.MarketCategoryId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) GetWeightDimensions() *GetProductsResponse_Offer_WeightDimensions {
|
||||||
|
if x != nil {
|
||||||
|
return x.WeightDimensions
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) GetBasicPrice() *GetProductsResponse_Offer_BasicPrice {
|
||||||
|
if x != nil {
|
||||||
|
return x.BasicPrice
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer) GetOfferId() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.OfferId
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductsResponse_Offer_WeightDimensions struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Length float32 `protobuf:"fixed32,1,opt,name=length,proto3" json:"length,omitempty"`
|
||||||
|
Width float32 `protobuf:"fixed32,2,opt,name=width,proto3" json:"width,omitempty"`
|
||||||
|
Height float32 `protobuf:"fixed32,3,opt,name=height,proto3" json:"height,omitempty"`
|
||||||
|
Weight float32 `protobuf:"fixed32,4,opt,name=weight,proto3" json:"weight,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) Reset() {
|
||||||
|
*x = GetProductsResponse_Offer_WeightDimensions{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[11]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetProductsResponse_Offer_WeightDimensions) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[11]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetProductsResponse_Offer_WeightDimensions.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetProductsResponse_Offer_WeightDimensions) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{3, 0, 0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) GetLength() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Length
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) GetWidth() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Width
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) GetHeight() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Height
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_WeightDimensions) GetWeight() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Weight
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetProductsResponse_Offer_BasicPrice struct {
|
||||||
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
|
Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_BasicPrice) Reset() {
|
||||||
|
*x = GetProductsResponse_Offer_BasicPrice{}
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[12]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_BasicPrice) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*GetProductsResponse_Offer_BasicPrice) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_BasicPrice) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_yandexmarket_products_proto_msgTypes[12]
|
||||||
|
if x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use GetProductsResponse_Offer_BasicPrice.ProtoReflect.Descriptor instead.
|
||||||
|
func (*GetProductsResponse_Offer_BasicPrice) Descriptor() ([]byte, []int) {
|
||||||
|
return file_yandexmarket_products_proto_rawDescGZIP(), []int{3, 0, 1}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *GetProductsResponse_Offer_BasicPrice) GetValue() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Value
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
var File_yandexmarket_products_proto protoreflect.FileDescriptor
|
var File_yandexmarket_products_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
const file_yandexmarket_products_proto_rawDesc = "" +
|
const file_yandexmarket_products_proto_rawDesc = "" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"\x1byandexmarket/products.proto\x12\x15yandexmarket.products2\x11\n" +
|
"\x1byandexmarket/products.proto\x12\x15yandexmarket.products\"\xce\x04\n" +
|
||||||
"\x0fProductsServiceB\x19Z\x17./yandexmarket/productsb\x06proto3"
|
"\x1eCalculateProductTariffsRequest\x12%\n" +
|
||||||
|
"\x0emarketplace_id\x18\x01 \x01(\x03R\rmarketplaceId\x12`\n" +
|
||||||
|
"\n" +
|
||||||
|
"parameters\x18\x02 \x01(\v2@.yandexmarket.products.CalculateProductTariffsRequest.ParametersR\n" +
|
||||||
|
"parameters\x12T\n" +
|
||||||
|
"\x06offers\x18\x03 \x03(\v2<.yandexmarket.products.CalculateProductTariffsRequest.OffersR\x06offers\x1a\xb9\x01\n" +
|
||||||
|
"\x06Offers\x12\x1f\n" +
|
||||||
|
"\vcategory_id\x18\x01 \x01(\x03R\n" +
|
||||||
|
"categoryId\x12\x14\n" +
|
||||||
|
"\x05price\x18\x02 \x01(\x03R\x05price\x12\x16\n" +
|
||||||
|
"\x06length\x18\x03 \x01(\x03R\x06length\x12\x14\n" +
|
||||||
|
"\x05width\x18\x04 \x01(\x03R\x05width\x12\x16\n" +
|
||||||
|
"\x06height\x18\x05 \x01(\x03R\x06height\x12\x16\n" +
|
||||||
|
"\x06weight\x18\x06 \x01(\x03R\x06weight\x12\x1a\n" +
|
||||||
|
"\bquantity\x18\a \x01(\x03R\bquantity\x1a\x90\x01\n" +
|
||||||
|
"\n" +
|
||||||
|
"Parameters\x12\x1f\n" +
|
||||||
|
"\vcampaign_id\x18\x01 \x01(\x03R\n" +
|
||||||
|
"campaignId\x12'\n" +
|
||||||
|
"\x0fselling_program\x18\x02 \x01(\tR\x0esellingProgram\x12\x1c\n" +
|
||||||
|
"\tfrequency\x18\x03 \x01(\tR\tfrequency\x12\x1a\n" +
|
||||||
|
"\bcurrency\x18\x04 \x01(\tR\bcurrency\"\xd7\x05\n" +
|
||||||
|
"\x1fCalculateProductTariffsResponse\x12U\n" +
|
||||||
|
"\x06offers\x18\x01 \x03(\v2=.yandexmarket.products.CalculateProductTariffsResponse.OffersR\x06offers\x1a\xb8\x01\n" +
|
||||||
|
"\x05Offer\x12\x1f\n" +
|
||||||
|
"\vcategory_id\x18\x01 \x01(\x03R\n" +
|
||||||
|
"categoryId\x12\x14\n" +
|
||||||
|
"\x05price\x18\x02 \x01(\x03R\x05price\x12\x16\n" +
|
||||||
|
"\x06length\x18\x03 \x01(\x03R\x06length\x12\x14\n" +
|
||||||
|
"\x05width\x18\x04 \x01(\x03R\x05width\x12\x16\n" +
|
||||||
|
"\x06height\x18\x05 \x01(\x03R\x06height\x12\x16\n" +
|
||||||
|
"\x06weight\x18\x06 \x01(\x03R\x06weight\x12\x1a\n" +
|
||||||
|
"\bquantity\x18\a \x01(\x03R\bquantity\x1a5\n" +
|
||||||
|
"\tParameter\x12\x12\n" +
|
||||||
|
"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
|
||||||
|
"\x05value\x18\x02 \x01(\tR\x05value\x1a\xb2\x01\n" +
|
||||||
|
"\x06Tariff\x12\x12\n" +
|
||||||
|
"\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n" +
|
||||||
|
"\x06amount\x18\x02 \x01(\x03R\x06amount\x12\x1a\n" +
|
||||||
|
"\bcurrency\x18\x03 \x01(\tR\bcurrency\x12`\n" +
|
||||||
|
"\n" +
|
||||||
|
"parameters\x18\x04 \x03(\v2@.yandexmarket.products.CalculateProductTariffsResponse.ParameterR\n" +
|
||||||
|
"parameters\x1a\xb5\x01\n" +
|
||||||
|
"\x06Offers\x12R\n" +
|
||||||
|
"\x05offer\x18\x01 \x01(\v2<.yandexmarket.products.CalculateProductTariffsResponse.OfferR\x05offer\x12W\n" +
|
||||||
|
"\atariffs\x18\x02 \x03(\v2=.yandexmarket.products.CalculateProductTariffsResponse.TariffR\atariffs\"X\n" +
|
||||||
|
"\x12GetProductsRequest\x12%\n" +
|
||||||
|
"\x0emarketplace_id\x18\x01 \x01(\x03R\rmarketplaceId\x12\x1b\n" +
|
||||||
|
"\toffer_ids\x18\x02 \x03(\tR\bofferIds\"\x96\x04\n" +
|
||||||
|
"\x13GetProductsResponse\x12H\n" +
|
||||||
|
"\x06offers\x18\x01 \x03(\v20.yandexmarket.products.GetProductsResponse.OfferR\x06offers\x1a\xb4\x03\n" +
|
||||||
|
"\x05Offer\x12,\n" +
|
||||||
|
"\x12market_category_id\x18\x01 \x01(\x03R\x10marketCategoryId\x12n\n" +
|
||||||
|
"\x11weight_dimensions\x18\x02 \x01(\v2A.yandexmarket.products.GetProductsResponse.Offer.WeightDimensionsR\x10weightDimensions\x12\\\n" +
|
||||||
|
"\vbasic_price\x18\x03 \x01(\v2;.yandexmarket.products.GetProductsResponse.Offer.BasicPriceR\n" +
|
||||||
|
"basicPrice\x12\x19\n" +
|
||||||
|
"\boffer_id\x18\x04 \x01(\tR\aofferId\x1ap\n" +
|
||||||
|
"\x10WeightDimensions\x12\x16\n" +
|
||||||
|
"\x06length\x18\x01 \x01(\x02R\x06length\x12\x14\n" +
|
||||||
|
"\x05width\x18\x02 \x01(\x02R\x05width\x12\x16\n" +
|
||||||
|
"\x06height\x18\x03 \x01(\x02R\x06height\x12\x16\n" +
|
||||||
|
"\x06weight\x18\x04 \x01(\x02R\x06weight\x1a\"\n" +
|
||||||
|
"\n" +
|
||||||
|
"BasicPrice\x12\x14\n" +
|
||||||
|
"\x05value\x18\x01 \x01(\x02R\x05value2\x86\x02\n" +
|
||||||
|
"\x0fProductsService\x12\x8a\x01\n" +
|
||||||
|
"\x17CalculateProductTariffs\x125.yandexmarket.products.CalculateProductTariffsRequest\x1a6.yandexmarket.products.CalculateProductTariffsResponse0\x01\x12f\n" +
|
||||||
|
"\vGetProducts\x12).yandexmarket.products.GetProductsRequest\x1a*.yandexmarket.products.GetProductsResponse0\x01B\x19Z\x17./yandexmarket/productsb\x06proto3"
|
||||||
|
|
||||||
var file_yandexmarket_products_proto_goTypes = []any{}
|
var (
|
||||||
|
file_yandexmarket_products_proto_rawDescOnce sync.Once
|
||||||
|
file_yandexmarket_products_proto_rawDescData []byte
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_yandexmarket_products_proto_rawDescGZIP() []byte {
|
||||||
|
file_yandexmarket_products_proto_rawDescOnce.Do(func() {
|
||||||
|
file_yandexmarket_products_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandexmarket_products_proto_rawDesc), len(file_yandexmarket_products_proto_rawDesc)))
|
||||||
|
})
|
||||||
|
return file_yandexmarket_products_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_yandexmarket_products_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
|
||||||
|
var file_yandexmarket_products_proto_goTypes = []any{
|
||||||
|
(*CalculateProductTariffsRequest)(nil), // 0: yandexmarket.products.CalculateProductTariffsRequest
|
||||||
|
(*CalculateProductTariffsResponse)(nil), // 1: yandexmarket.products.CalculateProductTariffsResponse
|
||||||
|
(*GetProductsRequest)(nil), // 2: yandexmarket.products.GetProductsRequest
|
||||||
|
(*GetProductsResponse)(nil), // 3: yandexmarket.products.GetProductsResponse
|
||||||
|
(*CalculateProductTariffsRequest_Offers)(nil), // 4: yandexmarket.products.CalculateProductTariffsRequest.Offers
|
||||||
|
(*CalculateProductTariffsRequest_Parameters)(nil), // 5: yandexmarket.products.CalculateProductTariffsRequest.Parameters
|
||||||
|
(*CalculateProductTariffsResponse_Offer)(nil), // 6: yandexmarket.products.CalculateProductTariffsResponse.Offer
|
||||||
|
(*CalculateProductTariffsResponse_Parameter)(nil), // 7: yandexmarket.products.CalculateProductTariffsResponse.Parameter
|
||||||
|
(*CalculateProductTariffsResponse_Tariff)(nil), // 8: yandexmarket.products.CalculateProductTariffsResponse.Tariff
|
||||||
|
(*CalculateProductTariffsResponse_Offers)(nil), // 9: yandexmarket.products.CalculateProductTariffsResponse.Offers
|
||||||
|
(*GetProductsResponse_Offer)(nil), // 10: yandexmarket.products.GetProductsResponse.Offer
|
||||||
|
(*GetProductsResponse_Offer_WeightDimensions)(nil), // 11: yandexmarket.products.GetProductsResponse.Offer.WeightDimensions
|
||||||
|
(*GetProductsResponse_Offer_BasicPrice)(nil), // 12: yandexmarket.products.GetProductsResponse.Offer.BasicPrice
|
||||||
|
}
|
||||||
var file_yandexmarket_products_proto_depIdxs = []int32{
|
var file_yandexmarket_products_proto_depIdxs = []int32{
|
||||||
0, // [0:0] is the sub-list for method output_type
|
5, // 0: yandexmarket.products.CalculateProductTariffsRequest.parameters:type_name -> yandexmarket.products.CalculateProductTariffsRequest.Parameters
|
||||||
0, // [0:0] is the sub-list for method input_type
|
4, // 1: yandexmarket.products.CalculateProductTariffsRequest.offers:type_name -> yandexmarket.products.CalculateProductTariffsRequest.Offers
|
||||||
0, // [0:0] is the sub-list for extension type_name
|
9, // 2: yandexmarket.products.CalculateProductTariffsResponse.offers:type_name -> yandexmarket.products.CalculateProductTariffsResponse.Offers
|
||||||
0, // [0:0] is the sub-list for extension extendee
|
10, // 3: yandexmarket.products.GetProductsResponse.offers:type_name -> yandexmarket.products.GetProductsResponse.Offer
|
||||||
0, // [0:0] is the sub-list for field type_name
|
7, // 4: yandexmarket.products.CalculateProductTariffsResponse.Tariff.parameters:type_name -> yandexmarket.products.CalculateProductTariffsResponse.Parameter
|
||||||
|
6, // 5: yandexmarket.products.CalculateProductTariffsResponse.Offers.offer:type_name -> yandexmarket.products.CalculateProductTariffsResponse.Offer
|
||||||
|
8, // 6: yandexmarket.products.CalculateProductTariffsResponse.Offers.tariffs:type_name -> yandexmarket.products.CalculateProductTariffsResponse.Tariff
|
||||||
|
11, // 7: yandexmarket.products.GetProductsResponse.Offer.weight_dimensions:type_name -> yandexmarket.products.GetProductsResponse.Offer.WeightDimensions
|
||||||
|
12, // 8: yandexmarket.products.GetProductsResponse.Offer.basic_price:type_name -> yandexmarket.products.GetProductsResponse.Offer.BasicPrice
|
||||||
|
0, // 9: yandexmarket.products.ProductsService.CalculateProductTariffs:input_type -> yandexmarket.products.CalculateProductTariffsRequest
|
||||||
|
2, // 10: yandexmarket.products.ProductsService.GetProducts:input_type -> yandexmarket.products.GetProductsRequest
|
||||||
|
1, // 11: yandexmarket.products.ProductsService.CalculateProductTariffs:output_type -> yandexmarket.products.CalculateProductTariffsResponse
|
||||||
|
3, // 12: yandexmarket.products.ProductsService.GetProducts:output_type -> yandexmarket.products.GetProductsResponse
|
||||||
|
11, // [11:13] is the sub-list for method output_type
|
||||||
|
9, // [9:11] is the sub-list for method input_type
|
||||||
|
9, // [9:9] is the sub-list for extension type_name
|
||||||
|
9, // [9:9] is the sub-list for extension extendee
|
||||||
|
0, // [0:9] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_yandexmarket_products_proto_init() }
|
func init() { file_yandexmarket_products_proto_init() }
|
||||||
@@ -47,12 +959,13 @@ func file_yandexmarket_products_proto_init() {
|
|||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandexmarket_products_proto_rawDesc), len(file_yandexmarket_products_proto_rawDesc)),
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandexmarket_products_proto_rawDesc), len(file_yandexmarket_products_proto_rawDesc)),
|
||||||
NumEnums: 0,
|
NumEnums: 0,
|
||||||
NumMessages: 0,
|
NumMessages: 13,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
},
|
},
|
||||||
GoTypes: file_yandexmarket_products_proto_goTypes,
|
GoTypes: file_yandexmarket_products_proto_goTypes,
|
||||||
DependencyIndexes: file_yandexmarket_products_proto_depIdxs,
|
DependencyIndexes: file_yandexmarket_products_proto_depIdxs,
|
||||||
|
MessageInfos: file_yandexmarket_products_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_yandexmarket_products_proto = out.File
|
File_yandexmarket_products_proto = out.File
|
||||||
file_yandexmarket_products_proto_goTypes = nil
|
file_yandexmarket_products_proto_goTypes = nil
|
||||||
|
|||||||
@@ -7,7 +7,10 @@
|
|||||||
package products
|
package products
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
context "context"
|
||||||
grpc "google.golang.org/grpc"
|
grpc "google.golang.org/grpc"
|
||||||
|
codes "google.golang.org/grpc/codes"
|
||||||
|
status "google.golang.org/grpc/status"
|
||||||
)
|
)
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
// This is a compile-time assertion to ensure that this generated file
|
||||||
@@ -15,10 +18,17 @@ import (
|
|||||||
// Requires gRPC-Go v1.64.0 or later.
|
// Requires gRPC-Go v1.64.0 or later.
|
||||||
const _ = grpc.SupportPackageIsVersion9
|
const _ = grpc.SupportPackageIsVersion9
|
||||||
|
|
||||||
|
const (
|
||||||
|
ProductsService_CalculateProductTariffs_FullMethodName = "/yandexmarket.products.ProductsService/CalculateProductTariffs"
|
||||||
|
ProductsService_GetProducts_FullMethodName = "/yandexmarket.products.ProductsService/GetProducts"
|
||||||
|
)
|
||||||
|
|
||||||
// ProductsServiceClient is the client API for ProductsService service.
|
// ProductsServiceClient is the client API for ProductsService service.
|
||||||
//
|
//
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
type ProductsServiceClient interface {
|
type ProductsServiceClient interface {
|
||||||
|
CalculateProductTariffs(ctx context.Context, in *CalculateProductTariffsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CalculateProductTariffsResponse], error)
|
||||||
|
GetProducts(ctx context.Context, in *GetProductsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetProductsResponse], error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type productsServiceClient struct {
|
type productsServiceClient struct {
|
||||||
@@ -29,10 +39,50 @@ func NewProductsServiceClient(cc grpc.ClientConnInterface) ProductsServiceClient
|
|||||||
return &productsServiceClient{cc}
|
return &productsServiceClient{cc}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *productsServiceClient) CalculateProductTariffs(ctx context.Context, in *CalculateProductTariffsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[CalculateProductTariffsResponse], error) {
|
||||||
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
|
stream, err := c.cc.NewStream(ctx, &ProductsService_ServiceDesc.Streams[0], ProductsService_CalculateProductTariffs_FullMethodName, cOpts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
x := &grpc.GenericClientStream[CalculateProductTariffsRequest, CalculateProductTariffsResponse]{ClientStream: stream}
|
||||||
|
if err := x.ClientStream.SendMsg(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := x.ClientStream.CloseSend(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return x, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
|
||||||
|
type ProductsService_CalculateProductTariffsClient = grpc.ServerStreamingClient[CalculateProductTariffsResponse]
|
||||||
|
|
||||||
|
func (c *productsServiceClient) GetProducts(ctx context.Context, in *GetProductsRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetProductsResponse], error) {
|
||||||
|
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||||
|
stream, err := c.cc.NewStream(ctx, &ProductsService_ServiceDesc.Streams[1], ProductsService_GetProducts_FullMethodName, cOpts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
x := &grpc.GenericClientStream[GetProductsRequest, GetProductsResponse]{ClientStream: stream}
|
||||||
|
if err := x.ClientStream.SendMsg(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := x.ClientStream.CloseSend(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return x, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
|
||||||
|
type ProductsService_GetProductsClient = grpc.ServerStreamingClient[GetProductsResponse]
|
||||||
|
|
||||||
// ProductsServiceServer is the server API for ProductsService service.
|
// ProductsServiceServer is the server API for ProductsService service.
|
||||||
// All implementations must embed UnimplementedProductsServiceServer
|
// All implementations must embed UnimplementedProductsServiceServer
|
||||||
// for forward compatibility.
|
// for forward compatibility.
|
||||||
type ProductsServiceServer interface {
|
type ProductsServiceServer interface {
|
||||||
|
CalculateProductTariffs(*CalculateProductTariffsRequest, grpc.ServerStreamingServer[CalculateProductTariffsResponse]) error
|
||||||
|
GetProducts(*GetProductsRequest, grpc.ServerStreamingServer[GetProductsResponse]) error
|
||||||
mustEmbedUnimplementedProductsServiceServer()
|
mustEmbedUnimplementedProductsServiceServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,6 +93,12 @@ type ProductsServiceServer interface {
|
|||||||
// pointer dereference when methods are called.
|
// pointer dereference when methods are called.
|
||||||
type UnimplementedProductsServiceServer struct{}
|
type UnimplementedProductsServiceServer struct{}
|
||||||
|
|
||||||
|
func (UnimplementedProductsServiceServer) CalculateProductTariffs(*CalculateProductTariffsRequest, grpc.ServerStreamingServer[CalculateProductTariffsResponse]) error {
|
||||||
|
return status.Errorf(codes.Unimplemented, "method CalculateProductTariffs not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedProductsServiceServer) GetProducts(*GetProductsRequest, grpc.ServerStreamingServer[GetProductsResponse]) error {
|
||||||
|
return status.Errorf(codes.Unimplemented, "method GetProducts not implemented")
|
||||||
|
}
|
||||||
func (UnimplementedProductsServiceServer) mustEmbedUnimplementedProductsServiceServer() {}
|
func (UnimplementedProductsServiceServer) mustEmbedUnimplementedProductsServiceServer() {}
|
||||||
func (UnimplementedProductsServiceServer) testEmbeddedByValue() {}
|
func (UnimplementedProductsServiceServer) testEmbeddedByValue() {}
|
||||||
|
|
||||||
@@ -64,6 +120,28 @@ func RegisterProductsServiceServer(s grpc.ServiceRegistrar, srv ProductsServiceS
|
|||||||
s.RegisterService(&ProductsService_ServiceDesc, srv)
|
s.RegisterService(&ProductsService_ServiceDesc, srv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _ProductsService_CalculateProductTariffs_Handler(srv interface{}, stream grpc.ServerStream) error {
|
||||||
|
m := new(CalculateProductTariffsRequest)
|
||||||
|
if err := stream.RecvMsg(m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return srv.(ProductsServiceServer).CalculateProductTariffs(m, &grpc.GenericServerStream[CalculateProductTariffsRequest, CalculateProductTariffsResponse]{ServerStream: stream})
|
||||||
|
}
|
||||||
|
|
||||||
|
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
|
||||||
|
type ProductsService_CalculateProductTariffsServer = grpc.ServerStreamingServer[CalculateProductTariffsResponse]
|
||||||
|
|
||||||
|
func _ProductsService_GetProducts_Handler(srv interface{}, stream grpc.ServerStream) error {
|
||||||
|
m := new(GetProductsRequest)
|
||||||
|
if err := stream.RecvMsg(m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return srv.(ProductsServiceServer).GetProducts(m, &grpc.GenericServerStream[GetProductsRequest, GetProductsResponse]{ServerStream: stream})
|
||||||
|
}
|
||||||
|
|
||||||
|
// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
|
||||||
|
type ProductsService_GetProductsServer = grpc.ServerStreamingServer[GetProductsResponse]
|
||||||
|
|
||||||
// ProductsService_ServiceDesc is the grpc.ServiceDesc for ProductsService service.
|
// ProductsService_ServiceDesc is the grpc.ServiceDesc for ProductsService service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
@@ -71,6 +149,17 @@ var ProductsService_ServiceDesc = grpc.ServiceDesc{
|
|||||||
ServiceName: "yandexmarket.products.ProductsService",
|
ServiceName: "yandexmarket.products.ProductsService",
|
||||||
HandlerType: (*ProductsServiceServer)(nil),
|
HandlerType: (*ProductsServiceServer)(nil),
|
||||||
Methods: []grpc.MethodDesc{},
|
Methods: []grpc.MethodDesc{},
|
||||||
Streams: []grpc.StreamDesc{},
|
Streams: []grpc.StreamDesc{
|
||||||
Metadata: "yandexmarket/products.proto",
|
{
|
||||||
|
StreamName: "CalculateProductTariffs",
|
||||||
|
Handler: _ProductsService_CalculateProductTariffs_Handler,
|
||||||
|
ServerStreams: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
StreamName: "GetProducts",
|
||||||
|
Handler: _ProductsService_GetProducts_Handler,
|
||||||
|
ServerStreams: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Metadata: "yandexmarket/products.proto",
|
||||||
}
|
}
|
||||||
|
|||||||
Submodule api/proto/v1 updated: 7fe978865b...ac9d54c95f
BIN
cmd/server/main
Executable file
BIN
cmd/server/main
Executable file
Binary file not shown.
@@ -3,9 +3,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/jackc/pgx/v5/pgxpool"
|
|
||||||
"github.com/joho/godotenv"
|
|
||||||
"google.golang.org/grpc"
|
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"sipro-mps/internal/config"
|
"sipro-mps/internal/config"
|
||||||
@@ -14,6 +11,11 @@ import (
|
|||||||
"sipro-mps/internal/redis"
|
"sipro-mps/internal/redis"
|
||||||
"sipro-mps/internal/tasks/client"
|
"sipro-mps/internal/tasks/client"
|
||||||
wb "sipro-mps/internal/wb/products"
|
wb "sipro-mps/internal/wb/products"
|
||||||
|
ym "sipro-mps/internal/ym/products"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx/v5/pgxpool"
|
||||||
|
"github.com/joho/godotenv"
|
||||||
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
func logMessage(level string, format string, a ...interface{}) {
|
func logMessage(level string, format string, a ...interface{}) {
|
||||||
@@ -58,6 +60,14 @@ func createGrpcServer(pool *pgxpool.Pool) {
|
|||||||
fmt.Printf("failed to register Wildberries Products gRPC server: %v\n", err)
|
fmt.Printf("failed to register Wildberries Products gRPC server: %v\n", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err = ym.RegisterAdapterGRPC(grpcServer, *repo)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("failed to register Yandex Market Products gRPC server: %v\n", err)
|
||||||
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println("gRPC server registered successfully.")
|
fmt.Println("gRPC server registered successfully.")
|
||||||
// Start serving gRPC requests
|
// Start serving gRPC requests
|
||||||
fmt.Println("gRPC server is starting on port 8080...")
|
fmt.Println("gRPC server is starting on port 8080...")
|
||||||
|
|||||||
BIN
cmd/tasks_server/main
Executable file
BIN
cmd/tasks_server/main
Executable file
Binary file not shown.
@@ -1,32 +1,24 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/hibiken/asynq"
|
"context"
|
||||||
"github.com/joho/godotenv"
|
"fmt"
|
||||||
"sipro-mps/internal/config"
|
"sipro-mps/internal/wb/products/mapping/generated"
|
||||||
"sipro-mps/internal/tasks/types"
|
"strings"
|
||||||
|
|
||||||
|
pb "sipro-mps/api/generated/v1/wb/products"
|
||||||
|
"sipro-mps/pkg/api/wb/client"
|
||||||
|
|
||||||
|
"github.com/deliveryhero/pipeline/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
godotenv.Load()
|
|
||||||
cfg, err := config.LoadConfig()
|
input := "1,2,3,4,5"
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
for out := range pipeline.Process(context.Background(), apply, pipeline.Emit(input)) {
|
||||||
}
|
for j := range out {
|
||||||
client := asynq.NewClient(asynq.RedisClientOpt{Addr: cfg.Redis.Host + ":" + cfg.Redis.Port, Password: cfg.Redis.Password})
|
fmt.Printf("process: %s\n", out[j])
|
||||||
defer func(client *asynq.Client) {
|
|
||||||
err := client.Close()
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
}(client)
|
|
||||||
task, err := types.NewFetchProductsTask(types.TypeOzonFetchProducts, 930)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
info, err := client.Enqueue(task)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
println("Task enqueued successfully:", info.ID, "with queue name:", info.Queue, "and payload size:", len(info.Payload), "bytes")
|
|
||||||
}
|
}
|
||||||
|
|||||||
3
go.mod
3
go.mod
@@ -26,6 +26,8 @@ require (
|
|||||||
require (
|
require (
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/dave/jennifer v1.6.0 // indirect
|
github.com/dave/jennifer v1.6.0 // indirect
|
||||||
|
github.com/deliveryhero/pipeline v1.0.0 // indirect
|
||||||
|
github.com/deliveryhero/pipeline/v2 v2.2.0 // indirect
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||||
github.com/dlclark/regexp2 v1.11.5 // indirect
|
github.com/dlclark/regexp2 v1.11.5 // indirect
|
||||||
github.com/fatih/color v1.18.0 // indirect
|
github.com/fatih/color v1.18.0 // indirect
|
||||||
@@ -52,6 +54,7 @@ require (
|
|||||||
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
|
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 // indirect
|
||||||
golang.org/x/mod v0.26.0 // indirect
|
golang.org/x/mod v0.26.0 // indirect
|
||||||
golang.org/x/net v0.42.0 // indirect
|
golang.org/x/net v0.42.0 // indirect
|
||||||
|
golang.org/x/oauth2 v0.30.0 // indirect
|
||||||
golang.org/x/sync v0.16.0 // indirect
|
golang.org/x/sync v0.16.0 // indirect
|
||||||
golang.org/x/sys v0.34.0 // indirect
|
golang.org/x/sys v0.34.0 // indirect
|
||||||
golang.org/x/text v0.27.0 // indirect
|
golang.org/x/text v0.27.0 // indirect
|
||||||
|
|||||||
6
go.sum
6
go.sum
@@ -17,6 +17,10 @@ github.com/dave/jennifer v1.6.0/go.mod h1:AxTG893FiZKqxy3FP1kL80VMshSMuz2G+Egvsz
|
|||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/deliveryhero/pipeline v1.0.0 h1:Le+s0kCQdTzpPlkkRE17jtD+b1NsTWCEcIl77RORuxo=
|
||||||
|
github.com/deliveryhero/pipeline v1.0.0/go.mod h1:78CQfQT2DONSGPktr7X71xu333ZMPdrcYuV/gY/Mnkg=
|
||||||
|
github.com/deliveryhero/pipeline/v2 v2.2.0 h1:l9F+e4Q3qMu0zw7fi0JVg2FilgnGyohnwJ5d1oBqoYs=
|
||||||
|
github.com/deliveryhero/pipeline/v2 v2.2.0/go.mod h1:GghgCAlOoG8IdwybJpe2E3LBTuR+o5wgTdm0kPv3GPU=
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||||
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
|
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
|
||||||
@@ -155,6 +159,8 @@ golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
|||||||
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||||
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
||||||
golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
|
golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
|
||||||
|
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
|
||||||
|
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
|
||||||
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
|
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
|
||||||
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||||
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
|
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
|
||||||
|
|||||||
@@ -15,4 +15,5 @@ type Marketplace struct {
|
|||||||
AuthData pgtype.Text
|
AuthData pgtype.Text
|
||||||
WarehouseID pgtype.Text
|
WarehouseID pgtype.Text
|
||||||
AuthDataJson []byte
|
AuthDataJson []byte
|
||||||
|
CampaignID pgtype.Text
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const getMarketplaceByID = `-- name: GetMarketplaceByID :one
|
const getMarketplaceByID = `-- name: GetMarketplaceByID :one
|
||||||
SELECT id, base_marketplace, name, auth_data, warehouse_id, auth_data_json FROM marketplaces
|
SELECT id, base_marketplace, name, auth_data, warehouse_id, auth_data_json, campaign_id FROM marketplaces
|
||||||
WHERE id = $1 LIMIT 1
|
WHERE id = $1 LIMIT 1
|
||||||
`
|
`
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@ func (q *Queries) GetMarketplaceByID(ctx context.Context, id int32) (Marketplace
|
|||||||
&i.AuthData,
|
&i.AuthData,
|
||||||
&i.WarehouseID,
|
&i.WarehouseID,
|
||||||
&i.AuthDataJson,
|
&i.AuthDataJson,
|
||||||
|
&i.CampaignID,
|
||||||
)
|
)
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,6 @@ create table marketplaces
|
|||||||
CASE
|
CASE
|
||||||
WHEN ((auth_data)::text IS JSON) THEN (auth_data)::jsonb
|
WHEN ((auth_data)::text IS JSON) THEN (auth_data)::jsonb
|
||||||
ELSE NULL::jsonb
|
ELSE NULL::jsonb
|
||||||
END) stored
|
END) stored,
|
||||||
|
campaign_id varchar
|
||||||
);
|
);
|
||||||
@@ -2,8 +2,9 @@ package marketplace
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"github.com/go-faster/errors"
|
|
||||||
"sipro-mps/pkg/utils"
|
"sipro-mps/pkg/utils"
|
||||||
|
|
||||||
|
"github.com/go-faster/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -18,6 +19,7 @@ type Marketplace struct {
|
|||||||
AuthData string `json:"auth_data"`
|
AuthData string `json:"auth_data"`
|
||||||
WarehouseID string `json:"warehouse_id"`
|
WarehouseID string `json:"warehouse_id"`
|
||||||
AuthDataJson []byte `json:"auth_data_json,omitempty"`
|
AuthDataJson []byte `json:"auth_data_json,omitempty"`
|
||||||
|
CampaignID string `json:"campaign_id,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Marketplace) getIdentifierWildberries() (string, error) {
|
func (m *Marketplace) getIdentifierWildberries() (string, error) {
|
||||||
|
|||||||
@@ -25,5 +25,6 @@ func (r *dbRepository) GetMarketplaceByID(ctx context.Context, id int) (*Marketp
|
|||||||
AuthData: marketplace.AuthData.String,
|
AuthData: marketplace.AuthData.String,
|
||||||
WarehouseID: marketplace.WarehouseID.String,
|
WarehouseID: marketplace.WarehouseID.String,
|
||||||
AuthDataJson: marketplace.AuthDataJson,
|
AuthDataJson: marketplace.AuthDataJson,
|
||||||
|
CampaignID: marketplace.CampaignID.String,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,20 +2,16 @@ package products
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/go-faster/errors"
|
|
||||||
"github.com/redis/rueidis"
|
|
||||||
"github.com/samber/lo"
|
|
||||||
pb "sipro-mps/api/generated/v1/wb/products"
|
pb "sipro-mps/api/generated/v1/wb/products"
|
||||||
"sipro-mps/internal/marketplace"
|
"sipro-mps/internal/marketplace"
|
||||||
"sipro-mps/internal/redis"
|
|
||||||
"sipro-mps/internal/tasks/client"
|
|
||||||
"sipro-mps/internal/tasks/types"
|
|
||||||
"sipro-mps/internal/wb"
|
"sipro-mps/internal/wb"
|
||||||
"sipro-mps/internal/wb/products/mapping/generated"
|
"sipro-mps/internal/wb/products/mapping/generated"
|
||||||
wbapi "sipro-mps/pkg/api/wb/client"
|
wbapi "sipro-mps/pkg/api/wb/client"
|
||||||
"sipro-mps/pkg/utils"
|
"sipro-mps/pkg/utils"
|
||||||
|
|
||||||
|
"github.com/deliveryhero/pipeline/v2"
|
||||||
|
"github.com/samber/lo"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -97,79 +93,99 @@ func fetchProducts(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a apiRepository) StreamAllProductsCache(ctx context.Context, marketplaceId int, resultChan chan<- []pb.Product, errChan chan<- error) {
|
func (a apiRepository) StreamAllProductsCache(ctx context.Context, marketplaceId int, resultChan chan<- []pb.Product, errChan chan<- error) {
|
||||||
defer close(resultChan)
|
// DO NOT close channels here - WithCache will handle it (caller/creator owns them)
|
||||||
defer close(errChan)
|
mp, err := a.marketplaceRepository.GetMarketplaceByID(ctx, marketplaceId)
|
||||||
_, sellerId, err := a.ParseMarketplace(ctx, marketplaceId)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errChan <- err
|
errChan <- fmt.Errorf("getting marketplace by ID: %w", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c := *redis.Client
|
identifier, err := mp.GetIdentifier()
|
||||||
key := fmt.Sprintf("wb:products:%s", sellerId)
|
if err != nil {
|
||||||
jsonString, err := c.Do(ctx, c.B().Get().Key(key).Build()).ToString()
|
errChan <- fmt.Errorf("getting marketplace identifier: %w", err)
|
||||||
if err == nil && jsonString != "null" {
|
|
||||||
var result []pb.Product
|
|
||||||
err = json.Unmarshal([]byte(jsonString), &result)
|
|
||||||
if err != nil {
|
|
||||||
errChan <- fmt.Errorf("unmarshalling products from cache: %w", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
task, err := types.NewFetchProductsTask(types.TypeWbFetchProducts, marketplaceId)
|
|
||||||
if err != nil {
|
|
||||||
errChan <- fmt.Errorf("creating fetch products task: %w", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_, err = client.Client.Enqueue(task)
|
|
||||||
if err != nil {
|
|
||||||
errChan <- fmt.Errorf("enqueueing fetch products task: %w", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
resultChan <- result
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !errors.As(err, &rueidis.Nil) && err != nil {
|
client, err := wb.GetClientFromMarketplace(mp)
|
||||||
errChan <- fmt.Errorf("fetching products from cache: %w", err)
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
converter := generated.ConverterImpl{}
|
converter := generated.ConverterImpl{}
|
||||||
|
transform := pipeline.NewProcessor(func(_ context.Context, products []WbProduct) ([]pb.Product, error) {
|
||||||
innerResultChan := make(chan []WbProduct)
|
return lo.Map(products, func(item WbProduct, _ int) pb.Product {
|
||||||
innerErrChan := make(chan error)
|
return *converter.ToProto(&item)
|
||||||
go a.StreamAllProducts(ctx, marketplaceId, innerResultChan, innerErrChan)
|
}), nil
|
||||||
var allProducts []pb.Product
|
}, nil)
|
||||||
defer func() {
|
inputChan := make(chan []WbProduct)
|
||||||
jsonData, err := json.Marshal(allProducts)
|
fetchProducts(ctx, client, identifier, inputChan, nil)
|
||||||
if err != nil {
|
for out := range pipeline.Process(ctx, transform, inputChan) {
|
||||||
errChan <- fmt.Errorf("marshalling products to cache: %w", err)
|
resultChan <- out
|
||||||
return
|
|
||||||
}
|
|
||||||
err = c.Do(ctx, c.B().Set().Key(key).Value(string(jsonData)).Build()).Error()
|
|
||||||
if err != nil {
|
|
||||||
errChan <- fmt.Errorf("setting products to cache: %w", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case err, ok := <-innerErrChan:
|
|
||||||
if !ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
errChan <- fmt.Errorf("streaming products: %w", err)
|
|
||||||
return
|
|
||||||
case products, ok := <-innerResultChan:
|
|
||||||
if !ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
pbProducts := lo.Map(products, func(p WbProduct, _ int) pb.Product {
|
|
||||||
return *converter.ToProto(&p)
|
|
||||||
})
|
|
||||||
allProducts = append(allProducts, pbProducts...)
|
|
||||||
resultChan <- pbProducts
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//c := *redis.Client
|
||||||
|
//key := fmt.Sprintf("wb:products:%s", sellerId)
|
||||||
|
//jsonString, err := c.Do(ctx, c.B().Get().Key(key).Build()).ToString()
|
||||||
|
//if err == nil && jsonString != "null" {
|
||||||
|
// var result []pb.Product
|
||||||
|
// err = json.Unmarshal([]byte(jsonString), &result)
|
||||||
|
// if err != nil {
|
||||||
|
// errChan <- fmt.Errorf("unmarshalling products from cache: %w", err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// task, err := types.NewFetchProductsTask(types.TypeWbFetchProducts, marketplaceId)
|
||||||
|
// if err != nil {
|
||||||
|
// errChan <- fmt.Errorf("creating fetch products task: %w", err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// _, err = client.Client.Enqueue(task)
|
||||||
|
// if err != nil {
|
||||||
|
// errChan <- fmt.Errorf("enqueueing fetch products task: %w", err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// resultChan <- result
|
||||||
|
// return
|
||||||
|
//}
|
||||||
|
//if !errors.As(err, &rueidis.Nil) && err != nil {
|
||||||
|
// errChan <- fmt.Errorf("fetching products from cache: %w", err)
|
||||||
|
// return
|
||||||
|
//}
|
||||||
|
//converter := generated.ConverterImpl{}
|
||||||
|
//
|
||||||
|
//innerResultChan := make(chan []WbProduct)
|
||||||
|
//innerErrChan := make(chan error)
|
||||||
|
//go a.StreamAllProducts(ctx, marketplaceId, innerResultChan, innerErrChan)
|
||||||
|
//var allProducts []pb.Product
|
||||||
|
//defer func() {
|
||||||
|
// jsonData, err := json.Marshal(allProducts)
|
||||||
|
// if err != nil {
|
||||||
|
// errChan <- fmt.Errorf("marshalling products to cache: %w", err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// err = c.Do(ctx, c.B().Set().Key(key).Value(string(jsonData)).Build()).Error()
|
||||||
|
// if err != nil {
|
||||||
|
// errChan <- fmt.Errorf("setting products to cache: %w", err)
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
//}()
|
||||||
|
//for {
|
||||||
|
// select {
|
||||||
|
// case err, ok := <-innerErrChan:
|
||||||
|
// if !ok {
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// errChan <- fmt.Errorf("streaming products: %w", err)
|
||||||
|
// return
|
||||||
|
// case products, ok := <-innerResultChan:
|
||||||
|
// if !ok {
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// pbProducts := lo.Map(products, func(p WbProduct, _ int) pb.Product {
|
||||||
|
// return *converter.ToProto(&p)
|
||||||
|
// })
|
||||||
|
// allProducts = append(allProducts, pbProducts...)
|
||||||
|
// resultChan <- pbProducts
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
}
|
}
|
||||||
func (a apiRepository) GetAllProducts(ctx context.Context, marketplaceId int) ([]WbProduct, error) {
|
func (a apiRepository) GetAllProducts(ctx context.Context, marketplaceId int) ([]WbProduct, error) {
|
||||||
marketplaceByID, sellerId, err := a.ParseMarketplace(ctx, marketplaceId)
|
marketplaceByID, sellerId, err := a.ParseMarketplace(ctx, marketplaceId)
|
||||||
|
|||||||
36
internal/ym/common.go
Normal file
36
internal/ym/common.go
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package ym
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"net/http"
|
||||||
|
"sipro-mps/internal/marketplace"
|
||||||
|
"sipro-mps/pkg/api/yandex/ymclient"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/tidwall/gjson"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetClientFromMarketplace(mp *marketplace.Marketplace) (*ymclient.APIClient, error) {
|
||||||
|
authDataParsed := gjson.Parse(mp.AuthData)
|
||||||
|
apiKeyResult := authDataParsed.Get("apiKey")
|
||||||
|
if !apiKeyResult.Exists() {
|
||||||
|
return nil, errors.New("API key not found in marketplace auth data")
|
||||||
|
}
|
||||||
|
apiKey := apiKeyResult.String()
|
||||||
|
if apiKey == "" {
|
||||||
|
return nil, errors.New("API key is empty")
|
||||||
|
}
|
||||||
|
if !strings.HasPrefix(apiKey, "ACMA") {
|
||||||
|
return nil, errors.New("API key does not start with 'ACMA'")
|
||||||
|
}
|
||||||
|
// Create HTTP client with rate limiting
|
||||||
|
httpClient := &http.Client{
|
||||||
|
Transport: NewRateLimitTransport(),
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg := ymclient.NewConfiguration()
|
||||||
|
cfg.AddDefaultHeader("Api-Key", apiKey)
|
||||||
|
cfg.HTTPClient = httpClient
|
||||||
|
client := ymclient.NewAPIClient(cfg)
|
||||||
|
return client, nil
|
||||||
|
}
|
||||||
103
internal/ym/products/adapter_grpc.go
Normal file
103
internal/ym/products/adapter_grpc.go
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
package products
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
pb "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
"sipro-mps/internal/marketplace"
|
||||||
|
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AdapterGRPC struct {
|
||||||
|
pb.UnimplementedProductsServiceServer
|
||||||
|
repo Repository
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAdapterGRPC(repo Repository) *AdapterGRPC {
|
||||||
|
return &AdapterGRPC{
|
||||||
|
repo: repo,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func RegisterAdapterGRPC(server *grpc.Server, marketplacesRepository marketplace.Repository) (*Repository, error) {
|
||||||
|
repo := NewAPIRepository(marketplacesRepository)
|
||||||
|
adapter := NewAdapterGRPC(repo)
|
||||||
|
pb.RegisterProductsServiceServer(server, adapter)
|
||||||
|
return &repo, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *AdapterGRPC) GetProducts(req *pb.GetProductsRequest, stream pb.ProductsService_GetProductsServer) error {
|
||||||
|
ctx := stream.Context()
|
||||||
|
fmt.Printf("GetProducts called with marketplace_id: %d, offer_ids count: %d\n", req.MarketplaceId, len(req.OfferIds))
|
||||||
|
|
||||||
|
resultChan := make(chan []*pb.GetProductsResponse_Offer, 10)
|
||||||
|
errChan := make(chan error)
|
||||||
|
|
||||||
|
go a.repo.GetProducts(ctx, int(req.MarketplaceId), req, resultChan, errChan)
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
fmt.Println("GetProducts: context cancelled or deadline exceeded:", ctx.Err())
|
||||||
|
return ctx.Err()
|
||||||
|
case offers, ok := <-resultChan:
|
||||||
|
if !ok {
|
||||||
|
fmt.Println("GetProducts: result channel closed")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// Send offers in response
|
||||||
|
response := &pb.GetProductsResponse{
|
||||||
|
Offers: offers,
|
||||||
|
}
|
||||||
|
if err := stream.Send(response); err != nil {
|
||||||
|
fmt.Println("GetProducts: error sending response:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
case err, ok := <-errChan:
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("GetProducts: error received from channel:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *AdapterGRPC) CalculateProductTariffs(req *pb.CalculateProductTariffsRequest, stream pb.ProductsService_CalculateProductTariffsServer) error {
|
||||||
|
ctx := stream.Context()
|
||||||
|
fmt.Printf("CalculateProductTariffs called with marketplace_id: %d, offers count: %d\n", req.MarketplaceId, len(req.Offers))
|
||||||
|
|
||||||
|
resultChan := make(chan []*pb.CalculateProductTariffsResponse, 10)
|
||||||
|
errChan := make(chan error)
|
||||||
|
|
||||||
|
go a.repo.CalculateProductTariffs(ctx, int(req.MarketplaceId), req, resultChan, errChan)
|
||||||
|
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
fmt.Println("CalculateProductTariffs: context cancelled or deadline exceeded:", ctx.Err())
|
||||||
|
return ctx.Err()
|
||||||
|
case responses, ok := <-resultChan:
|
||||||
|
if !ok {
|
||||||
|
fmt.Println("CalculateProductTariffs: result channel closed")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
for _, response := range responses {
|
||||||
|
if err := stream.Send(response); err != nil {
|
||||||
|
fmt.Println("CalculateProductTariffs: error sending response:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case err, ok := <-errChan:
|
||||||
|
if !ok {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("CalculateProductTariffs: error received from channel:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
internal/ym/products/entities.go
Normal file
13
internal/ym/products/entities.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package products
|
||||||
|
|
||||||
|
import (
|
||||||
|
pb "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PbCalculateProductTariffsRequest = pb.CalculateProductTariffsRequest
|
||||||
|
type PbCalculateProductTariffsResponse = pb.CalculateProductTariffsResponse
|
||||||
|
type PbOffer = pb.CalculateProductTariffsRequest_Offers
|
||||||
|
type PbResponseOffer = pb.CalculateProductTariffsResponse_Offers
|
||||||
|
type PbParameters = pb.CalculateProductTariffsRequest_Parameters
|
||||||
|
type PbGetProductsOffer = pb.GetProductsResponse_Offer
|
||||||
|
type PbGetProductsRequest = pb.GetProductsRequest
|
||||||
46
internal/ym/products/mapping/converter.go
Normal file
46
internal/ym/products/mapping/converter.go
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package mapping
|
||||||
|
|
||||||
|
import (
|
||||||
|
proto "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
"sipro-mps/pkg/api/yandex/ymclient"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:generate go run github.com/jmattheis/goverter/cmd/goverter gen .
|
||||||
|
|
||||||
|
// goverter:converter
|
||||||
|
// goverter:output:file ./generated/generated.go
|
||||||
|
// goverter:output:package generated
|
||||||
|
// goverter:ignoreUnexported yes
|
||||||
|
// goverter:matchIgnoreCase yes
|
||||||
|
// goverter:useZeroValueOnPointerInconsistency yes
|
||||||
|
// goverter:extend Int64ToFloat32 Int64ToInt32 Float32ToInt64 Int32ToInt64 PointerInt32ToInt64
|
||||||
|
type Converter interface {
|
||||||
|
ProtoOfferToYmOffer(details *proto.CalculateProductTariffsRequest_Offers) *ymclient.CalculateTariffsOfferDTO
|
||||||
|
ProtoParametersToYmParameters(details *proto.CalculateProductTariffsRequest_Parameters) *ymclient.CalculateTariffsParametersDTO
|
||||||
|
|
||||||
|
// Response converters
|
||||||
|
YmOfferToProtoResponseOffer(details *ymclient.CalculateTariffsOfferInfoDTO) *proto.CalculateProductTariffsResponse_Offers
|
||||||
|
YmTariffToProtoTariff(details *ymclient.CalculatedTariffDTO) *proto.CalculateProductTariffsResponse_Tariff
|
||||||
|
|
||||||
|
YmOfferToProtoOffer(details *ymclient.GetOfferDTO) *proto.GetProductsResponse_Offer
|
||||||
|
}
|
||||||
|
|
||||||
|
func Int64ToFloat32(i int64) float32 {
|
||||||
|
return float32(i)
|
||||||
|
}
|
||||||
|
func Int64ToInt32(i int64) int32 {
|
||||||
|
return int32(i)
|
||||||
|
}
|
||||||
|
func Float32ToInt64(f float32) int64 {
|
||||||
|
return int64(f)
|
||||||
|
}
|
||||||
|
func Int32ToInt64(i int32) int64 {
|
||||||
|
return int64(i)
|
||||||
|
}
|
||||||
|
func PointerInt32ToInt64(i *int32) *int64 {
|
||||||
|
if i == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
val := int64(*i)
|
||||||
|
return &val
|
||||||
|
}
|
||||||
152
internal/ym/products/mapping/generated/generated.go
Normal file
152
internal/ym/products/mapping/generated/generated.go
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
// Code generated by github.com/jmattheis/goverter, DO NOT EDIT.
|
||||||
|
//go:build !goverter
|
||||||
|
|
||||||
|
package generated
|
||||||
|
|
||||||
|
import (
|
||||||
|
products "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
mapping "sipro-mps/internal/ym/products/mapping"
|
||||||
|
ymclient "sipro-mps/pkg/api/yandex/ymclient"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ConverterImpl struct{}
|
||||||
|
|
||||||
|
func (c *ConverterImpl) ProtoOfferToYmOffer(source *products.CalculateProductTariffsRequest_Offers) *ymclient.CalculateTariffsOfferDTO {
|
||||||
|
var pYmclientCalculateTariffsOfferDTO *ymclient.CalculateTariffsOfferDTO
|
||||||
|
if source != nil {
|
||||||
|
var ymclientCalculateTariffsOfferDTO ymclient.CalculateTariffsOfferDTO
|
||||||
|
ymclientCalculateTariffsOfferDTO.CategoryId = (*source).CategoryId
|
||||||
|
ymclientCalculateTariffsOfferDTO.Price = mapping.Int64ToFloat32((*source).Price)
|
||||||
|
ymclientCalculateTariffsOfferDTO.Length = mapping.Int64ToFloat32((*source).Length)
|
||||||
|
ymclientCalculateTariffsOfferDTO.Width = mapping.Int64ToFloat32((*source).Width)
|
||||||
|
ymclientCalculateTariffsOfferDTO.Height = mapping.Int64ToFloat32((*source).Height)
|
||||||
|
ymclientCalculateTariffsOfferDTO.Weight = mapping.Int64ToFloat32((*source).Weight)
|
||||||
|
pInt32 := mapping.Int64ToInt32((*source).Quantity)
|
||||||
|
ymclientCalculateTariffsOfferDTO.Quantity = &pInt32
|
||||||
|
pYmclientCalculateTariffsOfferDTO = &ymclientCalculateTariffsOfferDTO
|
||||||
|
}
|
||||||
|
return pYmclientCalculateTariffsOfferDTO
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) ProtoParametersToYmParameters(source *products.CalculateProductTariffsRequest_Parameters) *ymclient.CalculateTariffsParametersDTO {
|
||||||
|
var pYmclientCalculateTariffsParametersDTO *ymclient.CalculateTariffsParametersDTO
|
||||||
|
if source != nil {
|
||||||
|
var ymclientCalculateTariffsParametersDTO ymclient.CalculateTariffsParametersDTO
|
||||||
|
pInt64 := (*source).CampaignId
|
||||||
|
ymclientCalculateTariffsParametersDTO.CampaignId = &pInt64
|
||||||
|
pYmclientSellingProgramType := ymclient.SellingProgramType((*source).SellingProgram)
|
||||||
|
ymclientCalculateTariffsParametersDTO.SellingProgram = &pYmclientSellingProgramType
|
||||||
|
pYmclientPaymentFrequencyType := ymclient.PaymentFrequencyType((*source).Frequency)
|
||||||
|
ymclientCalculateTariffsParametersDTO.Frequency = &pYmclientPaymentFrequencyType
|
||||||
|
pYmclientCurrencyType := ymclient.CurrencyType((*source).Currency)
|
||||||
|
ymclientCalculateTariffsParametersDTO.Currency = &pYmclientCurrencyType
|
||||||
|
pYmclientCalculateTariffsParametersDTO = &ymclientCalculateTariffsParametersDTO
|
||||||
|
}
|
||||||
|
return pYmclientCalculateTariffsParametersDTO
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) YmOfferToProtoOffer(source *ymclient.GetOfferDTO) *products.GetProductsResponse_Offer {
|
||||||
|
var pProductsGetProductsResponse_Offer *products.GetProductsResponse_Offer
|
||||||
|
if source != nil {
|
||||||
|
var productsGetProductsResponse_Offer products.GetProductsResponse_Offer
|
||||||
|
if (*source).MarketCategoryId != nil {
|
||||||
|
productsGetProductsResponse_Offer.MarketCategoryId = *(*source).MarketCategoryId
|
||||||
|
}
|
||||||
|
productsGetProductsResponse_Offer.WeightDimensions = c.pYmclientOfferWeightDimensionsDTOToPProductsGetProductsResponse_Offer_WeightDimensions((*source).WeightDimensions)
|
||||||
|
productsGetProductsResponse_Offer.BasicPrice = c.pYmclientGetPriceWithDiscountDTOToPProductsGetProductsResponse_Offer_BasicPrice((*source).BasicPrice)
|
||||||
|
productsGetProductsResponse_Offer.OfferId = (*source).OfferId
|
||||||
|
pProductsGetProductsResponse_Offer = &productsGetProductsResponse_Offer
|
||||||
|
}
|
||||||
|
return pProductsGetProductsResponse_Offer
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) YmOfferToProtoResponseOffer(source *ymclient.CalculateTariffsOfferInfoDTO) *products.CalculateProductTariffsResponse_Offers {
|
||||||
|
var pProductsCalculateProductTariffsResponse_Offers *products.CalculateProductTariffsResponse_Offers
|
||||||
|
if source != nil {
|
||||||
|
var productsCalculateProductTariffsResponse_Offers products.CalculateProductTariffsResponse_Offers
|
||||||
|
productsCalculateProductTariffsResponse_Offers.Offer = c.ymclientCalculateTariffsOfferDTOToPProductsCalculateProductTariffsResponse_Offer((*source).Offer)
|
||||||
|
if (*source).Tariffs != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Offers.Tariffs = make([]*products.CalculateProductTariffsResponse_Tariff, len((*source).Tariffs))
|
||||||
|
for i := 0; i < len((*source).Tariffs); i++ {
|
||||||
|
productsCalculateProductTariffsResponse_Offers.Tariffs[i] = c.ymclientCalculatedTariffDTOToPProductsCalculateProductTariffsResponse_Tariff((*source).Tariffs[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pProductsCalculateProductTariffsResponse_Offers = &productsCalculateProductTariffsResponse_Offers
|
||||||
|
}
|
||||||
|
return pProductsCalculateProductTariffsResponse_Offers
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) YmTariffToProtoTariff(source *ymclient.CalculatedTariffDTO) *products.CalculateProductTariffsResponse_Tariff {
|
||||||
|
var pProductsCalculateProductTariffsResponse_Tariff *products.CalculateProductTariffsResponse_Tariff
|
||||||
|
if source != nil {
|
||||||
|
var productsCalculateProductTariffsResponse_Tariff products.CalculateProductTariffsResponse_Tariff
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Type = string((*source).Type)
|
||||||
|
if (*source).Amount != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Amount = mapping.Float32ToInt64(*(*source).Amount)
|
||||||
|
}
|
||||||
|
if (*source).Currency != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Currency = string(*(*source).Currency)
|
||||||
|
}
|
||||||
|
if (*source).Parameters != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Parameters = make([]*products.CalculateProductTariffsResponse_Parameter, len((*source).Parameters))
|
||||||
|
for i := 0; i < len((*source).Parameters); i++ {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Parameters[i] = c.ymclientTariffParameterDTOToPProductsCalculateProductTariffsResponse_Parameter((*source).Parameters[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pProductsCalculateProductTariffsResponse_Tariff = &productsCalculateProductTariffsResponse_Tariff
|
||||||
|
}
|
||||||
|
return pProductsCalculateProductTariffsResponse_Tariff
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) pYmclientGetPriceWithDiscountDTOToPProductsGetProductsResponse_Offer_BasicPrice(source *ymclient.GetPriceWithDiscountDTO) *products.GetProductsResponse_Offer_BasicPrice {
|
||||||
|
var pProductsGetProductsResponse_Offer_BasicPrice *products.GetProductsResponse_Offer_BasicPrice
|
||||||
|
if source != nil {
|
||||||
|
var productsGetProductsResponse_Offer_BasicPrice products.GetProductsResponse_Offer_BasicPrice
|
||||||
|
productsGetProductsResponse_Offer_BasicPrice.Value = (*source).Value
|
||||||
|
pProductsGetProductsResponse_Offer_BasicPrice = &productsGetProductsResponse_Offer_BasicPrice
|
||||||
|
}
|
||||||
|
return pProductsGetProductsResponse_Offer_BasicPrice
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) pYmclientOfferWeightDimensionsDTOToPProductsGetProductsResponse_Offer_WeightDimensions(source *ymclient.OfferWeightDimensionsDTO) *products.GetProductsResponse_Offer_WeightDimensions {
|
||||||
|
var pProductsGetProductsResponse_Offer_WeightDimensions *products.GetProductsResponse_Offer_WeightDimensions
|
||||||
|
if source != nil {
|
||||||
|
var productsGetProductsResponse_Offer_WeightDimensions products.GetProductsResponse_Offer_WeightDimensions
|
||||||
|
productsGetProductsResponse_Offer_WeightDimensions.Length = (*source).Length
|
||||||
|
productsGetProductsResponse_Offer_WeightDimensions.Width = (*source).Width
|
||||||
|
productsGetProductsResponse_Offer_WeightDimensions.Height = (*source).Height
|
||||||
|
productsGetProductsResponse_Offer_WeightDimensions.Weight = (*source).Weight
|
||||||
|
pProductsGetProductsResponse_Offer_WeightDimensions = &productsGetProductsResponse_Offer_WeightDimensions
|
||||||
|
}
|
||||||
|
return pProductsGetProductsResponse_Offer_WeightDimensions
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) ymclientCalculateTariffsOfferDTOToPProductsCalculateProductTariffsResponse_Offer(source ymclient.CalculateTariffsOfferDTO) *products.CalculateProductTariffsResponse_Offer {
|
||||||
|
var productsCalculateProductTariffsResponse_Offer products.CalculateProductTariffsResponse_Offer
|
||||||
|
productsCalculateProductTariffsResponse_Offer.CategoryId = source.CategoryId
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Price = mapping.Float32ToInt64(source.Price)
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Length = mapping.Float32ToInt64(source.Length)
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Width = mapping.Float32ToInt64(source.Width)
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Height = mapping.Float32ToInt64(source.Height)
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Weight = mapping.Float32ToInt64(source.Weight)
|
||||||
|
if source.Quantity != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Offer.Quantity = mapping.Int32ToInt64(*source.Quantity)
|
||||||
|
}
|
||||||
|
return &productsCalculateProductTariffsResponse_Offer
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) ymclientCalculatedTariffDTOToPProductsCalculateProductTariffsResponse_Tariff(source ymclient.CalculatedTariffDTO) *products.CalculateProductTariffsResponse_Tariff {
|
||||||
|
var productsCalculateProductTariffsResponse_Tariff products.CalculateProductTariffsResponse_Tariff
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Type = string(source.Type)
|
||||||
|
if source.Amount != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Amount = mapping.Float32ToInt64(*source.Amount)
|
||||||
|
}
|
||||||
|
if source.Currency != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Currency = string(*source.Currency)
|
||||||
|
}
|
||||||
|
if source.Parameters != nil {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Parameters = make([]*products.CalculateProductTariffsResponse_Parameter, len(source.Parameters))
|
||||||
|
for i := 0; i < len(source.Parameters); i++ {
|
||||||
|
productsCalculateProductTariffsResponse_Tariff.Parameters[i] = c.ymclientTariffParameterDTOToPProductsCalculateProductTariffsResponse_Parameter(source.Parameters[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &productsCalculateProductTariffsResponse_Tariff
|
||||||
|
}
|
||||||
|
func (c *ConverterImpl) ymclientTariffParameterDTOToPProductsCalculateProductTariffsResponse_Parameter(source ymclient.TariffParameterDTO) *products.CalculateProductTariffsResponse_Parameter {
|
||||||
|
var productsCalculateProductTariffsResponse_Parameter products.CalculateProductTariffsResponse_Parameter
|
||||||
|
productsCalculateProductTariffsResponse_Parameter.Name = source.Name
|
||||||
|
productsCalculateProductTariffsResponse_Parameter.Value = source.Value
|
||||||
|
return &productsCalculateProductTariffsResponse_Parameter
|
||||||
|
}
|
||||||
12
internal/ym/products/repository.go
Normal file
12
internal/ym/products/repository.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package products
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
pb "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Repository interface {
|
||||||
|
CalculateProductTariffs(ctx context.Context, marketplaceID int, req *pb.CalculateProductTariffsRequest, resultChan chan<- []*pb.CalculateProductTariffsResponse, errChan chan<- error)
|
||||||
|
GetProducts(ctx context.Context, marketplaceID int, req *pb.GetProductsRequest, resultChan chan<- []*pb.GetProductsResponse_Offer, errChan chan<- error)
|
||||||
|
}
|
||||||
275
internal/ym/products/repository_api.go
Normal file
275
internal/ym/products/repository_api.go
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
package products
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
pb "sipro-mps/api/generated/v1/yandexmarket/products"
|
||||||
|
"sipro-mps/internal/marketplace"
|
||||||
|
"sipro-mps/internal/ym"
|
||||||
|
"sipro-mps/internal/ym/products/mapping/generated"
|
||||||
|
"sipro-mps/pkg/api/yandex/ymclient"
|
||||||
|
|
||||||
|
"github.com/samber/lo"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultChunkSize = 200
|
||||||
|
offerMappingsRateLimit = 600
|
||||||
|
tariffsRateLimit = 100
|
||||||
|
rateLimitWindow = time.Minute
|
||||||
|
maxPageSize = math.MaxInt32
|
||||||
|
)
|
||||||
|
|
||||||
|
// apiRepository implements the Repository interface using Yandex Market API
|
||||||
|
type apiRepository struct {
|
||||||
|
marketplaceRepository marketplace.Repository
|
||||||
|
converter *generated.ConverterImpl
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewAPIRepository creates a new API-based repository implementation
|
||||||
|
func NewAPIRepository(marketplaceRepository marketplace.Repository) Repository {
|
||||||
|
return &apiRepository{
|
||||||
|
marketplaceRepository: marketplaceRepository,
|
||||||
|
converter: &generated.ConverterImpl{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// getBusinessID retrieves the business ID for a given marketplace by looking up the campaign
|
||||||
|
func (r *apiRepository) getBusinessID(ctx context.Context, mp *marketplace.Marketplace) (int64, error) {
|
||||||
|
if mp.CampaignID == "" {
|
||||||
|
return 0, fmt.Errorf("campaign ID is not set for marketplace %d", mp.ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
campaignID, err := r.validateCampaignID(mp.CampaignID, mp.ID)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
client, err := ym.GetClientFromMarketplace(mp)
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("failed to create Yandex Market client: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
businessID, err := r.fetchBusinessIDFromCampaigns(ctx, client, campaignID, mp.ID)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return businessID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// validateCampaignID validates and parses the campaign ID string
|
||||||
|
func (r *apiRepository) validateCampaignID(campaignIDStr string, marketplaceID int) (int64, error) {
|
||||||
|
campaignID, err := strconv.ParseInt(campaignIDStr, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("invalid campaign ID '%s' for marketplace %d: %w", campaignIDStr, marketplaceID, err)
|
||||||
|
}
|
||||||
|
return campaignID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// fetchBusinessIDFromCampaigns retrieves business ID by searching through campaigns
|
||||||
|
func (r *apiRepository) fetchBusinessIDFromCampaigns(ctx context.Context, client *ymclient.APIClient, campaignID int64, marketplaceID int) (int64, error) {
|
||||||
|
rsp, _, err := client.CampaignsAPI.GetCampaigns(ctx).Page(1).PageSize(maxPageSize).Execute()
|
||||||
|
if err != nil {
|
||||||
|
return 0, fmt.Errorf("failed to call GetCampaigns: %w", err)
|
||||||
|
}
|
||||||
|
if rsp == nil {
|
||||||
|
return 0, fmt.Errorf("GetCampaigns returned nil response")
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, campaign := range rsp.Campaigns {
|
||||||
|
if campaign.GetId() == campaignID {
|
||||||
|
return campaign.Business.GetId(), nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0, fmt.Errorf("campaign ID %d not found in GetCampaigns response for marketplace %d", campaignID, marketplaceID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetProducts retrieves products from Yandex Market API in chunks and sends results to channels
|
||||||
|
func (r *apiRepository) GetProducts(ctx context.Context, marketplaceID int, req *pb.GetProductsRequest, resultChan chan<- []*pb.GetProductsResponse_Offer, errChan chan<- error) {
|
||||||
|
defer close(resultChan)
|
||||||
|
defer close(errChan)
|
||||||
|
|
||||||
|
_, client, businessID, err := r.setupMarketplaceClient(ctx, marketplaceID)
|
||||||
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
r.setOfferMappingsRateLimit(businessID)
|
||||||
|
|
||||||
|
for _, chunk := range lo.Chunk(req.OfferIds, defaultChunkSize) {
|
||||||
|
offers, err := r.fetchOfferMappings(ctx, client, businessID, chunk)
|
||||||
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resultChan <- offers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// setupMarketplaceClient initializes marketplace, API client, and business ID
|
||||||
|
func (r *apiRepository) setupMarketplaceClient(ctx context.Context, marketplaceID int) (*marketplace.Marketplace, *ymclient.APIClient, int64, error) {
|
||||||
|
mp, err := r.marketplaceRepository.GetMarketplaceByID(ctx, marketplaceID)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, 0, fmt.Errorf("failed to get marketplace: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
client, err := ym.GetClientFromMarketplace(mp)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, 0, fmt.Errorf("failed to create Yandex Market client: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
businessID, err := r.getBusinessID(ctx, mp)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, 0, fmt.Errorf("failed to get business ID: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return mp, client, businessID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// setOfferMappingsRateLimit configures rate limiting for offer mappings endpoint
|
||||||
|
func (r *apiRepository) setOfferMappingsRateLimit(businessID int64) {
|
||||||
|
path := "/businesses/" + strconv.Itoa(int(businessID)) + "/offer-mappings"
|
||||||
|
ym.SetPathLimit(path, rateLimitWindow, offerMappingsRateLimit)
|
||||||
|
}
|
||||||
|
|
||||||
|
// fetchOfferMappings retrieves offer mappings for a given set of offer IDs
|
||||||
|
func (r *apiRepository) fetchOfferMappings(ctx context.Context, client *ymclient.APIClient, businessID int64, offerIDs []string) ([]*pb.GetProductsResponse_Offer, error) {
|
||||||
|
req := ymclient.NewGetOfferMappingsRequest()
|
||||||
|
req.OfferIds = offerIDs
|
||||||
|
|
||||||
|
rsp, _, err := client.BusinessOfferMappingsAPI.GetOfferMappings(ctx, businessID).GetOfferMappingsRequest(*req).Execute()
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to call GetOfferMappings: %w", err)
|
||||||
|
}
|
||||||
|
if rsp == nil {
|
||||||
|
return nil, fmt.Errorf("GetOfferMappings returned nil response")
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.processOfferMappings(rsp.Result.GetOfferMappings())
|
||||||
|
}
|
||||||
|
|
||||||
|
// processOfferMappings converts YM offer mappings to protobuf format
|
||||||
|
func (r *apiRepository) processOfferMappings(offerMappings []ymclient.GetOfferMappingDTO) ([]*pb.GetProductsResponse_Offer, error) {
|
||||||
|
var resultOffers []*pb.GetProductsResponse_Offer
|
||||||
|
|
||||||
|
for _, offerMapping := range offerMappings {
|
||||||
|
protoOffer := r.converter.YmOfferToProtoOffer(offerMapping.Offer)
|
||||||
|
if protoOffer == nil {
|
||||||
|
fmt.Printf("Warning: received nil offer for ID %s\n", offerMapping.Offer.OfferId)
|
||||||
|
resultOffers = append(resultOffers, &pb.GetProductsResponse_Offer{})
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
resultOffers = append(resultOffers, protoOffer)
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultOffers, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// CalculateProductTariffs calculates tariffs for products using Yandex Market API
|
||||||
|
func (r *apiRepository) CalculateProductTariffs(ctx context.Context, marketplaceID int, req *pb.CalculateProductTariffsRequest, resultChan chan<- []*pb.CalculateProductTariffsResponse, errChan chan<- error) {
|
||||||
|
defer close(resultChan)
|
||||||
|
defer close(errChan)
|
||||||
|
|
||||||
|
_, client, _, err := r.setupMarketplaceClient(ctx, marketplaceID)
|
||||||
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
r.setTariffsRateLimit()
|
||||||
|
|
||||||
|
ymParameters := r.converter.ProtoParametersToYmParameters(req.Parameters)
|
||||||
|
if ymParameters == nil {
|
||||||
|
errChan <- fmt.Errorf("failed to convert request parameters")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
offerChunks := lo.Chunk(req.Offers, defaultChunkSize)
|
||||||
|
|
||||||
|
for chunkIndex, offerChunk := range offerChunks {
|
||||||
|
fmt.Printf("Processing chunk %d/%d with %d offers\n", chunkIndex+1, len(offerChunks), len(offerChunk))
|
||||||
|
|
||||||
|
response, err := r.processTariffChunk(ctx, client, ymParameters, offerChunk, chunkIndex)
|
||||||
|
if err != nil {
|
||||||
|
errChan <- err
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
resultChan <- []*pb.CalculateProductTariffsResponse{response}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// setTariffsRateLimit configures rate limiting for tariffs calculation endpoint
|
||||||
|
func (r *apiRepository) setTariffsRateLimit() {
|
||||||
|
ym.SetPathLimit("/tariffs/calculate", rateLimitWindow, tariffsRateLimit)
|
||||||
|
}
|
||||||
|
|
||||||
|
// processTariffChunk processes a single chunk of offers for tariff calculation
|
||||||
|
func (r *apiRepository) processTariffChunk(ctx context.Context, client *ymclient.APIClient, ymParameters *ymclient.CalculateTariffsParametersDTO, offerChunk []*pb.CalculateProductTariffsRequest_Offers, chunkIndex int) (*pb.CalculateProductTariffsResponse, error) {
|
||||||
|
ymOffers := r.convertOffersToYM(offerChunk)
|
||||||
|
if len(ymOffers) == 0 {
|
||||||
|
fmt.Printf("Skipping chunk %d: no valid offers\n", chunkIndex+1)
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
ymRequest := ymclient.NewCalculateTariffsRequest(*ymParameters, ymOffers)
|
||||||
|
|
||||||
|
response, httpResp, err := client.TariffsAPI.CalculateTariffs(ctx).
|
||||||
|
CalculateTariffsRequest(*ymRequest).
|
||||||
|
Execute()
|
||||||
|
|
||||||
|
if httpResp != nil && httpResp.Body != nil {
|
||||||
|
_ = httpResp.Body.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to call Yandex Market API for chunk %d: %w", chunkIndex+1, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if response == nil || response.Result == nil {
|
||||||
|
fmt.Printf("Warning: received empty response for chunk %d\n", chunkIndex+1)
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.convertResponseToProto(response), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertOffersToYM converts protobuf offers to Yandex Market format
|
||||||
|
func (r *apiRepository) convertOffersToYM(offers []*pb.CalculateProductTariffsRequest_Offers) []ymclient.CalculateTariffsOfferDTO {
|
||||||
|
var ymOffers []ymclient.CalculateTariffsOfferDTO
|
||||||
|
for _, offer := range offers {
|
||||||
|
ymOffer := r.converter.ProtoOfferToYmOffer(offer)
|
||||||
|
if ymOffer != nil {
|
||||||
|
ymOffers = append(ymOffers, *ymOffer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ymOffers
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertResponseToProto converts Yandex Market response to protobuf format
|
||||||
|
func (r *apiRepository) convertResponseToProto(response *ymclient.CalculateTariffsResponse) *pb.CalculateProductTariffsResponse {
|
||||||
|
var offers []*pb.CalculateProductTariffsResponse_Offers
|
||||||
|
|
||||||
|
if response.Result.Offers != nil {
|
||||||
|
for _, ymOfferInfo := range response.Result.Offers {
|
||||||
|
pbResponseOffer := r.converter.YmOfferToProtoResponseOffer(&ymOfferInfo)
|
||||||
|
if pbResponseOffer != nil {
|
||||||
|
offers = append(offers, pbResponseOffer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result := &pb.CalculateProductTariffsResponse{}
|
||||||
|
result.Offers = offers
|
||||||
|
return result
|
||||||
|
}
|
||||||
113
internal/ym/rate_limiter.go
Normal file
113
internal/ym/rate_limiter.go
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
package ym
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"sipro-mps/internal/redis"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/redis/rueidis"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RateLimit defines a rate limit configuration
|
||||||
|
type RateLimit struct {
|
||||||
|
Count int // Number of requests allowed
|
||||||
|
TimeDelta time.Duration // Time window
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path rate limits for Yandex Market API
|
||||||
|
var PathLimits = map[string]RateLimit{
|
||||||
|
"/tariffs/calculate": {Count: 100, TimeDelta: time.Minute},
|
||||||
|
"/campaigns": {Count: 300, TimeDelta: time.Minute},
|
||||||
|
"/orders": {Count: 1000, TimeDelta: time.Minute},
|
||||||
|
}
|
||||||
|
|
||||||
|
var rateLimitScript = rueidis.NewLuaScript(`
|
||||||
|
local key = KEYS[1]
|
||||||
|
local now = tonumber(ARGV[1])
|
||||||
|
local window = tonumber(ARGV[2])
|
||||||
|
local limit = tonumber(ARGV[3])
|
||||||
|
|
||||||
|
-- Remove old entries outside the time window
|
||||||
|
redis.call('ZREMRANGEBYSCORE', key, '-inf', now - window)
|
||||||
|
local count = redis.call('ZCARD', key)
|
||||||
|
|
||||||
|
if count < limit then
|
||||||
|
-- Add new request timestamp and set TTL
|
||||||
|
redis.call('ZADD', key, now, now)
|
||||||
|
redis.call('EXPIRE', key, math.ceil(window / 1000))
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
-- Find oldest request timestamp
|
||||||
|
local oldest = redis.call('ZRANGE', key, 0, 0, 'WITHSCORES')[2]
|
||||||
|
-- Return wait time until oldest request expires
|
||||||
|
return (tonumber(oldest) + window) - now
|
||||||
|
end
|
||||||
|
`)
|
||||||
|
|
||||||
|
type RateLimitTransport struct {
|
||||||
|
http.RoundTripper
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *RateLimitTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||||
|
ctx := req.Context()
|
||||||
|
|
||||||
|
// Extract API key from headers
|
||||||
|
apiKey := req.Header.Get("Api-Key")
|
||||||
|
if apiKey == "" {
|
||||||
|
return nil, fmt.Errorf("Api-Key header is required for rate limiting")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get path from header or URL
|
||||||
|
var path string
|
||||||
|
path = req.URL.Path
|
||||||
|
|
||||||
|
// Get rate limit for this path
|
||||||
|
rateLimit, exists := PathLimits[path]
|
||||||
|
if !exists {
|
||||||
|
rateLimit = RateLimit{Count: 100, TimeDelta: time.Minute} // default limit
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create unique key based on API key and path
|
||||||
|
rateLimitKey := fmt.Sprintf("ym:ratelimit:%s:%s", apiKey, path)
|
||||||
|
|
||||||
|
now := time.Now().UnixMilli()
|
||||||
|
windowMillis := int64(rateLimit.TimeDelta / time.Millisecond)
|
||||||
|
|
||||||
|
client := *redis.Client
|
||||||
|
|
||||||
|
waitTime, err := rateLimitScript.Exec(ctx, client, []string{rateLimitKey}, []string{
|
||||||
|
fmt.Sprintf("%d", now),
|
||||||
|
fmt.Sprintf("%d", windowMillis),
|
||||||
|
fmt.Sprintf("%d", rateLimit.Count),
|
||||||
|
}).ToInt64()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("rate limit script error: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if waitTime > 0 {
|
||||||
|
select {
|
||||||
|
case <-time.After(time.Duration(waitTime) * time.Millisecond):
|
||||||
|
case <-ctx.Done():
|
||||||
|
return nil, ctx.Err()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.RoundTripper.RoundTrip(req)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewRateLimitTransport creates a new rate limiting transport
|
||||||
|
func NewRateLimitTransport() *RateLimitTransport {
|
||||||
|
return &RateLimitTransport{
|
||||||
|
RoundTripper: http.DefaultTransport,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPathLimit sets a custom rate limit for a specific path
|
||||||
|
func SetPathLimit(path string, timeDelta time.Duration, count int) {
|
||||||
|
PathLimits[path] = RateLimit{
|
||||||
|
Count: count,
|
||||||
|
TimeDelta: timeDelta,
|
||||||
|
}
|
||||||
|
}
|
||||||
7
pkg/api/yandex/openapitools.json
Normal file
7
pkg/api/yandex/openapitools.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
|
||||||
|
"spaces": 2,
|
||||||
|
"generator-cli": {
|
||||||
|
"version": "7.14.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
pkg/api/yandex/raw
Submodule
1
pkg/api/yandex/raw
Submodule
Submodule pkg/api/yandex/raw added at 7d76f430a2
24
pkg/api/yandex/ymclient/.gitignore
vendored
Normal file
24
pkg/api/yandex/ymclient/.gitignore
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Compiled Object files, Static and Dynamic libs (Shared Objects)
|
||||||
|
*.o
|
||||||
|
*.a
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Folders
|
||||||
|
_obj
|
||||||
|
_test
|
||||||
|
|
||||||
|
# Architecture specific extensions/prefixes
|
||||||
|
*.[568vq]
|
||||||
|
[568vq].out
|
||||||
|
|
||||||
|
*.cgo1.go
|
||||||
|
*.cgo2.c
|
||||||
|
_cgo_defun.c
|
||||||
|
_cgo_gotypes.go
|
||||||
|
_cgo_export.*
|
||||||
|
|
||||||
|
_testmain.go
|
||||||
|
|
||||||
|
*.exe
|
||||||
|
*.test
|
||||||
|
*.prof
|
||||||
23
pkg/api/yandex/ymclient/.openapi-generator-ignore
Normal file
23
pkg/api/yandex/ymclient/.openapi-generator-ignore
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# OpenAPI Generator Ignore
|
||||||
|
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
||||||
|
|
||||||
|
# Use this file to prevent files from being overwritten by the generator.
|
||||||
|
# The patterns follow closely to .gitignore or .dockerignore.
|
||||||
|
|
||||||
|
# As an example, the C# client generator defines ApiClient.cs.
|
||||||
|
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
||||||
|
#ApiClient.cs
|
||||||
|
|
||||||
|
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
||||||
|
#foo/*/qux
|
||||||
|
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
||||||
|
|
||||||
|
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
||||||
|
#foo/**/qux
|
||||||
|
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
||||||
|
|
||||||
|
# You can also negate patterns with an exclamation (!).
|
||||||
|
# For example, you can ignore all files in a docs folder with the file extension .md:
|
||||||
|
#docs/*.md
|
||||||
|
# Then explicitly reverse the ignore rule for a single file:
|
||||||
|
#!docs/README.md
|
||||||
1414
pkg/api/yandex/ymclient/.openapi-generator/FILES
Normal file
1414
pkg/api/yandex/ymclient/.openapi-generator/FILES
Normal file
File diff suppressed because it is too large
Load Diff
1
pkg/api/yandex/ymclient/.openapi-generator/VERSION
Normal file
1
pkg/api/yandex/ymclient/.openapi-generator/VERSION
Normal file
@@ -0,0 +1 @@
|
|||||||
|
7.14.0
|
||||||
8
pkg/api/yandex/ymclient/.travis.yml
Normal file
8
pkg/api/yandex/ymclient/.travis.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
language: go
|
||||||
|
|
||||||
|
install:
|
||||||
|
- go get -d -v .
|
||||||
|
|
||||||
|
script:
|
||||||
|
- go build -v ./
|
||||||
|
|
||||||
1478
pkg/api/yandex/ymclient/README.md
Normal file
1478
pkg/api/yandex/ymclient/README.md
Normal file
File diff suppressed because it is too large
Load Diff
43011
pkg/api/yandex/ymclient/api/openapi.yaml
Normal file
43011
pkg/api/yandex/ymclient/api/openapi.yaml
Normal file
File diff suppressed because it is too large
Load Diff
199
pkg/api/yandex/ymclient/api_auth.go
Normal file
199
pkg/api/yandex/ymclient/api_auth.go
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AuthAPIService AuthAPI service
|
||||||
|
type AuthAPIService service
|
||||||
|
|
||||||
|
type AuthAPIGetAuthTokenInfoRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *AuthAPIService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r AuthAPIGetAuthTokenInfoRequest) Execute() (*GetTokenInfoResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetAuthTokenInfoExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetAuthTokenInfo Получение информации об авторизационном токене
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getAuthTokenInfo.md) %}
|
||||||
|
|
||||||
|
{% note info "Метод доступен только для Api-Key-токена." %}
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Возвращает информацию о переданном авторизационном токене.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return AuthAPIGetAuthTokenInfoRequest
|
||||||
|
*/
|
||||||
|
func (a *AuthAPIService) GetAuthTokenInfo(ctx context.Context) AuthAPIGetAuthTokenInfoRequest {
|
||||||
|
return AuthAPIGetAuthTokenInfoRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetTokenInfoResponse
|
||||||
|
func (a *AuthAPIService) GetAuthTokenInfoExecute(r AuthAPIGetAuthTokenInfoRequest) (*GetTokenInfoResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetTokenInfoResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "AuthAPIService.GetAuthTokenInfo")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/auth/token"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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 == 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
|
||||||
|
}
|
||||||
924
pkg/api/yandex/ymclient/api_bids.go
Normal file
924
pkg/api/yandex/ymclient/api_bids.go
Normal file
@@ -0,0 +1,924 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BidsAPIService BidsAPI service
|
||||||
|
type BidsAPIService service
|
||||||
|
|
||||||
|
type BidsAPIGetBidsInfoForBusinessRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *BidsAPIService
|
||||||
|
businessId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getBidsInfoRequest *GetBidsInfoRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r BidsAPIGetBidsInfoForBusinessRequest) PageToken(pageToken string) BidsAPIGetBidsInfoForBusinessRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r BidsAPIGetBidsInfoForBusinessRequest) Limit(limit int32) BidsAPIGetBidsInfoForBusinessRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// description
|
||||||
|
func (r BidsAPIGetBidsInfoForBusinessRequest) GetBidsInfoRequest(getBidsInfoRequest GetBidsInfoRequest) BidsAPIGetBidsInfoForBusinessRequest {
|
||||||
|
r.getBidsInfoRequest = &getBidsInfoRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r BidsAPIGetBidsInfoForBusinessRequest) Execute() (*GetBidsInfoResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetBidsInfoForBusinessExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetBidsInfoForBusiness Информация об установленных ставках
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getBidsInfoForBusiness.md) %}
|
||||||
|
|
||||||
|
Возвращает значения ставок для заданных товаров.
|
||||||
|
|
||||||
|
{% note warning "Получить информацию по кампаниям, созданным в кабинете, не получится" %}
|
||||||
|
|
||||||
|
В ответе возвращаются значения только тех ставок, которые вы установили через запрос [PUT businesses/{businessId}/bids](../../reference/bids/putBidsForBusiness.md).
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
В одном запросе может быть максимум 1500 товаров.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return BidsAPIGetBidsInfoForBusinessRequest
|
||||||
|
*/
|
||||||
|
func (a *BidsAPIService) GetBidsInfoForBusiness(ctx context.Context, businessId int64) BidsAPIGetBidsInfoForBusinessRequest {
|
||||||
|
return BidsAPIGetBidsInfoForBusinessRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetBidsInfoResponse
|
||||||
|
func (a *BidsAPIService) GetBidsInfoForBusinessExecute(r BidsAPIGetBidsInfoForBusinessRequest) (*GetBidsInfoResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetBidsInfoResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "BidsAPIService.GetBidsInfoForBusiness")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/bids/info"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getBidsInfoRequest
|
||||||
|
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 BidsAPIGetBidsRecommendationsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *BidsAPIService
|
||||||
|
businessId int64
|
||||||
|
getBidsRecommendationsRequest *GetBidsRecommendationsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// description.
|
||||||
|
func (r BidsAPIGetBidsRecommendationsRequest) GetBidsRecommendationsRequest(getBidsRecommendationsRequest GetBidsRecommendationsRequest) BidsAPIGetBidsRecommendationsRequest {
|
||||||
|
r.getBidsRecommendationsRequest = &getBidsRecommendationsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r BidsAPIGetBidsRecommendationsRequest) Execute() (*GetBidsRecommendationsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetBidsRecommendationsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetBidsRecommendations Рекомендованные ставки для заданных товаров
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getBidsRecommendations.md) %}
|
||||||
|
|
||||||
|
Возвращает рекомендованные ставки для заданных товаров, что обеспечивает вашим предложениям определенную долю показов, и дополнительные инструменты продвижения.
|
||||||
|
|
||||||
|
Для одного товара может возвращаться одна рекомендованная ставка или несколько. Во втором случае разные ставки предназначены для достижения разной доли показов и получения дополнительных инструментов продвижения.
|
||||||
|
|
||||||
|
Если товар только добавлен в каталог, но пока не продается, рекомендованной ставки для него не будет.
|
||||||
|
|
||||||
|
В одном запросе может быть максимум 1500 товаров.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return BidsAPIGetBidsRecommendationsRequest
|
||||||
|
*/
|
||||||
|
func (a *BidsAPIService) GetBidsRecommendations(ctx context.Context, businessId int64) BidsAPIGetBidsRecommendationsRequest {
|
||||||
|
return BidsAPIGetBidsRecommendationsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetBidsRecommendationsResponse
|
||||||
|
func (a *BidsAPIService) GetBidsRecommendationsExecute(r BidsAPIGetBidsRecommendationsRequest) (*GetBidsRecommendationsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetBidsRecommendationsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "BidsAPIService.GetBidsRecommendations")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/bids/recommendations"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getBidsRecommendationsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getBidsRecommendationsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getBidsRecommendationsRequest
|
||||||
|
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 BidsAPIPutBidsForBusinessRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *BidsAPIService
|
||||||
|
businessId int64
|
||||||
|
putSkuBidsRequest *PutSkuBidsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// description
|
||||||
|
func (r BidsAPIPutBidsForBusinessRequest) PutSkuBidsRequest(putSkuBidsRequest PutSkuBidsRequest) BidsAPIPutBidsForBusinessRequest {
|
||||||
|
r.putSkuBidsRequest = &putSkuBidsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r BidsAPIPutBidsForBusinessRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.PutBidsForBusinessExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PutBidsForBusiness Включение буста продаж и установка ставок
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/putBidsForBusiness.md) %}
|
||||||
|
|
||||||
|
Запускает буст продаж — создает и включает кампанию, добавляет в нее товары и назначает на них ставки.
|
||||||
|
|
||||||
|
{% cut "Как в кабинете выглядит кампания, созданная через :no-translate[API]" %}
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
{% endcut %}
|
||||||
|
|
||||||
|
При первом использовании запроса Маркет: создаст единую на все магазины бизнес-аккаунта кампанию, добавит в нее товары с указанными ставками, включит для них ценовую стратегию и запустит продвижение. Повторное использование запроса позволит обновить ставки на товары в этой кампании или добавить новые. Подробнее о ценовой стратегии читайте в [Справке Маркета для продавцов](https://yandex.ru/support/marketplace/marketing/campaigns.html#price-strategy).
|
||||||
|
|
||||||
|
Если товара с указанным :no-translate[SKU] нет, он будет проигнорирован. Если в будущем в каталоге появится товар с таким :no-translate[SKU], он автоматически будет добавлен в кампанию с указанной ставкой.
|
||||||
|
|
||||||
|
Запрос всегда работает с одной и той же созданной через :no-translate[API] кампанией. Если в кабинете удалить ее, при следующем выполнении запроса Маркет создаст новую. Другими кампаниями управлять через :no-translate[API] не получится. У созданной через :no-translate[API] кампании всегда наибольший приоритет над остальными — изменить его нельзя.
|
||||||
|
|
||||||
|
Выполнение запроса включает кампанию и ценовую стратегию, если они были отключены.
|
||||||
|
|
||||||
|
Внести другие изменения в созданную через :no-translate[API] кампанию можно в кабинете:
|
||||||
|
|
||||||
|
* выключить или включить кампанию;
|
||||||
|
* изменить ее название;
|
||||||
|
* выключить или включить ценовую стратегию.
|
||||||
|
|
||||||
|
Чтобы остановить продвижение отдельных товаров и удалить их из кампании, передайте для них нулевую ставку в параметре `bid`.
|
||||||
|
|
||||||
|
Подробнее о том, как работает буст продаж, читайте в [Справке Маркета для продавцов](https://yandex.ru/support/marketplace/marketing/campaigns.html).
|
||||||
|
|
||||||
|
Узнать расходы на буст продаж можно с помощью запроса [POST campaigns/{campaignId}/stats/orders](../../reference/stats/getOrdersStats.md). Сумма содержится в поле `bidFee`.
|
||||||
|
|
||||||
|
{% note info "Данные обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return BidsAPIPutBidsForBusinessRequest
|
||||||
|
*/
|
||||||
|
func (a *BidsAPIService) PutBidsForBusiness(ctx context.Context, businessId int64) BidsAPIPutBidsForBusinessRequest {
|
||||||
|
return BidsAPIPutBidsForBusinessRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *BidsAPIService) PutBidsForBusinessExecute(r BidsAPIPutBidsForBusinessRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPut
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "BidsAPIService.PutBidsForBusiness")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/bids"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.putSkuBidsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("putSkuBidsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.putSkuBidsRequest
|
||||||
|
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 BidsAPIPutBidsForCampaignRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *BidsAPIService
|
||||||
|
campaignId int64
|
||||||
|
putSkuBidsRequest *PutSkuBidsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// description
|
||||||
|
func (r BidsAPIPutBidsForCampaignRequest) PutSkuBidsRequest(putSkuBidsRequest PutSkuBidsRequest) BidsAPIPutBidsForCampaignRequest {
|
||||||
|
r.putSkuBidsRequest = &putSkuBidsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r BidsAPIPutBidsForCampaignRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.PutBidsForCampaignExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PutBidsForCampaign Включение буста продаж и установка ставок для магазина
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/putBidsForCampaign.md) %}
|
||||||
|
|
||||||
|
Запускает буст продаж в указанном магазине — создает и включает кампанию, добавляет в нее товары и назначает на них ставки.
|
||||||
|
|
||||||
|
При первом использовании запроса Маркет: создаст кампанию, добавит в нее товары с указанными ставками для заданного магазина, включит для них ценовую стратегию и запустит продвижение. Повторное использование запроса позволит обновить ставки на товары в этой кампании или добавить новые. Подробнее о ценовой стратегии читайте в [Справке Маркета для продавцов](https://yandex.ru/support/marketplace/marketing/campaigns.html#price-strategy).
|
||||||
|
|
||||||
|
Если товара с указанным :no-translate[SKU] нет, он будет проигнорирован. Если в будущем в каталоге появится товар с таким :no-translate[SKU], он автоматически будет добавлен в кампанию с указанной ставкой.
|
||||||
|
|
||||||
|
Запрос всегда работает с одной и той же кампанией, созданной через этот запрос или [PUT businesses/{businessId}/bids](/reference/bids/putBidsForBusiness). Если в кабинете удалить ее, при следующем выполнении запроса Маркет создаст новую. У созданной через :no-translate[API] кампании всегда наибольший приоритет над остальными — изменить его нельзя.
|
||||||
|
|
||||||
|
Выполнение запроса включает кампанию и ценовую стратегию, если они были отключены.
|
||||||
|
|
||||||
|
Внести другие изменения в созданную через :no-translate[API] кампанию можно в кабинете:
|
||||||
|
|
||||||
|
* выключить или включить кампанию;
|
||||||
|
* изменить ее название;
|
||||||
|
* выключить или включить ценовую стратегию.
|
||||||
|
|
||||||
|
Чтобы остановить продвижение отдельных товаров и удалить их из кампании, передайте для них нулевую ставку в параметре `bid`.
|
||||||
|
|
||||||
|
Подробнее о том, как работает буст продаж, читайте в [Справке Маркета для продавцов](https://yandex.ru/support/marketplace/marketing/campaigns.html).
|
||||||
|
|
||||||
|
Узнать расходы на буст продаж можно с помощью запроса [POST campaigns/{campaignId}/stats/orders](../../reference/stats/getOrdersStats.md). Сумма содержится в поле `bidFee`.
|
||||||
|
|
||||||
|
{% note info "Данные обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return BidsAPIPutBidsForCampaignRequest
|
||||||
|
*/
|
||||||
|
func (a *BidsAPIService) PutBidsForCampaign(ctx context.Context, campaignId int64) BidsAPIPutBidsForCampaignRequest {
|
||||||
|
return BidsAPIPutBidsForCampaignRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *BidsAPIService) PutBidsForCampaignExecute(r BidsAPIPutBidsForCampaignRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPut
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "BidsAPIService.PutBidsForCampaign")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/bids"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.putSkuBidsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("putSkuBidsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.putSkuBidsRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
1409
pkg/api/yandex/ymclient/api_business_offer_mappings.go
Normal file
1409
pkg/api/yandex/ymclient/api_business_offer_mappings.go
Normal file
File diff suppressed because it is too large
Load Diff
213
pkg/api/yandex/ymclient/api_businesses.go
Normal file
213
pkg/api/yandex/ymclient/api_businesses.go
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BusinessesAPIService BusinessesAPI service
|
||||||
|
type BusinessesAPIService service
|
||||||
|
|
||||||
|
type BusinessesAPIGetBusinessSettingsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *BusinessesAPIService
|
||||||
|
businessId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r BusinessesAPIGetBusinessSettingsRequest) Execute() (*GetBusinessSettingsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetBusinessSettingsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetBusinessSettings Настройки кабинета
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getBusinessSettings.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о настройках кабинета, идентификатор которого указан в запросе.
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return BusinessesAPIGetBusinessSettingsRequest
|
||||||
|
*/
|
||||||
|
func (a *BusinessesAPIService) GetBusinessSettings(ctx context.Context, businessId int64) BusinessesAPIGetBusinessSettingsRequest {
|
||||||
|
return BusinessesAPIGetBusinessSettingsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetBusinessSettingsResponse
|
||||||
|
func (a *BusinessesAPIService) GetBusinessSettingsExecute(r BusinessesAPIGetBusinessSettingsRequest) (*GetBusinessSettingsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetBusinessSettingsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "BusinessesAPIService.GetBusinessSettings")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/settings"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
612
pkg/api/yandex/ymclient/api_campaigns.go
Normal file
612
pkg/api/yandex/ymclient/api_campaigns.go
Normal file
@@ -0,0 +1,612 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CampaignsAPIService CampaignsAPI service
|
||||||
|
type CampaignsAPIService service
|
||||||
|
|
||||||
|
type CampaignsAPIGetCampaignRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *CampaignsAPIService
|
||||||
|
campaignId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CampaignsAPIGetCampaignRequest) Execute() (*GetCampaignResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCampaignExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCampaign Информация о магазине
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCampaign.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о магазине.
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return CampaignsAPIGetCampaignRequest
|
||||||
|
*/
|
||||||
|
func (a *CampaignsAPIService) GetCampaign(ctx context.Context, campaignId int64) CampaignsAPIGetCampaignRequest {
|
||||||
|
return CampaignsAPIGetCampaignRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCampaignResponse
|
||||||
|
func (a *CampaignsAPIService) GetCampaignExecute(r CampaignsAPIGetCampaignRequest) (*GetCampaignResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCampaignResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "CampaignsAPIService.GetCampaign")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 CampaignsAPIGetCampaignSettingsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *CampaignsAPIService
|
||||||
|
campaignId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CampaignsAPIGetCampaignSettingsRequest) Execute() (*GetCampaignSettingsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCampaignSettingsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCampaignSettings Настройки магазина
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCampaignSettings.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о настройках магазина, идентификатор которого указан в запросе.
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return CampaignsAPIGetCampaignSettingsRequest
|
||||||
|
*/
|
||||||
|
func (a *CampaignsAPIService) GetCampaignSettings(ctx context.Context, campaignId int64) CampaignsAPIGetCampaignSettingsRequest {
|
||||||
|
return CampaignsAPIGetCampaignSettingsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCampaignSettingsResponse
|
||||||
|
func (a *CampaignsAPIService) GetCampaignSettingsExecute(r CampaignsAPIGetCampaignSettingsRequest) (*GetCampaignSettingsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCampaignSettingsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "CampaignsAPIService.GetCampaignSettings")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/settings"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 CampaignsAPIGetCampaignsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *CampaignsAPIService
|
||||||
|
page *int32
|
||||||
|
pageSize *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// {% 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 CampaignsAPIGetCampaignsRequest) Page(page int32) CampaignsAPIGetCampaignsRequest {
|
||||||
|
r.page = &page
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Размер страницы. Используется вместе с параметром :no-translate[`page`]. :no-translate[`pageSize`] игнорируется, если задан :no-translate[`page_token`] или :no-translate[`limit`].
|
||||||
|
func (r CampaignsAPIGetCampaignsRequest) PageSize(pageSize int32) CampaignsAPIGetCampaignsRequest {
|
||||||
|
r.pageSize = &pageSize
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CampaignsAPIGetCampaignsRequest) Execute() (*GetCampaignsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCampaignsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCampaigns Список магазинов пользователя
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCampaigns.md) %}
|
||||||
|
|
||||||
|
**Для Api-Key-токена:** возвращает список магазинов в кабинете, для которого выдан токен. Нельзя получить список только подагентских магазинов.
|
||||||
|
|
||||||
|
**Для OAuth-токена:** возвращает список магазинов, к которым имеет доступ пользователь — владелец авторизационного токена, использованного в запросе. Для агентских пользователей список состоит из подагентских магазинов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return CampaignsAPIGetCampaignsRequest
|
||||||
|
*/
|
||||||
|
func (a *CampaignsAPIService) GetCampaigns(ctx context.Context) CampaignsAPIGetCampaignsRequest {
|
||||||
|
return CampaignsAPIGetCampaignsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCampaignsResponse
|
||||||
|
func (a *CampaignsAPIService) GetCampaignsExecute(r CampaignsAPIGetCampaignsRequest) (*GetCampaignsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCampaignsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "CampaignsAPIService.GetCampaigns")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
417
pkg/api/yandex/ymclient/api_categories.go
Normal file
417
pkg/api/yandex/ymclient/api_categories.go
Normal file
@@ -0,0 +1,417 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CategoriesAPIService CategoriesAPI service
|
||||||
|
type CategoriesAPIService service
|
||||||
|
|
||||||
|
type CategoriesAPIGetCategoriesMaxSaleQuantumRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *CategoriesAPIService
|
||||||
|
getCategoriesMaxSaleQuantumRequest *GetCategoriesMaxSaleQuantumRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CategoriesAPIGetCategoriesMaxSaleQuantumRequest) GetCategoriesMaxSaleQuantumRequest(getCategoriesMaxSaleQuantumRequest GetCategoriesMaxSaleQuantumRequest) CategoriesAPIGetCategoriesMaxSaleQuantumRequest {
|
||||||
|
r.getCategoriesMaxSaleQuantumRequest = &getCategoriesMaxSaleQuantumRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CategoriesAPIGetCategoriesMaxSaleQuantumRequest) Execute() (*GetCategoriesMaxSaleQuantumResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCategoriesMaxSaleQuantumExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCategoriesMaxSaleQuantum Лимит на установку кванта продажи и минимального количества товаров в заказе
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCategoriesMaxSaleQuantum.md) %}
|
||||||
|
|
||||||
|
Возвращает лимит на установку [кванта](:no-translate[*quantum]) и минимального количества товаров в заказе, которые вы можете задать для товаров указанных категорий.
|
||||||
|
|
||||||
|
Если вы передадите значение кванта или минимального количества товаров выше установленного Маркетом ограничения, товар будет скрыт с витрины.
|
||||||
|
|
||||||
|
Подробнее о том, как продавать товары по несколько штук, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/fields/quantum).
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 5 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return CategoriesAPIGetCategoriesMaxSaleQuantumRequest
|
||||||
|
|
||||||
|
Deprecated
|
||||||
|
*/
|
||||||
|
func (a *CategoriesAPIService) GetCategoriesMaxSaleQuantum(ctx context.Context) CategoriesAPIGetCategoriesMaxSaleQuantumRequest {
|
||||||
|
return CategoriesAPIGetCategoriesMaxSaleQuantumRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCategoriesMaxSaleQuantumResponse
|
||||||
|
//
|
||||||
|
// Deprecated
|
||||||
|
func (a *CategoriesAPIService) GetCategoriesMaxSaleQuantumExecute(r CategoriesAPIGetCategoriesMaxSaleQuantumRequest) (*GetCategoriesMaxSaleQuantumResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCategoriesMaxSaleQuantumResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "CategoriesAPIService.GetCategoriesMaxSaleQuantum")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/categories/max-sale-quantum"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.getCategoriesMaxSaleQuantumRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getCategoriesMaxSaleQuantumRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getCategoriesMaxSaleQuantumRequest
|
||||||
|
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 CategoriesAPIGetCategoriesTreeRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *CategoriesAPIService
|
||||||
|
getCategoriesRequest *GetCategoriesRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CategoriesAPIGetCategoriesTreeRequest) GetCategoriesRequest(getCategoriesRequest GetCategoriesRequest) CategoriesAPIGetCategoriesTreeRequest {
|
||||||
|
r.getCategoriesRequest = &getCategoriesRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r CategoriesAPIGetCategoriesTreeRequest) Execute() (*GetCategoriesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCategoriesTreeExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCategoriesTree Дерево категорий
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCategoriesTree.md) %}
|
||||||
|
|
||||||
|
Возвращает дерево категорий Маркета.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return CategoriesAPIGetCategoriesTreeRequest
|
||||||
|
*/
|
||||||
|
func (a *CategoriesAPIService) GetCategoriesTree(ctx context.Context) CategoriesAPIGetCategoriesTreeRequest {
|
||||||
|
return CategoriesAPIGetCategoriesTreeRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCategoriesResponse
|
||||||
|
func (a *CategoriesAPIService) GetCategoriesTreeExecute(r CategoriesAPIGetCategoriesTreeRequest) (*GetCategoriesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCategoriesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "CategoriesAPIService.GetCategoriesTree")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/categories/tree"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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.getCategoriesRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
1589
pkg/api/yandex/ymclient/api_chats.go
Normal file
1589
pkg/api/yandex/ymclient/api_chats.go
Normal file
File diff suppressed because it is too large
Load Diff
676
pkg/api/yandex/ymclient/api_content.go
Normal file
676
pkg/api/yandex/ymclient/api_content.go
Normal file
@@ -0,0 +1,676 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ContentAPIService ContentAPI service
|
||||||
|
type ContentAPIService service
|
||||||
|
|
||||||
|
type ContentAPIGetCategoryContentParametersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *ContentAPIService
|
||||||
|
categoryId int64
|
||||||
|
businessId *int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). Передайте параметр, чтобы получить характеристики, которые являются особенностями варианта товара в данном кабинете.
|
||||||
|
func (r ContentAPIGetCategoryContentParametersRequest) BusinessId(businessId int64) ContentAPIGetCategoryContentParametersRequest {
|
||||||
|
r.businessId = &businessId
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r ContentAPIGetCategoryContentParametersRequest) Execute() (*GetCategoryContentParametersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCategoryContentParametersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCategoryContentParameters Списки характеристик товаров по категориям
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCategoryContentParameters.md) %}
|
||||||
|
|
||||||
|
Возвращает список характеристик с допустимыми значениями для заданной листовой категории — той, у которой нет дочерних категорий.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 категорий в минуту |
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param categoryId Идентификатор категории на Маркете. Чтобы узнать идентификатор категории, к которой относится интересующий вас товар, воспользуйтесь запросом [:no-translate[POST categories/tree]](:no-translate[../../reference/categories/getCategoriesTree.md]).
|
||||||
|
@return ContentAPIGetCategoryContentParametersRequest
|
||||||
|
*/
|
||||||
|
func (a *ContentAPIService) GetCategoryContentParameters(ctx context.Context, categoryId int64) ContentAPIGetCategoryContentParametersRequest {
|
||||||
|
return ContentAPIGetCategoryContentParametersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
categoryId: categoryId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCategoryContentParametersResponse
|
||||||
|
func (a *ContentAPIService) GetCategoryContentParametersExecute(r ContentAPIGetCategoryContentParametersRequest) (*GetCategoryContentParametersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCategoryContentParametersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ContentAPIService.GetCategoryContentParameters")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/category/{categoryId}/parameters"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"categoryId"+"}", url.PathEscape(parameterValueToString(r.categoryId, "categoryId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.categoryId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("categoryId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.businessId != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "businessId", r.businessId, "", "")
|
||||||
|
}
|
||||||
|
// 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 ContentAPIGetOfferCardsContentStatusRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *ContentAPIService
|
||||||
|
businessId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getOfferCardsContentStatusRequest *GetOfferCardsContentStatusRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r ContentAPIGetOfferCardsContentStatusRequest) PageToken(pageToken string) ContentAPIGetOfferCardsContentStatusRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r ContentAPIGetOfferCardsContentStatusRequest) Limit(limit int32) ContentAPIGetOfferCardsContentStatusRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r ContentAPIGetOfferCardsContentStatusRequest) GetOfferCardsContentStatusRequest(getOfferCardsContentStatusRequest GetOfferCardsContentStatusRequest) ContentAPIGetOfferCardsContentStatusRequest {
|
||||||
|
r.getOfferCardsContentStatusRequest = &getOfferCardsContentStatusRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r ContentAPIGetOfferCardsContentStatusRequest) Execute() (*GetOfferCardsContentStatusResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOfferCardsContentStatusExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOfferCardsContentStatus Получение информации о заполненности карточек магазина
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOfferCardsContentStatus.md) %}
|
||||||
|
|
||||||
|
Возвращает сведения о состоянии контента для заданных товаров:
|
||||||
|
|
||||||
|
* создана ли карточка товара и в каком она статусе;
|
||||||
|
* рейтинг карточки — на сколько процентов она заполнена;
|
||||||
|
* переданные характеристики товаров;
|
||||||
|
* есть ли ошибки или предупреждения, связанные с контентом;
|
||||||
|
* рекомендации по заполнению карточки.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 600 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return ContentAPIGetOfferCardsContentStatusRequest
|
||||||
|
*/
|
||||||
|
func (a *ContentAPIService) GetOfferCardsContentStatus(ctx context.Context, businessId int64) ContentAPIGetOfferCardsContentStatusRequest {
|
||||||
|
return ContentAPIGetOfferCardsContentStatusRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOfferCardsContentStatusResponse
|
||||||
|
func (a *ContentAPIService) GetOfferCardsContentStatusExecute(r ContentAPIGetOfferCardsContentStatusRequest) (*GetOfferCardsContentStatusResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOfferCardsContentStatusResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ContentAPIService.GetOfferCardsContentStatus")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/offer-cards"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getOfferCardsContentStatusRequest
|
||||||
|
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 ContentAPIUpdateOfferContentRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *ContentAPIService
|
||||||
|
businessId int64
|
||||||
|
updateOfferContentRequest *UpdateOfferContentRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r ContentAPIUpdateOfferContentRequest) UpdateOfferContentRequest(updateOfferContentRequest UpdateOfferContentRequest) ContentAPIUpdateOfferContentRequest {
|
||||||
|
r.updateOfferContentRequest = &updateOfferContentRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r ContentAPIUpdateOfferContentRequest) Execute() (*UpdateOfferContentResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateOfferContentExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateOfferContent Редактирование категорийных характеристик товара
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateOfferContent.md) %}
|
||||||
|
|
||||||
|
Редактирует характеристики товара, которые специфичны для категории, к которой он относится.
|
||||||
|
|
||||||
|
{% note warning "Здесь только то, что относится к конкретной категории" %}
|
||||||
|
|
||||||
|
Если вам нужно изменить основные параметры товара (название, описание, изображения, видео, производитель, штрихкод), воспользуйтесь запросом [POST businesses/{businessId}/offer-mappings/update](../../reference/business-assortment/updateOfferMappings.md).
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Чтобы удалить характеристики, которые заданы в параметрах с типом `string`, передайте пустое значение.
|
||||||
|
|
||||||
|
{% note info "Данные в каталоге обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return ContentAPIUpdateOfferContentRequest
|
||||||
|
*/
|
||||||
|
func (a *ContentAPIService) UpdateOfferContent(ctx context.Context, businessId int64) ContentAPIUpdateOfferContentRequest {
|
||||||
|
return ContentAPIUpdateOfferContentRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return UpdateOfferContentResponse
|
||||||
|
func (a *ContentAPIService) UpdateOfferContentExecute(r ContentAPIUpdateOfferContentRequest) (*UpdateOfferContentResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *UpdateOfferContentResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "ContentAPIService.UpdateOfferContent")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/offer-cards/update"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateOfferContentRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateOfferContentRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateOfferContentRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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
|
||||||
|
}
|
||||||
28691
pkg/api/yandex/ymclient/api_dbs.go
Normal file
28691
pkg/api/yandex/ymclient/api_dbs.go
Normal file
File diff suppressed because it is too large
Load Diff
205
pkg/api/yandex/ymclient/api_delivery_services.go
Normal file
205
pkg/api/yandex/ymclient/api_delivery_services.go
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeliveryServicesAPIService DeliveryServicesAPI service
|
||||||
|
type DeliveryServicesAPIService service
|
||||||
|
|
||||||
|
type DeliveryServicesAPIGetDeliveryServicesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *DeliveryServicesAPIService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r DeliveryServicesAPIGetDeliveryServicesRequest) Execute() (*GetDeliveryServicesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetDeliveryServicesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetDeliveryServices Справочник служб доставки
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getDeliveryServices.md) %}
|
||||||
|
|
||||||
|
Возвращает справочник служб доставки: идентификаторы и наименования.
|
||||||
|
|**:no-translate[⚙️] Лимит:** 5 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return DeliveryServicesAPIGetDeliveryServicesRequest
|
||||||
|
*/
|
||||||
|
func (a *DeliveryServicesAPIService) GetDeliveryServices(ctx context.Context) DeliveryServicesAPIGetDeliveryServicesRequest {
|
||||||
|
return DeliveryServicesAPIGetDeliveryServicesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetDeliveryServicesResponse
|
||||||
|
func (a *DeliveryServicesAPIService) GetDeliveryServicesExecute(r DeliveryServicesAPIGetDeliveryServicesRequest) (*GetDeliveryServicesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetDeliveryServicesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DeliveryServicesAPIService.GetDeliveryServices")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/delivery/services"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
24729
pkg/api/yandex/ymclient/api_express.go
Normal file
24729
pkg/api/yandex/ymclient/api_express.go
Normal file
File diff suppressed because it is too large
Load Diff
27260
pkg/api/yandex/ymclient/api_fbs.go
Normal file
27260
pkg/api/yandex/ymclient/api_fbs.go
Normal file
File diff suppressed because it is too large
Load Diff
21708
pkg/api/yandex/ymclient/api_fby.go
Normal file
21708
pkg/api/yandex/ymclient/api_fby.go
Normal file
File diff suppressed because it is too large
Load Diff
1111
pkg/api/yandex/ymclient/api_goods_feedback.go
Normal file
1111
pkg/api/yandex/ymclient/api_goods_feedback.go
Normal file
File diff suppressed because it is too large
Load Diff
225
pkg/api/yandex/ymclient/api_goods_stats.go
Normal file
225
pkg/api/yandex/ymclient/api_goods_stats.go
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GoodsStatsAPIService GoodsStatsAPI service
|
||||||
|
type GoodsStatsAPIService service
|
||||||
|
|
||||||
|
type GoodsStatsAPIGetGoodsStatsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *GoodsStatsAPIService
|
||||||
|
campaignId int64
|
||||||
|
getGoodsStatsRequest *GetGoodsStatsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r GoodsStatsAPIGetGoodsStatsRequest) GetGoodsStatsRequest(getGoodsStatsRequest GetGoodsStatsRequest) GoodsStatsAPIGetGoodsStatsRequest {
|
||||||
|
r.getGoodsStatsRequest = &getGoodsStatsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r GoodsStatsAPIGetGoodsStatsRequest) Execute() (*GetGoodsStatsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetGoodsStatsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetGoodsStats Отчет по товарам
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getGoodsStats.md) %}
|
||||||
|
|
||||||
|
Возвращает подробный отчет по товарам, которые вы разместили на Маркете. С помощью отчета вы можете узнать, например, об остатках на складе, об условиях хранения ваших товаров и т. д.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 5 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return GoodsStatsAPIGetGoodsStatsRequest
|
||||||
|
*/
|
||||||
|
func (a *GoodsStatsAPIService) GetGoodsStats(ctx context.Context, campaignId int64) GoodsStatsAPIGetGoodsStatsRequest {
|
||||||
|
return GoodsStatsAPIGetGoodsStatsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetGoodsStatsResponse
|
||||||
|
func (a *GoodsStatsAPIService) GetGoodsStatsExecute(r GoodsStatsAPIGetGoodsStatsRequest) (*GetGoodsStatsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetGoodsStatsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "GoodsStatsAPIService.GetGoodsStats")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/stats/skus"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getGoodsStatsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getGoodsStatsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getGoodsStatsRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
664
pkg/api/yandex/ymclient/api_hidden_offers.go
Normal file
664
pkg/api/yandex/ymclient/api_hidden_offers.go
Normal file
@@ -0,0 +1,664 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// HiddenOffersAPIService HiddenOffersAPI service
|
||||||
|
type HiddenOffersAPIService service
|
||||||
|
|
||||||
|
type HiddenOffersAPIAddHiddenOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *HiddenOffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
addHiddenOffersRequest *AddHiddenOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запрос на скрытие оферов.
|
||||||
|
func (r HiddenOffersAPIAddHiddenOffersRequest) AddHiddenOffersRequest(addHiddenOffersRequest AddHiddenOffersRequest) HiddenOffersAPIAddHiddenOffersRequest {
|
||||||
|
r.addHiddenOffersRequest = &addHiddenOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r HiddenOffersAPIAddHiddenOffersRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.AddHiddenOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
AddHiddenOffers Скрытие товаров и настройки скрытия
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/addHiddenOffers.md) %}
|
||||||
|
|
||||||
|
Скрывает товары магазина на Маркете.
|
||||||
|
|
||||||
|
{% note info "Данные в каталоге обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return HiddenOffersAPIAddHiddenOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *HiddenOffersAPIService) AddHiddenOffers(ctx context.Context, campaignId int64) HiddenOffersAPIAddHiddenOffersRequest {
|
||||||
|
return HiddenOffersAPIAddHiddenOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *HiddenOffersAPIService) AddHiddenOffersExecute(r HiddenOffersAPIAddHiddenOffersRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HiddenOffersAPIService.AddHiddenOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/hidden-offers"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.addHiddenOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("addHiddenOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.addHiddenOffersRequest
|
||||||
|
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 == 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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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 HiddenOffersAPIDeleteHiddenOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *HiddenOffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
deleteHiddenOffersRequest *DeleteHiddenOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Запрос на возобновление показа оферов.
|
||||||
|
func (r HiddenOffersAPIDeleteHiddenOffersRequest) DeleteHiddenOffersRequest(deleteHiddenOffersRequest DeleteHiddenOffersRequest) HiddenOffersAPIDeleteHiddenOffersRequest {
|
||||||
|
r.deleteHiddenOffersRequest = &deleteHiddenOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r HiddenOffersAPIDeleteHiddenOffersRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.DeleteHiddenOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DeleteHiddenOffers Возобновление показа товаров
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/deleteHiddenOffers.md) %}
|
||||||
|
|
||||||
|
Возобновляет показ скрытых вами товаров магазина на Маркете.
|
||||||
|
|
||||||
|
{% note info "Данные в каталоге обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return HiddenOffersAPIDeleteHiddenOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *HiddenOffersAPIService) DeleteHiddenOffers(ctx context.Context, campaignId int64) HiddenOffersAPIDeleteHiddenOffersRequest {
|
||||||
|
return HiddenOffersAPIDeleteHiddenOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *HiddenOffersAPIService) DeleteHiddenOffersExecute(r HiddenOffersAPIDeleteHiddenOffersRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HiddenOffersAPIService.DeleteHiddenOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/hidden-offers/delete"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.deleteHiddenOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("deleteHiddenOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.deleteHiddenOffersRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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 HiddenOffersAPIGetHiddenOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *HiddenOffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
offerId *[]string
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор скрытого предложения.
|
||||||
|
func (r HiddenOffersAPIGetHiddenOffersRequest) OfferId(offerId []string) HiddenOffersAPIGetHiddenOffersRequest {
|
||||||
|
r.offerId = &offerId
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r HiddenOffersAPIGetHiddenOffersRequest) PageToken(pageToken string) HiddenOffersAPIGetHiddenOffersRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r HiddenOffersAPIGetHiddenOffersRequest) Limit(limit int32) HiddenOffersAPIGetHiddenOffersRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r HiddenOffersAPIGetHiddenOffersRequest) Execute() (*GetHiddenOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetHiddenOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetHiddenOffers Информация о скрытых вами товарах
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getHiddenOffers.md) %}
|
||||||
|
|
||||||
|
Возвращает список скрытых вами товаров для заданного магазина.
|
||||||
|
|
||||||
|
В списке будут товары, скрытые любым способом — через :no-translate[API], с помощью YML-фида, в кабинете и так далее.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту, не более 500 товаров в одном запросе|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return HiddenOffersAPIGetHiddenOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *HiddenOffersAPIService) GetHiddenOffers(ctx context.Context, campaignId int64) HiddenOffersAPIGetHiddenOffersRequest {
|
||||||
|
return HiddenOffersAPIGetHiddenOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetHiddenOffersResponse
|
||||||
|
func (a *HiddenOffersAPIService) GetHiddenOffersExecute(r HiddenOffersAPIGetHiddenOffersRequest) (*GetHiddenOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetHiddenOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HiddenOffersAPIService.GetHiddenOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/hidden-offers"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.offerId != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "offer_id", r.offerId, "", "csv")
|
||||||
|
}
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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 == 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
|
||||||
|
}
|
||||||
9145
pkg/api/yandex/ymclient/api_laas.go
Normal file
9145
pkg/api/yandex/ymclient/api_laas.go
Normal file
File diff suppressed because it is too large
Load Diff
1208
pkg/api/yandex/ymclient/api_models.go
Normal file
1208
pkg/api/yandex/ymclient/api_models.go
Normal file
File diff suppressed because it is too large
Load Diff
785
pkg/api/yandex/ymclient/api_offer_mappings.go
Normal file
785
pkg/api/yandex/ymclient/api_offer_mappings.go
Normal file
@@ -0,0 +1,785 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OfferMappingsAPIService OfferMappingsAPI service
|
||||||
|
type OfferMappingsAPIService service
|
||||||
|
|
||||||
|
type OfferMappingsAPIGetOfferMappingEntriesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OfferMappingsAPIService
|
||||||
|
campaignId int64
|
||||||
|
offerId *[]string
|
||||||
|
shopSku *[]string
|
||||||
|
mappingKind *OfferMappingKindType
|
||||||
|
status *[]OfferProcessingStatusType
|
||||||
|
availability *[]OfferAvailabilityStatusType
|
||||||
|
categoryId *[]int32
|
||||||
|
vendor *[]string
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор товара в каталоге.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) OfferId(offerId []string) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.offerId = &offerId
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ваш SKU товара. Параметр может быть указан несколько раз, например: ```text translate=no ...shop_sku=123&shop_sku=129&shop_sku=141... ``` В запросе можно указать либо параметр `shopSku`, либо любые параметры для фильтрации товаров. Совместное использование параметра `shopSku` и параметров для фильтрации приведет к ошибке.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) ShopSku(shopSku []string) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.shopSku = &shopSku
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Тип маппинга.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) MappingKind(mappingKind OfferMappingKindType) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.mappingKind = &mappingKind
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Фильтрация по статусу публикации товара: * `READY` — товар прошел модерацию. * `IN_WORK` — товар проходит модерацию. * `NEED_CONTENT` — для товара без SKU на Маркете `marketSku` нужно найти карточку самостоятельно или создать ее. * `NEED_INFO` — товар не прошел модерацию из-за ошибок или недостающих сведений в описании товара. * `REJECTED` — товар не прошел модерацию, так как Маркет не планирует размещать подобные товары. * `SUSPENDED` — товар не прошел модерацию, так как Маркет пока не размещает подобные товары. * `OTHER` — товар не прошел модерацию по другой причине. Можно указать несколько статусов в одном параметре, через запятую, или в нескольких одинаковых параметрах. Например: ```text translate=no ...status=READY,IN_WORK... ...status=READY&status=IN_WORK... ``` В запросе можно указать либо параметр shopSku, либо любые параметры для фильтрации товаров. Совместное использование параметра shopSku и параметров для фильтрации приведет к ошибке.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) Status(status []OfferProcessingStatusType) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.status = &status
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Фильтрация по планам поставок товара: * `ACTIVE` — поставки будут. * `INACTIVE` — поставок не будет: товар есть на складе, но вы больше не планируете его поставлять. * `DELISTED` — архив: товар закончился на складе, и его поставок больше не будет. Можно указать несколько значений в одном параметре, через запятую, или в нескольких одинаковых параметрах. Например: ```text translate=no ...availability=INACTIVE,DELISTED... ...availability=INACTIVE&availability=DELISTED... ``` В запросе можно указать либо параметр `shopSku`, либо любые параметры для фильтрации товаров. Совместное использование параметра `shopSku` и параметров для фильтрации приведет к ошибке.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) Availability(availability []OfferAvailabilityStatusType) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.availability = &availability
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Фильтрация по идентификатору категории на Маркете. Чтобы узнать идентификатор категории, к которой относится товар, воспользуйтесь запросом [POST categories/tree](../../reference/categories/getCategoriesTree.md). Можно указать несколько идентификаторов в одном параметре, через запятую, или в нескольких одинаковых параметрах. Например: ```text translate=no ...category_id=14727164,14382343... ...category_id=14727164&category_id=14382343... ``` В запросе можно указать либо параметр `shopSku`, либо любые параметры для фильтрации товаров. Совместное использование параметра `shopSku` и параметров для фильтрации приведет к ошибке.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) CategoryId(categoryId []int32) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.categoryId = &categoryId
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Фильтрация по бренду товара. Можно указать несколько брендов в одном параметре, через запятую, или в нескольких одинаковых параметрах. Например: ```text translate=no ...vendor=Aqua%20Minerale,Borjomi... ...vendor=Aqua%20Minerale&vendor=Borjomi... ``` Чтобы товар попал в результаты фильтрации, его бренд должен точно совпадать с одним из указанных в запросе. Например, если указан бренд :no-translate[Schwarzkopf], то в результатах не будет товаров :no-translate[Schwarzkopf Professional]. Если в названии бренда есть символы, которые не входят в таблицу :no-translate[ASCII] (в том числе кириллические символы), используйте для них URL-кодирование. Например, пробел — %20, апостроф «'» — %27 и т. д. Подробнее см. в разделе [Кодирование :no-translate[URL] русскоязычной Википедии](https://ru.wikipedia.org/wiki/URL#Кодирование_URL). В запросе можно указать либо параметр shopSku, либо любые параметры для фильтрации товаров. Совместное использование параметра `shopSku` и параметров для фильтрации приведет к ошибке.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) Vendor(vendor []string) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.vendor = &vendor
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) PageToken(pageToken string) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) Limit(limit int32) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OfferMappingsAPIGetOfferMappingEntriesRequest) Execute() (*GetOfferMappingEntriesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOfferMappingEntriesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOfferMappingEntries Список товаров в каталоге
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOfferMappingEntries.md) %}
|
||||||
|
|
||||||
|
{% note warning "Какой метод использовать вместо устаревшего" %}
|
||||||
|
|
||||||
|
[POST businesses/{businessId}/offer-mappings](../../reference/business-assortment/getOfferMappings.md)
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Для каждого товара, который вы размещаете на Маркете, возвращается информация о карточках Маркета, к которым привязан этот товар:
|
||||||
|
|
||||||
|
* Идентификатор текущей карточки (marketSku), карточки, которая проходит модерацию и последней отклоненной карточки.
|
||||||
|
* Описание товара, которое указано на карточке Маркета. Например, размер упаковки и вес товара.
|
||||||
|
|
||||||
|
Результаты возвращаются постранично. Выходные данные содержат идентификатор следующей страницы.
|
||||||
|
|
||||||
|
{% note info "Как считается количество товаров в каталоге магазина" %}
|
||||||
|
|
||||||
|
По данным за последние семь дней (не включая сегодня).
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OfferMappingsAPIGetOfferMappingEntriesRequest
|
||||||
|
|
||||||
|
Deprecated
|
||||||
|
*/
|
||||||
|
func (a *OfferMappingsAPIService) GetOfferMappingEntries(ctx context.Context, campaignId int64) OfferMappingsAPIGetOfferMappingEntriesRequest {
|
||||||
|
return OfferMappingsAPIGetOfferMappingEntriesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOfferMappingEntriesResponse
|
||||||
|
//
|
||||||
|
// Deprecated
|
||||||
|
func (a *OfferMappingsAPIService) GetOfferMappingEntriesExecute(r OfferMappingsAPIGetOfferMappingEntriesRequest) (*GetOfferMappingEntriesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOfferMappingEntriesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OfferMappingsAPIService.GetOfferMappingEntries")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offer-mapping-entries"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.offerId != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "offer_id", r.offerId, "", "csv")
|
||||||
|
}
|
||||||
|
if r.shopSku != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "shop_sku", r.shopSku, "", "csv")
|
||||||
|
}
|
||||||
|
if r.mappingKind != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "mapping_kind", r.mappingKind, "", "")
|
||||||
|
}
|
||||||
|
if r.status != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "", "csv")
|
||||||
|
}
|
||||||
|
if r.availability != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "availability", r.availability, "", "csv")
|
||||||
|
}
|
||||||
|
if r.categoryId != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "category_id", r.categoryId, "", "csv")
|
||||||
|
}
|
||||||
|
if r.vendor != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "vendor", r.vendor, "", "csv")
|
||||||
|
}
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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 OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OfferMappingsAPIService
|
||||||
|
campaignId int64
|
||||||
|
getSuggestedOfferMappingEntriesRequest *GetSuggestedOfferMappingEntriesRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest) GetSuggestedOfferMappingEntriesRequest(getSuggestedOfferMappingEntriesRequest GetSuggestedOfferMappingEntriesRequest) OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest {
|
||||||
|
r.getSuggestedOfferMappingEntriesRequest = &getSuggestedOfferMappingEntriesRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest) Execute() (*GetSuggestedOfferMappingEntriesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetSuggestedOfferMappingEntriesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetSuggestedOfferMappingEntries Рекомендованные карточки для товаров
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getSuggestedOfferMappingEntries.md) %}
|
||||||
|
|
||||||
|
Возвращает идентификаторы карточек товаров на Маркете, рекомендованных для ваших товаров.
|
||||||
|
|
||||||
|
Каждому товару, который вы размещаете, должна соответствовать карточка товара на Маркете со своим идентификатором — :no-translate[SKU] на Маркете. Он указывается в :no-translate[URL] карточки товара, после :no-translate[«...sku=»], например:
|
||||||
|
|
||||||
|
##https://market.yandex.ru/product--yandex-kniga/484830016?sku=484830016…##
|
||||||
|
|
||||||
|
Чтобы получить для товаров рекомендованные :no-translate[SKU] на Маркете, передайте в теле POST-запроса как можно больше информации о них: названия, производителей, штрихкоды, цены и т. д.
|
||||||
|
|
||||||
|
Полученные :no-translate[SKU] можно передать вместе с информацией о ваших товарах с помощью запроса [POST businesses/{businessId}/offer-mappings/update](../../reference/business-assortment/updateOfferMappings.md).
|
||||||
|
|
||||||
|
В одном запросе можно получить не более 500 рекомендаций.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 рекомендаций в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest
|
||||||
|
|
||||||
|
Deprecated
|
||||||
|
*/
|
||||||
|
func (a *OfferMappingsAPIService) GetSuggestedOfferMappingEntries(ctx context.Context, campaignId int64) OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest {
|
||||||
|
return OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetSuggestedOfferMappingEntriesResponse
|
||||||
|
//
|
||||||
|
// Deprecated
|
||||||
|
func (a *OfferMappingsAPIService) GetSuggestedOfferMappingEntriesExecute(r OfferMappingsAPIGetSuggestedOfferMappingEntriesRequest) (*GetSuggestedOfferMappingEntriesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetSuggestedOfferMappingEntriesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OfferMappingsAPIService.GetSuggestedOfferMappingEntries")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offer-mapping-entries/suggestions"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getSuggestedOfferMappingEntriesRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getSuggestedOfferMappingEntriesRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getSuggestedOfferMappingEntriesRequest
|
||||||
|
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 OfferMappingsAPIUpdateOfferMappingEntriesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OfferMappingsAPIService
|
||||||
|
campaignId int64
|
||||||
|
updateOfferMappingEntryRequest *UpdateOfferMappingEntryRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OfferMappingsAPIUpdateOfferMappingEntriesRequest) UpdateOfferMappingEntryRequest(updateOfferMappingEntryRequest UpdateOfferMappingEntryRequest) OfferMappingsAPIUpdateOfferMappingEntriesRequest {
|
||||||
|
r.updateOfferMappingEntryRequest = &updateOfferMappingEntryRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OfferMappingsAPIUpdateOfferMappingEntriesRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateOfferMappingEntriesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateOfferMappingEntries Добавление и редактирование товаров в каталоге
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateOfferMappingEntries.md) %}
|
||||||
|
|
||||||
|
{% note warning "Какой метод использовать вместо устаревшего" %}
|
||||||
|
|
||||||
|
[POST businesses/{businessId}/offer-mappings/update](../../reference/business-assortment/updateOfferMappings.md)
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Добавляет товары, указанные в запросе, в ваш каталог товаров и редактирует уже имеющиеся товары.
|
||||||
|
|
||||||
|
Информацию о товарах нужно передать в теле POST-запроса.
|
||||||
|
|
||||||
|
У каждого товара должен быть ваш :no-translate[SKU] — уникальный код, который вы используете для идентификации товара:
|
||||||
|
|
||||||
|
* Чтобы добавить в каталог новый товар, укажите в параметре `shopSku` ваш :no-translate[SKU], которого еще нет в каталоге.
|
||||||
|
* Чтобы отредактировать товар из каталога, укажите в параметре `shopSku` ваш :no-translate[SKU] этого товара в каталоге.
|
||||||
|
|
||||||
|
В обоих случаях в запросе нужно передать полное описание товара, даже если вы хотите изменить только несколько характеристик.
|
||||||
|
|
||||||
|
Если вы знаете, какой карточке товара на Маркете соответствует ваш товар, укажите ее идентификатор (:no-translate[SKU] на Маркете) во входном параметре `mapping`. Получить :no-translate[SKU] на Маркете рекомендованной карточки товара можно через кабинет. Если :no-translate[SKU] на Маркете не указан, сотрудники Маркета сами подберут или создадут подходящую карточку товара, либо у него появится статус `NEED_CONTENT` (нужно найти карточку или создать ее самостоятельно) в выходных данных запроса [POST businesses/{businessId}/offer-mappings](../../reference/business-assortment/getOfferMappings.md).
|
||||||
|
|
||||||
|
Перед публикацией товары проходят модерацию. Если в одном из отправленных товаров найдена ошибка, ответ на запрос будет иметь HTTP-код :no-translate[400 Bad Request], и ни один из товаров не отправится на модерацию. При этом если вы не передадите все обязательные параметры для какого‑либо товара, после модерации у него появится статус `NEED_INFO` (в описании товара не хватает информации) в выходных данных запроса [POST businesses/{businessId}/offer-mappings](../../reference/business-assortment/getOfferMappings.md).
|
||||||
|
|
||||||
|
В одном запросе можно добавить не более 500 товаров.
|
||||||
|
|
||||||
|
{% note info "Данные в каталоге обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 5 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OfferMappingsAPIUpdateOfferMappingEntriesRequest
|
||||||
|
|
||||||
|
Deprecated
|
||||||
|
*/
|
||||||
|
func (a *OfferMappingsAPIService) UpdateOfferMappingEntries(ctx context.Context, campaignId int64) OfferMappingsAPIUpdateOfferMappingEntriesRequest {
|
||||||
|
return OfferMappingsAPIUpdateOfferMappingEntriesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
//
|
||||||
|
// Deprecated
|
||||||
|
func (a *OfferMappingsAPIService) UpdateOfferMappingEntriesExecute(r OfferMappingsAPIUpdateOfferMappingEntriesRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OfferMappingsAPIService.UpdateOfferMappingEntries")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offer-mapping-entries/updates"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateOfferMappingEntryRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateOfferMappingEntryRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateOfferMappingEntryRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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
|
||||||
|
}
|
||||||
908
pkg/api/yandex/ymclient/api_offers.go
Normal file
908
pkg/api/yandex/ymclient/api_offers.go
Normal file
@@ -0,0 +1,908 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OffersAPIService OffersAPI service
|
||||||
|
type OffersAPIService service
|
||||||
|
|
||||||
|
type OffersAPIDeleteCampaignOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
deleteCampaignOffersRequest *DeleteCampaignOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIDeleteCampaignOffersRequest) DeleteCampaignOffersRequest(deleteCampaignOffersRequest DeleteCampaignOffersRequest) OffersAPIDeleteCampaignOffersRequest {
|
||||||
|
r.deleteCampaignOffersRequest = &deleteCampaignOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIDeleteCampaignOffersRequest) Execute() (*DeleteCampaignOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.DeleteCampaignOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DeleteCampaignOffers Удаление товаров из ассортимента магазина
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/deleteCampaignOffers.md) %}
|
||||||
|
|
||||||
|
Удаляет заданные товары из заданного магазина.
|
||||||
|
|
||||||
|
{% note warning "Запрос удаляет товары из конкретного магазина" %}
|
||||||
|
|
||||||
|
На продажи в других магазинах и на наличие товара в общем каталоге он не влияет.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Товар не получится удалить, если он хранится на складах Маркета.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OffersAPIDeleteCampaignOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *OffersAPIService) DeleteCampaignOffers(ctx context.Context, campaignId int64) OffersAPIDeleteCampaignOffersRequest {
|
||||||
|
return OffersAPIDeleteCampaignOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return DeleteCampaignOffersResponse
|
||||||
|
func (a *OffersAPIService) DeleteCampaignOffersExecute(r OffersAPIDeleteCampaignOffersRequest) (*DeleteCampaignOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *DeleteCampaignOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OffersAPIService.DeleteCampaignOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offers/delete"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.deleteCampaignOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("deleteCampaignOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.deleteCampaignOffersRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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 OffersAPIGetCampaignOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
getCampaignOffersRequest *GetCampaignOffersRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIGetCampaignOffersRequest) GetCampaignOffersRequest(getCampaignOffersRequest GetCampaignOffersRequest) OffersAPIGetCampaignOffersRequest {
|
||||||
|
r.getCampaignOffersRequest = &getCampaignOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r OffersAPIGetCampaignOffersRequest) PageToken(pageToken string) OffersAPIGetCampaignOffersRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r OffersAPIGetCampaignOffersRequest) Limit(limit int32) OffersAPIGetCampaignOffersRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIGetCampaignOffersRequest) Execute() (*GetCampaignOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCampaignOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCampaignOffers Информация о товарах, которые размещены в заданном магазине
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCampaignOffers.md) %}
|
||||||
|
|
||||||
|
Возвращает список товаров, которые размещены в заданном магазине. Для каждого товара указываются параметры размещения.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OffersAPIGetCampaignOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *OffersAPIService) GetCampaignOffers(ctx context.Context, campaignId int64) OffersAPIGetCampaignOffersRequest {
|
||||||
|
return OffersAPIGetCampaignOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetCampaignOffersResponse
|
||||||
|
func (a *OffersAPIService) GetCampaignOffersExecute(r OffersAPIGetCampaignOffersRequest) (*GetCampaignOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetCampaignOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OffersAPIService.GetCampaignOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offers"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getCampaignOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getCampaignOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getCampaignOffersRequest
|
||||||
|
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 OffersAPIGetOfferRecommendationsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OffersAPIService
|
||||||
|
businessId int64
|
||||||
|
getOfferRecommendationsRequest *GetOfferRecommendationsRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIGetOfferRecommendationsRequest) GetOfferRecommendationsRequest(getOfferRecommendationsRequest GetOfferRecommendationsRequest) OffersAPIGetOfferRecommendationsRequest {
|
||||||
|
r.getOfferRecommendationsRequest = &getOfferRecommendationsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r OffersAPIGetOfferRecommendationsRequest) PageToken(pageToken string) OffersAPIGetOfferRecommendationsRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r OffersAPIGetOfferRecommendationsRequest) Limit(limit int32) OffersAPIGetOfferRecommendationsRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIGetOfferRecommendationsRequest) Execute() (*GetOfferRecommendationsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOfferRecommendationsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOfferRecommendations Рекомендации Маркета, касающиеся цен
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOfferRecommendations.md) %}
|
||||||
|
|
||||||
|
Метод возвращает рекомендации нескольких типов.
|
||||||
|
|
||||||
|
1. Порог для привлекательной цены.
|
||||||
|
2. Оценка привлекательности цен на витрине.
|
||||||
|
|
||||||
|
Рекомендации показывают, какие цены нужно установить, чтобы привлечь покупателя.
|
||||||
|
|
||||||
|
В запросе можно использовать фильтры. Результаты возвращаются постранично.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return OffersAPIGetOfferRecommendationsRequest
|
||||||
|
*/
|
||||||
|
func (a *OffersAPIService) GetOfferRecommendations(ctx context.Context, businessId int64) OffersAPIGetOfferRecommendationsRequest {
|
||||||
|
return OffersAPIGetOfferRecommendationsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOfferRecommendationsResponse
|
||||||
|
func (a *OffersAPIService) GetOfferRecommendationsExecute(r OffersAPIGetOfferRecommendationsRequest) (*GetOfferRecommendationsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOfferRecommendationsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OffersAPIService.GetOfferRecommendations")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/offers/recommendations"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getOfferRecommendationsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getOfferRecommendationsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getOfferRecommendationsRequest
|
||||||
|
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 OffersAPIUpdateCampaignOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OffersAPIService
|
||||||
|
campaignId int64
|
||||||
|
updateCampaignOffersRequest *UpdateCampaignOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIUpdateCampaignOffersRequest) UpdateCampaignOffersRequest(updateCampaignOffersRequest UpdateCampaignOffersRequest) OffersAPIUpdateCampaignOffersRequest {
|
||||||
|
r.updateCampaignOffersRequest = &updateCampaignOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OffersAPIUpdateCampaignOffersRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateCampaignOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateCampaignOffers Изменение условий продажи товаров в магазине
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateCampaignOffers.md) %}
|
||||||
|
|
||||||
|
Изменяет параметры размещения товаров в конкретном магазине: доступность товара, продажа квантами и применяемый НДС.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OffersAPIUpdateCampaignOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *OffersAPIService) UpdateCampaignOffers(ctx context.Context, campaignId int64) OffersAPIUpdateCampaignOffersRequest {
|
||||||
|
return OffersAPIUpdateCampaignOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *OffersAPIService) UpdateCampaignOffersExecute(r OffersAPIUpdateCampaignOffersRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OffersAPIService.UpdateCampaignOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offers/update"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateCampaignOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateCampaignOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateCampaignOffersRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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
|
||||||
|
}
|
||||||
423
pkg/api/yandex/ymclient/api_order_business_information.go
Normal file
423
pkg/api/yandex/ymclient/api_order_business_information.go
Normal file
@@ -0,0 +1,423 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OrderBusinessInformationAPIService OrderBusinessInformationAPI service
|
||||||
|
type OrderBusinessInformationAPIService service
|
||||||
|
|
||||||
|
type OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrderBusinessInformationAPIService
|
||||||
|
campaignId int64
|
||||||
|
orderId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest) Execute() (*GetBusinessBuyerInfoResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOrderBusinessBuyerInfoExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOrderBusinessBuyerInfo Информация о покупателе — юридическом лице
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOrderBusinessBuyerInfo.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о покупателе по идентификатору заказа.
|
||||||
|
|
||||||
|
{% note info "Как получить информацию о покупателе, который является физическим лицом" %}
|
||||||
|
|
||||||
|
Воспользуйтесь запросом [GET campaigns/{campaignId}/orders/{orderId}/buyer](../../reference/orders/getOrderBuyerInfo.md).
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Получить данные можно, только если заказ находится в статусе `PROCESSING`, `DELIVERY`, `PICKUP` или `DELIVERED`.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 3 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@param orderId Идентификатор заказа.
|
||||||
|
@return OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest
|
||||||
|
*/
|
||||||
|
func (a *OrderBusinessInformationAPIService) GetOrderBusinessBuyerInfo(ctx context.Context, campaignId int64, orderId int64) OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest {
|
||||||
|
return OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
orderId: orderId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetBusinessBuyerInfoResponse
|
||||||
|
func (a *OrderBusinessInformationAPIService) GetOrderBusinessBuyerInfoExecute(r OrderBusinessInformationAPIGetOrderBusinessBuyerInfoRequest) (*GetBusinessBuyerInfoResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetBusinessBuyerInfoResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrderBusinessInformationAPIService.GetOrderBusinessBuyerInfo")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/orders/{orderId}/business-buyer"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"orderId"+"}", url.PathEscape(parameterValueToString(r.orderId, "orderId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrderBusinessInformationAPIService
|
||||||
|
campaignId int64
|
||||||
|
orderId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest) Execute() (*GetBusinessDocumentsInfoResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOrderBusinessDocumentsInfoExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOrderBusinessDocumentsInfo Информация о документах
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOrderBusinessDocumentsInfo.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о документах по идентификатору заказа.
|
||||||
|
|
||||||
|
Получить данные можно после того, как заказ перейдет в статус `DELIVERED`.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 3 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@param orderId Идентификатор заказа.
|
||||||
|
@return OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest
|
||||||
|
*/
|
||||||
|
func (a *OrderBusinessInformationAPIService) GetOrderBusinessDocumentsInfo(ctx context.Context, campaignId int64, orderId int64) OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest {
|
||||||
|
return OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
orderId: orderId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetBusinessDocumentsInfoResponse
|
||||||
|
func (a *OrderBusinessInformationAPIService) GetOrderBusinessDocumentsInfoExecute(r OrderBusinessInformationAPIGetOrderBusinessDocumentsInfoRequest) (*GetBusinessDocumentsInfoResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetBusinessDocumentsInfoResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrderBusinessInformationAPIService.GetOrderBusinessDocumentsInfo")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/orders/{orderId}/documents"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"orderId"+"}", url.PathEscape(parameterValueToString(r.orderId, "orderId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
1067
pkg/api/yandex/ymclient/api_order_delivery.go
Normal file
1067
pkg/api/yandex/ymclient/api_order_delivery.go
Normal file
File diff suppressed because it is too large
Load Diff
639
pkg/api/yandex/ymclient/api_order_labels.go
Normal file
639
pkg/api/yandex/ymclient/api_order_labels.go
Normal file
@@ -0,0 +1,639 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OrderLabelsAPIService OrderLabelsAPI service
|
||||||
|
type OrderLabelsAPIService service
|
||||||
|
|
||||||
|
type OrderLabelsAPIGenerateOrderLabelRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrderLabelsAPIService
|
||||||
|
campaignId int64
|
||||||
|
orderId int64
|
||||||
|
shipmentId int64
|
||||||
|
boxId int64
|
||||||
|
format *PageFormatType
|
||||||
|
}
|
||||||
|
|
||||||
|
// Настройка размещения ярлыков на странице. Если параметра нет, возвращается :no-translate[PDF] с ярлыками формата :no-translate[A7].
|
||||||
|
func (r OrderLabelsAPIGenerateOrderLabelRequest) Format(format PageFormatType) OrderLabelsAPIGenerateOrderLabelRequest {
|
||||||
|
r.format = &format
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrderLabelsAPIGenerateOrderLabelRequest) Execute() (*os.File, *http.Response, error) {
|
||||||
|
return r.ApiService.GenerateOrderLabelExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GenerateOrderLabel Готовый ярлык‑наклейка для коробки в заказе
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/generateOrderLabel.md) %}
|
||||||
|
|
||||||
|
Формирует ярлык‑наклейку для коробки в заказе и возвращает ярлык в PDF‑файле.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@param orderId Идентификатор заказа.
|
||||||
|
@param shipmentId Идентификатор грузоместа.
|
||||||
|
@param boxId Идентификатор коробки.
|
||||||
|
@return OrderLabelsAPIGenerateOrderLabelRequest
|
||||||
|
*/
|
||||||
|
func (a *OrderLabelsAPIService) GenerateOrderLabel(ctx context.Context, campaignId int64, orderId int64, shipmentId int64, boxId int64) OrderLabelsAPIGenerateOrderLabelRequest {
|
||||||
|
return OrderLabelsAPIGenerateOrderLabelRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
orderId: orderId,
|
||||||
|
shipmentId: shipmentId,
|
||||||
|
boxId: boxId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return *os.File
|
||||||
|
func (a *OrderLabelsAPIService) GenerateOrderLabelExecute(r OrderLabelsAPIGenerateOrderLabelRequest) (*os.File, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *os.File
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrderLabelsAPIService.GenerateOrderLabel")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/orders/{orderId}/delivery/shipments/{shipmentId}/boxes/{boxId}/label"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"orderId"+"}", url.PathEscape(parameterValueToString(r.orderId, "orderId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"shipmentId"+"}", url.PathEscape(parameterValueToString(r.shipmentId, "shipmentId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"boxId"+"}", url.PathEscape(parameterValueToString(r.boxId, "boxId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.format != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "format", r.format, "", "")
|
||||||
|
}
|
||||||
|
// 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/pdf", "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 OrderLabelsAPIGenerateOrderLabelsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrderLabelsAPIService
|
||||||
|
campaignId int64
|
||||||
|
orderId int64
|
||||||
|
format *PageFormatType
|
||||||
|
}
|
||||||
|
|
||||||
|
// Настройка размещения ярлыков на странице. Если параметра нет, возвращается :no-translate[PDF] с ярлыками формата :no-translate[A7].
|
||||||
|
func (r OrderLabelsAPIGenerateOrderLabelsRequest) Format(format PageFormatType) OrderLabelsAPIGenerateOrderLabelsRequest {
|
||||||
|
r.format = &format
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrderLabelsAPIGenerateOrderLabelsRequest) Execute() (*os.File, *http.Response, error) {
|
||||||
|
return r.ApiService.GenerateOrderLabelsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GenerateOrderLabels Готовые ярлыки‑наклейки на все коробки в одном заказе
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/generateOrderLabels.md) %}
|
||||||
|
|
||||||
|
Возвращает PDF-файл с ярлыками, которые нужно наклеить на коробки перед отгрузкой. Подробно о том, зачем они нужны и как выглядят, рассказано [в Справке Маркета для продавцов](https://yandex.ru/support/marketplace/orders/fbs/packaging/marking.html).
|
||||||
|
|
||||||
|
На вход нужно передать идентификатор заказа и один необязательный параметр, который управляет версткой PDF-файла.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@param orderId Идентификатор заказа.
|
||||||
|
@return OrderLabelsAPIGenerateOrderLabelsRequest
|
||||||
|
*/
|
||||||
|
func (a *OrderLabelsAPIService) GenerateOrderLabels(ctx context.Context, campaignId int64, orderId int64) OrderLabelsAPIGenerateOrderLabelsRequest {
|
||||||
|
return OrderLabelsAPIGenerateOrderLabelsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
orderId: orderId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return *os.File
|
||||||
|
func (a *OrderLabelsAPIService) GenerateOrderLabelsExecute(r OrderLabelsAPIGenerateOrderLabelsRequest) (*os.File, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *os.File
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrderLabelsAPIService.GenerateOrderLabels")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/orders/{orderId}/delivery/labels"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"orderId"+"}", url.PathEscape(parameterValueToString(r.orderId, "orderId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.format != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "format", r.format, "", "")
|
||||||
|
}
|
||||||
|
// 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/pdf", "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 OrderLabelsAPIGetOrderLabelsDataRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrderLabelsAPIService
|
||||||
|
campaignId int64
|
||||||
|
orderId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrderLabelsAPIGetOrderLabelsDataRequest) Execute() (*GetOrderLabelsDataResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOrderLabelsDataExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOrderLabelsData Данные для самостоятельного изготовления ярлыков
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOrderLabelsData.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию на ярлыках, которые клеятся на коробки в заказе.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@param orderId Идентификатор заказа.
|
||||||
|
@return OrderLabelsAPIGetOrderLabelsDataRequest
|
||||||
|
*/
|
||||||
|
func (a *OrderLabelsAPIService) GetOrderLabelsData(ctx context.Context, campaignId int64, orderId int64) OrderLabelsAPIGetOrderLabelsDataRequest {
|
||||||
|
return OrderLabelsAPIGetOrderLabelsDataRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
orderId: orderId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOrderLabelsDataResponse
|
||||||
|
func (a *OrderLabelsAPIService) GetOrderLabelsDataExecute(r OrderLabelsAPIGetOrderLabelsDataRequest) (*GetOrderLabelsDataResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOrderLabelsDataResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrderLabelsAPIService.GetOrderLabelsData")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/orders/{orderId}/delivery/labels/data"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"orderId"+"}", url.PathEscape(parameterValueToString(r.orderId, "orderId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
}
|
||||||
3179
pkg/api/yandex/ymclient/api_orders.go
Normal file
3179
pkg/api/yandex/ymclient/api_orders.go
Normal file
File diff suppressed because it is too large
Load Diff
252
pkg/api/yandex/ymclient/api_orders_stats.go
Normal file
252
pkg/api/yandex/ymclient/api_orders_stats.go
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OrdersStatsAPIService OrdersStatsAPI service
|
||||||
|
type OrdersStatsAPIService service
|
||||||
|
|
||||||
|
type OrdersStatsAPIGetOrdersStatsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OrdersStatsAPIService
|
||||||
|
campaignId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getOrdersStatsRequest *GetOrdersStatsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r OrdersStatsAPIGetOrdersStatsRequest) PageToken(pageToken string) OrdersStatsAPIGetOrdersStatsRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r OrdersStatsAPIGetOrdersStatsRequest) Limit(limit int32) OrdersStatsAPIGetOrdersStatsRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrdersStatsAPIGetOrdersStatsRequest) GetOrdersStatsRequest(getOrdersStatsRequest GetOrdersStatsRequest) OrdersStatsAPIGetOrdersStatsRequest {
|
||||||
|
r.getOrdersStatsRequest = &getOrdersStatsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OrdersStatsAPIGetOrdersStatsRequest) Execute() (*GetOrdersStatsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOrdersStatsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOrdersStats Детальная информация по заказам
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOrdersStats.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию по заказам на Маркете, в которых есть ваши товары.
|
||||||
|
|
||||||
|
С помощью нее вы можете собрать статистику по вашим заказам и узнать, например, какие из товаров чаще всего возвращаются покупателями, какие, наоборот, пользуются большим спросом и т. п.
|
||||||
|
|
||||||
|
{% note tip "Информация по созданным или обновленным заказам может появиться с задержкой до 40 минут" %}
|
||||||
|
|
||||||
|
Чтобы получить данные без задержки, используйте [метод получения информации о заказах](../../reference/orders/getOrders.md).
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
В одном запросе можно получить информацию не более чем по 200 заказам.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 000 заказов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OrdersStatsAPIGetOrdersStatsRequest
|
||||||
|
*/
|
||||||
|
func (a *OrdersStatsAPIService) GetOrdersStats(ctx context.Context, campaignId int64) OrdersStatsAPIGetOrdersStatsRequest {
|
||||||
|
return OrdersStatsAPIGetOrdersStatsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOrdersStatsResponse
|
||||||
|
func (a *OrdersStatsAPIService) GetOrdersStatsExecute(r OrdersStatsAPIGetOrdersStatsRequest) (*GetOrdersStatsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOrdersStatsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OrdersStatsAPIService.GetOrdersStats")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/stats/orders"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getOrdersStatsRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
643
pkg/api/yandex/ymclient/api_outlet_licenses.go
Normal file
643
pkg/api/yandex/ymclient/api_outlet_licenses.go
Normal file
@@ -0,0 +1,643 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// OutletLicensesAPIService OutletLicensesAPI service
|
||||||
|
type OutletLicensesAPIService service
|
||||||
|
|
||||||
|
type OutletLicensesAPIDeleteOutletLicensesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OutletLicensesAPIService
|
||||||
|
campaignId int64
|
||||||
|
ids *[]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Список идентификаторов лицензий для удаления.
|
||||||
|
func (r OutletLicensesAPIDeleteOutletLicensesRequest) Ids(ids []int64) OutletLicensesAPIDeleteOutletLicensesRequest {
|
||||||
|
r.ids = &ids
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OutletLicensesAPIDeleteOutletLicensesRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.DeleteOutletLicensesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DeleteOutletLicenses Удаление лицензий для точек продаж
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/deleteOutletLicenses.md) %}
|
||||||
|
|
||||||
|
Удаляет информацию о лицензиях для точек продаж.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OutletLicensesAPIDeleteOutletLicensesRequest
|
||||||
|
*/
|
||||||
|
func (a *OutletLicensesAPIService) DeleteOutletLicenses(ctx context.Context, campaignId int64) OutletLicensesAPIDeleteOutletLicensesRequest {
|
||||||
|
return OutletLicensesAPIDeleteOutletLicensesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *OutletLicensesAPIService) DeleteOutletLicensesExecute(r OutletLicensesAPIDeleteOutletLicensesRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodDelete
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OutletLicensesAPIService.DeleteOutletLicenses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/outlets/licenses"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.ids == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("ids is required and must be specified")
|
||||||
|
}
|
||||||
|
if len(*r.ids) < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("ids must have at least 1 elements")
|
||||||
|
}
|
||||||
|
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "ids", r.ids, "", "csv")
|
||||||
|
// 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 OutletLicensesAPIGetOutletLicensesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OutletLicensesAPIService
|
||||||
|
campaignId int64
|
||||||
|
outletIds *[]int64
|
||||||
|
ids *[]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Список идентификаторов точек продаж, для которых нужно получить информацию о лицензиях. Идентификаторы указываются через запятую. В запросе должен быть либо параметр :no-translate[`outletIds`], либо параметр :no-translate[`ids`]. Запрос с обоими параметрами или без них приведет к ошибке.
|
||||||
|
func (r OutletLicensesAPIGetOutletLicensesRequest) OutletIds(outletIds []int64) OutletLicensesAPIGetOutletLicensesRequest {
|
||||||
|
r.outletIds = &outletIds
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Список идентификаторов лицензий.
|
||||||
|
func (r OutletLicensesAPIGetOutletLicensesRequest) Ids(ids []int64) OutletLicensesAPIGetOutletLicensesRequest {
|
||||||
|
r.ids = &ids
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OutletLicensesAPIGetOutletLicensesRequest) Execute() (*GetOutletLicensesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetOutletLicensesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetOutletLicenses Информация о лицензиях для точек продаж
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getOutletLicenses.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о лицензиях для точек продаж.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OutletLicensesAPIGetOutletLicensesRequest
|
||||||
|
*/
|
||||||
|
func (a *OutletLicensesAPIService) GetOutletLicenses(ctx context.Context, campaignId int64) OutletLicensesAPIGetOutletLicensesRequest {
|
||||||
|
return OutletLicensesAPIGetOutletLicensesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetOutletLicensesResponse
|
||||||
|
func (a *OutletLicensesAPIService) GetOutletLicensesExecute(r OutletLicensesAPIGetOutletLicensesRequest) (*GetOutletLicensesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetOutletLicensesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OutletLicensesAPIService.GetOutletLicenses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/outlets/licenses"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.outletIds != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "outletIds", r.outletIds, "", "csv")
|
||||||
|
}
|
||||||
|
if r.ids != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "ids", r.ids, "", "csv")
|
||||||
|
}
|
||||||
|
// 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 OutletLicensesAPIUpdateOutletLicensesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *OutletLicensesAPIService
|
||||||
|
campaignId int64
|
||||||
|
updateOutletLicenseRequest *UpdateOutletLicenseRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OutletLicensesAPIUpdateOutletLicensesRequest) UpdateOutletLicenseRequest(updateOutletLicenseRequest UpdateOutletLicenseRequest) OutletLicensesAPIUpdateOutletLicensesRequest {
|
||||||
|
r.updateOutletLicenseRequest = &updateOutletLicenseRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r OutletLicensesAPIUpdateOutletLicensesRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateOutletLicensesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateOutletLicenses Создание и изменение лицензий для точек продаж
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateOutletLicenses.md) %}
|
||||||
|
|
||||||
|
Передает информацию о новых и существующих лицензиях для точек продаж. Поддерживаются только лицензии на розничную продажу алкоголя.
|
||||||
|
|
||||||
|
Чтобы размещать алкогольную продукцию на Маркете, надо также прислать гарантийное письмо (если вы еще не делали этого раньше) и правильно оформить предложения в прайс-листе. Далее информация о лицензиях проходит проверку.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return OutletLicensesAPIUpdateOutletLicensesRequest
|
||||||
|
*/
|
||||||
|
func (a *OutletLicensesAPIService) UpdateOutletLicenses(ctx context.Context, campaignId int64) OutletLicensesAPIUpdateOutletLicensesRequest {
|
||||||
|
return OutletLicensesAPIUpdateOutletLicensesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *OutletLicensesAPIService) UpdateOutletLicensesExecute(r OutletLicensesAPIUpdateOutletLicensesRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "OutletLicensesAPIService.UpdateOutletLicenses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/outlets/licenses"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateOutletLicenseRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateOutletLicenseRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateOutletLicenseRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
1051
pkg/api/yandex/ymclient/api_outlets.go
Normal file
1051
pkg/api/yandex/ymclient/api_outlets.go
Normal file
File diff suppressed because it is too large
Load Diff
925
pkg/api/yandex/ymclient/api_price_quarantine.go
Normal file
925
pkg/api/yandex/ymclient/api_price_quarantine.go
Normal file
@@ -0,0 +1,925 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PriceQuarantineAPIService PriceQuarantineAPI service
|
||||||
|
type PriceQuarantineAPIService service
|
||||||
|
|
||||||
|
type PriceQuarantineAPIConfirmBusinessPricesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PriceQuarantineAPIService
|
||||||
|
businessId int64
|
||||||
|
confirmPricesRequest *ConfirmPricesRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIConfirmBusinessPricesRequest) ConfirmPricesRequest(confirmPricesRequest ConfirmPricesRequest) PriceQuarantineAPIConfirmBusinessPricesRequest {
|
||||||
|
r.confirmPricesRequest = &confirmPricesRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIConfirmBusinessPricesRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.ConfirmBusinessPricesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ConfirmBusinessPrices Удаление товара из карантина по цене в кабинете
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/confirmBusinessPrices.md) %}
|
||||||
|
|
||||||
|
Подтверждает во всех магазинах цену на товары, которые попали в карантин, и удаляет их из карантина.
|
||||||
|
|
||||||
|
Товар попадает в карантин, если его цена меняется слишком резко. [Как настроить карантин](https://yandex.ru/support/marketplace/assortment/operations/prices.html#quarantine)
|
||||||
|
|
||||||
|
Чтобы увидеть список товаров, которые попали в карантин, используйте запрос [POST businesses/{businessId}/price-quarantine](getBusinessQuarantineOffers.md).
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту, не более 200 товаров в одном запросе|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PriceQuarantineAPIConfirmBusinessPricesRequest
|
||||||
|
*/
|
||||||
|
func (a *PriceQuarantineAPIService) ConfirmBusinessPrices(ctx context.Context, businessId int64) PriceQuarantineAPIConfirmBusinessPricesRequest {
|
||||||
|
return PriceQuarantineAPIConfirmBusinessPricesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *PriceQuarantineAPIService) ConfirmBusinessPricesExecute(r PriceQuarantineAPIConfirmBusinessPricesRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PriceQuarantineAPIService.ConfirmBusinessPrices")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/price-quarantine/confirm"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.confirmPricesRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("confirmPricesRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.confirmPricesRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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 PriceQuarantineAPIConfirmCampaignPricesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PriceQuarantineAPIService
|
||||||
|
campaignId int64
|
||||||
|
confirmPricesRequest *ConfirmPricesRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIConfirmCampaignPricesRequest) ConfirmPricesRequest(confirmPricesRequest ConfirmPricesRequest) PriceQuarantineAPIConfirmCampaignPricesRequest {
|
||||||
|
r.confirmPricesRequest = &confirmPricesRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIConfirmCampaignPricesRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.ConfirmCampaignPricesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
ConfirmCampaignPrices Удаление товара из карантина по цене в магазине
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/confirmCampaignPrices.md) %}
|
||||||
|
|
||||||
|
Подтверждает в заданном магазине цену на товары, которые попали в карантин, и удаляет их из карантина.
|
||||||
|
|
||||||
|
Товар попадает в карантин, если его цена меняется слишком резко. [Как настроить карантин](https://yandex.ru/support/marketplace/assortment/operations/prices.html#quarantine)
|
||||||
|
|
||||||
|
Чтобы увидеть список товаров, которые попали в карантин, используйте запрос [POST campaigns/{campaignId}/price-quarantine](getCampaignQuarantineOffers.md).
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return PriceQuarantineAPIConfirmCampaignPricesRequest
|
||||||
|
*/
|
||||||
|
func (a *PriceQuarantineAPIService) ConfirmCampaignPrices(ctx context.Context, campaignId int64) PriceQuarantineAPIConfirmCampaignPricesRequest {
|
||||||
|
return PriceQuarantineAPIConfirmCampaignPricesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *PriceQuarantineAPIService) ConfirmCampaignPricesExecute(r PriceQuarantineAPIConfirmCampaignPricesRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PriceQuarantineAPIService.ConfirmCampaignPrices")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/price-quarantine/confirm"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.confirmPricesRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("confirmPricesRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.confirmPricesRequest
|
||||||
|
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 == 423 {
|
||||||
|
var v ApiLockedErrorResponse
|
||||||
|
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 PriceQuarantineAPIGetBusinessQuarantineOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PriceQuarantineAPIService
|
||||||
|
businessId int64
|
||||||
|
getQuarantineOffersRequest *GetQuarantineOffersRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIGetBusinessQuarantineOffersRequest) GetQuarantineOffersRequest(getQuarantineOffersRequest GetQuarantineOffersRequest) PriceQuarantineAPIGetBusinessQuarantineOffersRequest {
|
||||||
|
r.getQuarantineOffersRequest = &getQuarantineOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r PriceQuarantineAPIGetBusinessQuarantineOffersRequest) PageToken(pageToken string) PriceQuarantineAPIGetBusinessQuarantineOffersRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r PriceQuarantineAPIGetBusinessQuarantineOffersRequest) Limit(limit int32) PriceQuarantineAPIGetBusinessQuarantineOffersRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIGetBusinessQuarantineOffersRequest) Execute() (*GetQuarantineOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetBusinessQuarantineOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetBusinessQuarantineOffers Список товаров, находящихся в карантине по цене в кабинете
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getBusinessQuarantineOffers.md) %}
|
||||||
|
|
||||||
|
Возвращает список товаров, которые находятся в карантине по цене, установленной для всех магазинов кабинета.
|
||||||
|
|
||||||
|
Проверьте цену каждого из товаров, который попал в карантин. Если ошибки нет и цена правильная, подтвердите ее с помощью запроса [POST businesses/{businessId}/price-quarantine/confirm](../../reference/business-assortment/confirmBusinessPrices.md). Если цена в самом деле ошибочная, установите верную с помощью запроса [POST businesses/{businessId}/offer-prices/updates](../../reference/business-assortment/updateBusinessPrices.md).
|
||||||
|
|
||||||
|
{% note info "Что такое карантин?" %}
|
||||||
|
|
||||||
|
Товар попадает в карантин, если его цена меняется слишком резко или слишком сильно отличается от рыночной. [Подробнее](https://yandex.ru/support/marketplace/assortment/operations/prices.html#quarantine)
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
В запросе можно использовать фильтры.
|
||||||
|
|
||||||
|
Результаты возвращаются постранично.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту, не более 500 товаров в одном запросе|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PriceQuarantineAPIGetBusinessQuarantineOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *PriceQuarantineAPIService) GetBusinessQuarantineOffers(ctx context.Context, businessId int64) PriceQuarantineAPIGetBusinessQuarantineOffersRequest {
|
||||||
|
return PriceQuarantineAPIGetBusinessQuarantineOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetQuarantineOffersResponse
|
||||||
|
func (a *PriceQuarantineAPIService) GetBusinessQuarantineOffersExecute(r PriceQuarantineAPIGetBusinessQuarantineOffersRequest) (*GetQuarantineOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetQuarantineOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PriceQuarantineAPIService.GetBusinessQuarantineOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/price-quarantine"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getQuarantineOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getQuarantineOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getQuarantineOffersRequest
|
||||||
|
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 PriceQuarantineAPIGetCampaignQuarantineOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PriceQuarantineAPIService
|
||||||
|
campaignId int64
|
||||||
|
getQuarantineOffersRequest *GetQuarantineOffersRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIGetCampaignQuarantineOffersRequest) GetQuarantineOffersRequest(getQuarantineOffersRequest GetQuarantineOffersRequest) PriceQuarantineAPIGetCampaignQuarantineOffersRequest {
|
||||||
|
r.getQuarantineOffersRequest = &getQuarantineOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r PriceQuarantineAPIGetCampaignQuarantineOffersRequest) PageToken(pageToken string) PriceQuarantineAPIGetCampaignQuarantineOffersRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r PriceQuarantineAPIGetCampaignQuarantineOffersRequest) Limit(limit int32) PriceQuarantineAPIGetCampaignQuarantineOffersRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PriceQuarantineAPIGetCampaignQuarantineOffersRequest) Execute() (*GetQuarantineOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetCampaignQuarantineOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetCampaignQuarantineOffers Список товаров, находящихся в карантине по цене в магазине
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getCampaignQuarantineOffers.md) %}
|
||||||
|
|
||||||
|
Возвращает список товаров, которые находятся в карантине по цене, установленной в заданном магазине.
|
||||||
|
|
||||||
|
Проверьте цену каждого из товаров, который попал в карантин. Если ошибки нет и цена правильная, подтвердите ее с помощью запроса [POST campaigns/{campaignId}/price-quarantine/confirm](../../reference/assortment/confirmCampaignPrices.md). Если цена в самом деле ошибочная, установите верную с помощью запроса [POST campaigns/{campaignId}/offer-prices/updates](../../reference/assortment/updatePrices.md).
|
||||||
|
|
||||||
|
{% note info "Что такое карантин?" %}
|
||||||
|
|
||||||
|
Товар попадает в карантин, если его цена меняется слишком резко или слишком сильно отличается от рыночной. [Подробнее](https://yandex.ru/support/marketplace/assortment/operations/prices.html#quarantine)
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
В запросе можно использовать фильтры.
|
||||||
|
|
||||||
|
Результаты возвращаются постранично.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return PriceQuarantineAPIGetCampaignQuarantineOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *PriceQuarantineAPIService) GetCampaignQuarantineOffers(ctx context.Context, campaignId int64) PriceQuarantineAPIGetCampaignQuarantineOffersRequest {
|
||||||
|
return PriceQuarantineAPIGetCampaignQuarantineOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetQuarantineOffersResponse
|
||||||
|
func (a *PriceQuarantineAPIService) GetCampaignQuarantineOffersExecute(r PriceQuarantineAPIGetCampaignQuarantineOffersRequest) (*GetQuarantineOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetQuarantineOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PriceQuarantineAPIService.GetCampaignQuarantineOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/price-quarantine"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getQuarantineOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getQuarantineOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getQuarantineOffersRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
1387
pkg/api/yandex/ymclient/api_prices.go
Normal file
1387
pkg/api/yandex/ymclient/api_prices.go
Normal file
File diff suppressed because it is too large
Load Diff
870
pkg/api/yandex/ymclient/api_promos.go
Normal file
870
pkg/api/yandex/ymclient/api_promos.go
Normal file
@@ -0,0 +1,870 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PromosAPIService PromosAPI service
|
||||||
|
type PromosAPIService service
|
||||||
|
|
||||||
|
type PromosAPIDeletePromoOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PromosAPIService
|
||||||
|
businessId int64
|
||||||
|
deletePromoOffersRequest *DeletePromoOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIDeletePromoOffersRequest) DeletePromoOffersRequest(deletePromoOffersRequest DeletePromoOffersRequest) PromosAPIDeletePromoOffersRequest {
|
||||||
|
r.deletePromoOffersRequest = &deletePromoOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIDeletePromoOffersRequest) Execute() (*DeletePromoOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.DeletePromoOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
DeletePromoOffers Удаление товаров из акции
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/deletePromoOffers.md) %}
|
||||||
|
|
||||||
|
Убирает товары из акции.
|
||||||
|
|
||||||
|
Изменения начинают действовать в течение 4–6 часов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PromosAPIDeletePromoOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *PromosAPIService) DeletePromoOffers(ctx context.Context, businessId int64) PromosAPIDeletePromoOffersRequest {
|
||||||
|
return PromosAPIDeletePromoOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return DeletePromoOffersResponse
|
||||||
|
func (a *PromosAPIService) DeletePromoOffersExecute(r PromosAPIDeletePromoOffersRequest) (*DeletePromoOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *DeletePromoOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PromosAPIService.DeletePromoOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/promos/offers/delete"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.deletePromoOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("deletePromoOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.deletePromoOffersRequest
|
||||||
|
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 PromosAPIGetPromoOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PromosAPIService
|
||||||
|
businessId int64
|
||||||
|
getPromoOffersRequest *GetPromoOffersRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIGetPromoOffersRequest) GetPromoOffersRequest(getPromoOffersRequest GetPromoOffersRequest) PromosAPIGetPromoOffersRequest {
|
||||||
|
r.getPromoOffersRequest = &getPromoOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r PromosAPIGetPromoOffersRequest) PageToken(pageToken string) PromosAPIGetPromoOffersRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r PromosAPIGetPromoOffersRequest) Limit(limit int32) PromosAPIGetPromoOffersRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIGetPromoOffersRequest) Execute() (*GetPromoOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetPromoOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetPromoOffers Получение списка товаров, которые участвуют или могут участвовать в акции
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getPromoOffers.md) %}
|
||||||
|
|
||||||
|
Возвращает список товаров, которые участвуют или могут участвовать в акции.
|
||||||
|
|
||||||
|
{% note warning "Условия участия в акциях могут меняться" %}
|
||||||
|
|
||||||
|
Например, `maxPromoPrice`.
|
||||||
|
|
||||||
|
Установленные цены меняться не будут — `price` и `promoPrice`.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 запросов в час, не более 500 товаров в запросе|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PromosAPIGetPromoOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *PromosAPIService) GetPromoOffers(ctx context.Context, businessId int64) PromosAPIGetPromoOffersRequest {
|
||||||
|
return PromosAPIGetPromoOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetPromoOffersResponse
|
||||||
|
func (a *PromosAPIService) GetPromoOffersExecute(r PromosAPIGetPromoOffersRequest) (*GetPromoOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetPromoOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PromosAPIService.GetPromoOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/promos/offers"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getPromoOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getPromoOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getPromoOffersRequest
|
||||||
|
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 PromosAPIGetPromosRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PromosAPIService
|
||||||
|
businessId int64
|
||||||
|
getPromosRequest *GetPromosRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIGetPromosRequest) GetPromosRequest(getPromosRequest GetPromosRequest) PromosAPIGetPromosRequest {
|
||||||
|
r.getPromosRequest = &getPromosRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIGetPromosRequest) Execute() (*GetPromosResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetPromosExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetPromos Получение списка акций
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getPromos.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию об акциях Маркета. Не возвращает данные об акциях, которые создал продавец.
|
||||||
|
|
||||||
|
По умолчанию возвращаются акции, в которых продавец участвует или может принять участие.
|
||||||
|
|
||||||
|
Чтобы получить текущие или завершенные акции, передайте параметр `participation`.
|
||||||
|
|
||||||
|
Типы акций, которые возвращаются в ответе:
|
||||||
|
|
||||||
|
* прямая скидка;
|
||||||
|
* флеш-акция;
|
||||||
|
* скидка по промокоду.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PromosAPIGetPromosRequest
|
||||||
|
*/
|
||||||
|
func (a *PromosAPIService) GetPromos(ctx context.Context, businessId int64) PromosAPIGetPromosRequest {
|
||||||
|
return PromosAPIGetPromosRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetPromosResponse
|
||||||
|
func (a *PromosAPIService) GetPromosExecute(r PromosAPIGetPromosRequest) (*GetPromosResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetPromosResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PromosAPIService.GetPromos")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/promos"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getPromosRequest
|
||||||
|
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 PromosAPIUpdatePromoOffersRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *PromosAPIService
|
||||||
|
businessId int64
|
||||||
|
updatePromoOffersRequest *UpdatePromoOffersRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIUpdatePromoOffersRequest) UpdatePromoOffersRequest(updatePromoOffersRequest UpdatePromoOffersRequest) PromosAPIUpdatePromoOffersRequest {
|
||||||
|
r.updatePromoOffersRequest = &updatePromoOffersRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r PromosAPIUpdatePromoOffersRequest) Execute() (*UpdatePromoOffersResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdatePromoOffersExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdatePromoOffers Добавление товаров в акцию или изменение их цен
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updatePromoOffers.md) %}
|
||||||
|
|
||||||
|
Добавляет товары в акцию или изменяет цены на товары, которые участвуют в акции.
|
||||||
|
|
||||||
|
Изменения начинают действовать в течение 4–6 часов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return PromosAPIUpdatePromoOffersRequest
|
||||||
|
*/
|
||||||
|
func (a *PromosAPIService) UpdatePromoOffers(ctx context.Context, businessId int64) PromosAPIUpdatePromoOffersRequest {
|
||||||
|
return PromosAPIUpdatePromoOffersRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return UpdatePromoOffersResponse
|
||||||
|
func (a *PromosAPIService) UpdatePromoOffersExecute(r PromosAPIUpdatePromoOffersRequest) (*UpdatePromoOffersResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *UpdatePromoOffersResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "PromosAPIService.UpdatePromoOffers")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/promos/offers/update"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updatePromoOffersRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updatePromoOffersRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updatePromoOffersRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
418
pkg/api/yandex/ymclient/api_ratings.go
Normal file
418
pkg/api/yandex/ymclient/api_ratings.go
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RatingsAPIService RatingsAPI service
|
||||||
|
type RatingsAPIService service
|
||||||
|
|
||||||
|
type RatingsAPIGetQualityRatingDetailsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RatingsAPIService
|
||||||
|
campaignId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RatingsAPIGetQualityRatingDetailsRequest) Execute() (*GetQualityRatingDetailsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetQualityRatingDetailsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetQualityRatingDetails Заказы, которые повлияли на индекс качества
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getQualityRatingDetails.md) %}
|
||||||
|
|
||||||
|
Возвращает список заказов, которые повлияли на индекс качества магазина. Чтобы узнать значение индекса качества, выполните запрос [POST businesses/{businessId}/ratings/quality](../../reference/ratings/getQualityRatings.md).
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return RatingsAPIGetQualityRatingDetailsRequest
|
||||||
|
*/
|
||||||
|
func (a *RatingsAPIService) GetQualityRatingDetails(ctx context.Context, campaignId int64) RatingsAPIGetQualityRatingDetailsRequest {
|
||||||
|
return RatingsAPIGetQualityRatingDetailsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetQualityRatingDetailsResponse
|
||||||
|
func (a *RatingsAPIService) GetQualityRatingDetailsExecute(r RatingsAPIGetQualityRatingDetailsRequest) (*GetQualityRatingDetailsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetQualityRatingDetailsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RatingsAPIService.GetQualityRatingDetails")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/ratings/quality/details"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 RatingsAPIGetQualityRatingsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RatingsAPIService
|
||||||
|
businessId int64
|
||||||
|
getQualityRatingRequest *GetQualityRatingRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RatingsAPIGetQualityRatingsRequest) GetQualityRatingRequest(getQualityRatingRequest GetQualityRatingRequest) RatingsAPIGetQualityRatingsRequest {
|
||||||
|
r.getQualityRatingRequest = &getQualityRatingRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RatingsAPIGetQualityRatingsRequest) Execute() (*GetQualityRatingResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetQualityRatingsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetQualityRatings Индекс качества магазинов
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getQualityRatings.md) %}
|
||||||
|
|
||||||
|
Возвращает значение индекса качества магазинов и его составляющие.
|
||||||
|
|
||||||
|
Подробнее об индексе качества читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/quality/score/).
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 10 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return RatingsAPIGetQualityRatingsRequest
|
||||||
|
*/
|
||||||
|
func (a *RatingsAPIService) GetQualityRatings(ctx context.Context, businessId int64) RatingsAPIGetQualityRatingsRequest {
|
||||||
|
return RatingsAPIGetQualityRatingsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetQualityRatingResponse
|
||||||
|
func (a *RatingsAPIService) GetQualityRatingsExecute(r RatingsAPIGetQualityRatingsRequest) (*GetQualityRatingResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetQualityRatingResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RatingsAPIService.GetQualityRatings")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/ratings/quality"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getQualityRatingRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getQualityRatingRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getQualityRatingRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
793
pkg/api/yandex/ymclient/api_regions.go
Normal file
793
pkg/api/yandex/ymclient/api_regions.go
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RegionsAPIService RegionsAPI service
|
||||||
|
type RegionsAPIService service
|
||||||
|
|
||||||
|
type RegionsAPIGetRegionsCodesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RegionsAPIService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RegionsAPIGetRegionsCodesRequest) Execute() (*GetRegionsCodesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetRegionsCodesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetRegionsCodes Список допустимых кодов стран
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getRegionsCodes.md) %}
|
||||||
|
|
||||||
|
Возвращает список стран с их кодами в формате :no-translate[ISO 3166-1 alpha-2].
|
||||||
|
|
||||||
|
Страна производства `countryCode` понадобится при продаже товаров из-за рубежа для бизнеса. [Инструкция](../../step-by-step/business-info.md)
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return RegionsAPIGetRegionsCodesRequest
|
||||||
|
*/
|
||||||
|
func (a *RegionsAPIService) GetRegionsCodes(ctx context.Context) RegionsAPIGetRegionsCodesRequest {
|
||||||
|
return RegionsAPIGetRegionsCodesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetRegionsCodesResponse
|
||||||
|
func (a *RegionsAPIService) GetRegionsCodesExecute(r RegionsAPIGetRegionsCodesRequest) (*GetRegionsCodesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetRegionsCodesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RegionsAPIService.GetRegionsCodes")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/regions/countries"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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 == 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 RegionsAPISearchRegionChildrenRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RegionsAPIService
|
||||||
|
regionId int64
|
||||||
|
page *int32
|
||||||
|
pageSize *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// {% 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 RegionsAPISearchRegionChildrenRequest) Page(page int32) RegionsAPISearchRegionChildrenRequest {
|
||||||
|
r.page = &page
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Размер страницы. Используется вместе с параметром :no-translate[`page`]. :no-translate[`pageSize`] игнорируется, если задан :no-translate[`page_token`] или :no-translate[`limit`].
|
||||||
|
func (r RegionsAPISearchRegionChildrenRequest) PageSize(pageSize int32) RegionsAPISearchRegionChildrenRequest {
|
||||||
|
r.pageSize = &pageSize
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RegionsAPISearchRegionChildrenRequest) Execute() (*GetRegionWithChildrenResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.SearchRegionChildrenExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SearchRegionChildren Информация о дочерних регионах
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/searchRegionChildren.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о регионах, являющихся дочерними по отношению к региону, идентификатор которого указан в запросе.
|
||||||
|
|
||||||
|
Для методов `GET regions`, `GET regions/{regionId}` и `GET regions/{regionId}/children` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество регионов, информация о которых запрошена при помощи этих методов (не более 100 000 регионов).
|
||||||
|
|
||||||
|
Объем запросов к ресурсу, который возможно выполнить в течение суток, зависит от суммарного количества регионов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 50 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param regionId Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]).
|
||||||
|
@return RegionsAPISearchRegionChildrenRequest
|
||||||
|
*/
|
||||||
|
func (a *RegionsAPIService) SearchRegionChildren(ctx context.Context, regionId int64) RegionsAPISearchRegionChildrenRequest {
|
||||||
|
return RegionsAPISearchRegionChildrenRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
regionId: regionId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetRegionWithChildrenResponse
|
||||||
|
func (a *RegionsAPIService) SearchRegionChildrenExecute(r RegionsAPISearchRegionChildrenRequest) (*GetRegionWithChildrenResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetRegionWithChildrenResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RegionsAPIService.SearchRegionChildren")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/regions/{regionId}/children"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"regionId"+"}", url.PathEscape(parameterValueToString(r.regionId, "regionId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
type RegionsAPISearchRegionsByIdRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RegionsAPIService
|
||||||
|
regionId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RegionsAPISearchRegionsByIdRequest) Execute() (*GetRegionsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.SearchRegionsByIdExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SearchRegionsById Информация о регионе
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/searchRegionsById.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о регионе.
|
||||||
|
|
||||||
|
Для методов `GET regions`, `GET regions/{regionId}` и `GET regions/{regionId}/children` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество регионов, информация о которых запрошена при помощи этих методов (не более 100 000 регионов).
|
||||||
|
|
||||||
|
Объем запросов к ресурсу, который возможно выполнить в течение суток, зависит от суммарного количества регионов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 50 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param regionId Идентификатор региона. Идентификатор региона можно получить c помощью запроса [:no-translate[GET regions]](:no-translate[../../reference/regions/searchRegionsByName.md]).
|
||||||
|
@return RegionsAPISearchRegionsByIdRequest
|
||||||
|
*/
|
||||||
|
func (a *RegionsAPIService) SearchRegionsById(ctx context.Context, regionId int64) RegionsAPISearchRegionsByIdRequest {
|
||||||
|
return RegionsAPISearchRegionsByIdRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
regionId: regionId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetRegionsResponse
|
||||||
|
func (a *RegionsAPIService) SearchRegionsByIdExecute(r RegionsAPISearchRegionsByIdRequest) (*GetRegionsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetRegionsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RegionsAPIService.SearchRegionsById")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/regions/{regionId}"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"regionId"+"}", url.PathEscape(parameterValueToString(r.regionId, "regionId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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 == 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 RegionsAPISearchRegionsByNameRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *RegionsAPIService
|
||||||
|
name *string
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Название региона. Важно учитывать регистр: первая буква должна быть заглавной, остальные — строчными. Например, :no-translate[`Москва`].
|
||||||
|
func (r RegionsAPISearchRegionsByNameRequest) Name(name string) RegionsAPISearchRegionsByNameRequest {
|
||||||
|
r.name = &name
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r RegionsAPISearchRegionsByNameRequest) PageToken(pageToken string) RegionsAPISearchRegionsByNameRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r RegionsAPISearchRegionsByNameRequest) Limit(limit int32) RegionsAPISearchRegionsByNameRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r RegionsAPISearchRegionsByNameRequest) Execute() (*GetRegionsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.SearchRegionsByNameExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
SearchRegionsByName Поиск регионов по их имени
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/searchRegionsByName.md) %}
|
||||||
|
|
||||||
|
Возвращает информацию о регионе, удовлетворяющем заданным в запросе условиям поиска.
|
||||||
|
|
||||||
|
Если найдено несколько регионов, удовлетворяющих условиям поиска, возвращается информация по каждому найденному региону (но не более десяти регионов) для возможности определения нужного региона по родительским регионам.
|
||||||
|
|
||||||
|
Для методов `GET regions`, `GET regions/{regionId}` и `GET regions/{regionId}/children` действует групповое ресурсное ограничение. Ограничение вводится на суммарное количество регионов, информация о которых запрошена при помощи этих методов (не более 100 000 регионов).
|
||||||
|
|
||||||
|
Объем запросов к ресурсу, который возможно выполнить в течение суток, зависит от суммарного количества регионов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 50 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return RegionsAPISearchRegionsByNameRequest
|
||||||
|
*/
|
||||||
|
func (a *RegionsAPIService) SearchRegionsByName(ctx context.Context) RegionsAPISearchRegionsByNameRequest {
|
||||||
|
return RegionsAPISearchRegionsByNameRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetRegionsResponse
|
||||||
|
func (a *RegionsAPIService) SearchRegionsByNameExecute(r RegionsAPISearchRegionsByNameRequest) (*GetRegionsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetRegionsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "RegionsAPIService.SearchRegionsByName")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/regions"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.name == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("name is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "name", r.name, "", "")
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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 == 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 == 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
|
||||||
|
}
|
||||||
4945
pkg/api/yandex/ymclient/api_reports.go
Normal file
4945
pkg/api/yandex/ymclient/api_reports.go
Normal file
File diff suppressed because it is too large
Load Diff
1362
pkg/api/yandex/ymclient/api_returns.go
Normal file
1362
pkg/api/yandex/ymclient/api_returns.go
Normal file
File diff suppressed because it is too large
Load Diff
2586
pkg/api/yandex/ymclient/api_shipments.go
Normal file
2586
pkg/api/yandex/ymclient/api_shipments.go
Normal file
File diff suppressed because it is too large
Load Diff
453
pkg/api/yandex/ymclient/api_stocks.go
Normal file
453
pkg/api/yandex/ymclient/api_stocks.go
Normal file
@@ -0,0 +1,453 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// StocksAPIService StocksAPI service
|
||||||
|
type StocksAPIService service
|
||||||
|
|
||||||
|
type StocksAPIGetStocksRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *StocksAPIService
|
||||||
|
campaignId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getWarehouseStocksRequest *GetWarehouseStocksRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r StocksAPIGetStocksRequest) PageToken(pageToken string) StocksAPIGetStocksRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r StocksAPIGetStocksRequest) Limit(limit int32) StocksAPIGetStocksRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r StocksAPIGetStocksRequest) GetWarehouseStocksRequest(getWarehouseStocksRequest GetWarehouseStocksRequest) StocksAPIGetStocksRequest {
|
||||||
|
r.getWarehouseStocksRequest = &getWarehouseStocksRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r StocksAPIGetStocksRequest) Execute() (*GetWarehouseStocksResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetStocksExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetStocks Информация об остатках и оборачиваемости
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getStocks.md) %}
|
||||||
|
|
||||||
|
Возвращает данные об остатках товаров (для всех моделей) и об [оборачиваемости](:no-translate[*turnover]) товаров (для модели :no-translate[FBY]).
|
||||||
|
|
||||||
|
**Для модели :no-translate[FBY]:** информация об остатках может возвращаться с нескольких складов Маркета, у которых будут разные `warehouseId`. Получить список складов Маркета можно с помощью метода [GET warehouses](../../reference/warehouses/getFulfillmentWarehouses.md).
|
||||||
|
|
||||||
|
{% note info "По умолчанию данные по оборачивамости не возращаются" %}
|
||||||
|
|
||||||
|
Чтобы они были в ответе, передавайте `true` в поле `withTurnover`.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
[//]: <> (turnover: Среднее количество дней, за которое товар продается. Подробно об оборачиваемости рассказано в Справке Маркета для продавцов https://yandex.ru/support/marketplace/analytics/turnover.html.)
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return StocksAPIGetStocksRequest
|
||||||
|
*/
|
||||||
|
func (a *StocksAPIService) GetStocks(ctx context.Context, campaignId int64) StocksAPIGetStocksRequest {
|
||||||
|
return StocksAPIGetStocksRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetWarehouseStocksResponse
|
||||||
|
func (a *StocksAPIService) GetStocksExecute(r StocksAPIGetStocksRequest) (*GetWarehouseStocksResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetWarehouseStocksResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "StocksAPIService.GetStocks")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offers/stocks"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getWarehouseStocksRequest
|
||||||
|
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 == 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 StocksAPIUpdateStocksRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *StocksAPIService
|
||||||
|
campaignId int64
|
||||||
|
updateStocksRequest *UpdateStocksRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r StocksAPIUpdateStocksRequest) UpdateStocksRequest(updateStocksRequest UpdateStocksRequest) StocksAPIUpdateStocksRequest {
|
||||||
|
r.updateStocksRequest = &updateStocksRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r StocksAPIUpdateStocksRequest) Execute() (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateStocksExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateStocks Передача информации об остатках
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateStocks.md) %}
|
||||||
|
|
||||||
|
Передает данные об остатках товаров на витрине.
|
||||||
|
|
||||||
|
Для группы складов передавайте остатки только для **одного любого склада**. Информация для остальных складов в этой группе обновится автоматически.
|
||||||
|
|
||||||
|
Обязательно указывайте :no-translate[SKU] **в точности** так, как он указан в каталоге. Например, _557722_ и _0557722_ — это два разных :no-translate[SKU].
|
||||||
|
|
||||||
|
{% note info "Данные в каталоге обновляются не мгновенно" %}
|
||||||
|
|
||||||
|
Это занимает до нескольких минут.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 000 товаров в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return StocksAPIUpdateStocksRequest
|
||||||
|
*/
|
||||||
|
func (a *StocksAPIService) UpdateStocks(ctx context.Context, campaignId int64) StocksAPIUpdateStocksRequest {
|
||||||
|
return StocksAPIUpdateStocksRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return EmptyApiResponse
|
||||||
|
func (a *StocksAPIService) UpdateStocksExecute(r StocksAPIUpdateStocksRequest) (*EmptyApiResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPut
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *EmptyApiResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "StocksAPIService.UpdateStocks")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/offers/stocks"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateStocksRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateStocksRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateStocksRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
655
pkg/api/yandex/ymclient/api_supply_requests.go
Normal file
655
pkg/api/yandex/ymclient/api_supply_requests.go
Normal file
@@ -0,0 +1,655 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SupplyRequestsAPIService SupplyRequestsAPI service
|
||||||
|
type SupplyRequestsAPIService service
|
||||||
|
|
||||||
|
type SupplyRequestsAPIGetSupplyRequestDocumentsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *SupplyRequestsAPIService
|
||||||
|
campaignId int64
|
||||||
|
getSupplyRequestDocumentsRequest *GetSupplyRequestDocumentsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestDocumentsRequest) GetSupplyRequestDocumentsRequest(getSupplyRequestDocumentsRequest GetSupplyRequestDocumentsRequest) SupplyRequestsAPIGetSupplyRequestDocumentsRequest {
|
||||||
|
r.getSupplyRequestDocumentsRequest = &getSupplyRequestDocumentsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestDocumentsRequest) Execute() (*GetSupplyRequestDocumentsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetSupplyRequestDocumentsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetSupplyRequestDocuments Получение документов по заявке на поставку, вывоз или утилизацию
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getSupplyRequestDocuments.md) %}
|
||||||
|
|
||||||
|
Возвращает документы по заявке.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return SupplyRequestsAPIGetSupplyRequestDocumentsRequest
|
||||||
|
*/
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequestDocuments(ctx context.Context, campaignId int64) SupplyRequestsAPIGetSupplyRequestDocumentsRequest {
|
||||||
|
return SupplyRequestsAPIGetSupplyRequestDocumentsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetSupplyRequestDocumentsResponse
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequestDocumentsExecute(r SupplyRequestsAPIGetSupplyRequestDocumentsRequest) (*GetSupplyRequestDocumentsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetSupplyRequestDocumentsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SupplyRequestsAPIService.GetSupplyRequestDocuments")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/supply-requests/documents"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getSupplyRequestDocumentsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getSupplyRequestDocumentsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.getSupplyRequestDocumentsRequest
|
||||||
|
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 SupplyRequestsAPIGetSupplyRequestItemsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *SupplyRequestsAPIService
|
||||||
|
campaignId int64
|
||||||
|
getSupplyRequestItemsRequest *GetSupplyRequestItemsRequest
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestItemsRequest) GetSupplyRequestItemsRequest(getSupplyRequestItemsRequest GetSupplyRequestItemsRequest) SupplyRequestsAPIGetSupplyRequestItemsRequest {
|
||||||
|
r.getSupplyRequestItemsRequest = &getSupplyRequestItemsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestItemsRequest) PageToken(pageToken string) SupplyRequestsAPIGetSupplyRequestItemsRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestItemsRequest) Limit(limit int32) SupplyRequestsAPIGetSupplyRequestItemsRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestItemsRequest) Execute() (*GetSupplyRequestItemsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetSupplyRequestItemsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetSupplyRequestItems Получение товаров в заявке на поставку, вывоз или утилизацию
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getSupplyRequestItems.md) %}
|
||||||
|
|
||||||
|
Возвращает список товаров в заявке и информацию по ним.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return SupplyRequestsAPIGetSupplyRequestItemsRequest
|
||||||
|
*/
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequestItems(ctx context.Context, campaignId int64) SupplyRequestsAPIGetSupplyRequestItemsRequest {
|
||||||
|
return SupplyRequestsAPIGetSupplyRequestItemsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetSupplyRequestItemsResponse
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequestItemsExecute(r SupplyRequestsAPIGetSupplyRequestItemsRequest) (*GetSupplyRequestItemsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetSupplyRequestItemsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SupplyRequestsAPIService.GetSupplyRequestItems")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/supply-requests/items"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.getSupplyRequestItemsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("getSupplyRequestItemsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getSupplyRequestItemsRequest
|
||||||
|
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 SupplyRequestsAPIGetSupplyRequestsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *SupplyRequestsAPIService
|
||||||
|
campaignId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getSupplyRequestsRequest *GetSupplyRequestsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestsRequest) PageToken(pageToken string) SupplyRequestsAPIGetSupplyRequestsRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestsRequest) Limit(limit int32) SupplyRequestsAPIGetSupplyRequestsRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestsRequest) GetSupplyRequestsRequest(getSupplyRequestsRequest GetSupplyRequestsRequest) SupplyRequestsAPIGetSupplyRequestsRequest {
|
||||||
|
r.getSupplyRequestsRequest = &getSupplyRequestsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r SupplyRequestsAPIGetSupplyRequestsRequest) Execute() (*GetSupplyRequestsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetSupplyRequestsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetSupplyRequests Получение информации о заявках на поставку, вывоз и утилизацию
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getSupplyRequests.md) %}
|
||||||
|
|
||||||
|
По указанным фильтрам возвращает заявки на поставку, вывоз и утилизацию, а также информацию по ним.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return SupplyRequestsAPIGetSupplyRequestsRequest
|
||||||
|
*/
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequests(ctx context.Context, campaignId int64) SupplyRequestsAPIGetSupplyRequestsRequest {
|
||||||
|
return SupplyRequestsAPIGetSupplyRequestsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetSupplyRequestsResponse
|
||||||
|
func (a *SupplyRequestsAPIService) GetSupplyRequestsExecute(r SupplyRequestsAPIGetSupplyRequestsRequest) (*GetSupplyRequestsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetSupplyRequestsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "SupplyRequestsAPIService.GetSupplyRequests")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/supply-requests"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getSupplyRequestsRequest
|
||||||
|
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 == 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
|
||||||
|
}
|
||||||
222
pkg/api/yandex/ymclient/api_tariffs.go
Normal file
222
pkg/api/yandex/ymclient/api_tariffs.go
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TariffsAPIService TariffsAPI service
|
||||||
|
type TariffsAPIService service
|
||||||
|
|
||||||
|
type TariffsAPICalculateTariffsRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *TariffsAPIService
|
||||||
|
calculateTariffsRequest *CalculateTariffsRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r TariffsAPICalculateTariffsRequest) CalculateTariffsRequest(calculateTariffsRequest CalculateTariffsRequest) TariffsAPICalculateTariffsRequest {
|
||||||
|
r.calculateTariffsRequest = &calculateTariffsRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r TariffsAPICalculateTariffsRequest) Execute() (*CalculateTariffsResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.CalculateTariffsExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
CalculateTariffs Калькулятор стоимости услуг
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/calculateTariffs.md) %}
|
||||||
|
|
||||||
|
Рассчитывает стоимость услуг Маркета для товаров с заданными параметрами. Порядок товаров в запросе и ответе сохраняется, чтобы определить,
|
||||||
|
для какого товара рассчитана стоимость услуги.
|
||||||
|
|
||||||
|
Обратите внимание: калькулятор осуществляет примерные расчеты. Финальная стоимость для каждого заказа зависит от предоставленных услуг.
|
||||||
|
|
||||||
|
В запросе можно указать либо параметр `campaignId`, либо `sellingProgram`. Совместное использование параметров приведет к ошибке.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return TariffsAPICalculateTariffsRequest
|
||||||
|
*/
|
||||||
|
func (a *TariffsAPIService) CalculateTariffs(ctx context.Context) TariffsAPICalculateTariffsRequest {
|
||||||
|
return TariffsAPICalculateTariffsRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return CalculateTariffsResponse
|
||||||
|
func (a *TariffsAPIService) CalculateTariffsExecute(r TariffsAPICalculateTariffsRequest) (*CalculateTariffsResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *CalculateTariffsResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "TariffsAPIService.CalculateTariffs")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/tariffs/calculate"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.calculateTariffsRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("calculateTariffsRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.calculateTariffsRequest
|
||||||
|
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
|
||||||
|
}
|
||||||
817
pkg/api/yandex/ymclient/api_warehouses.go
Normal file
817
pkg/api/yandex/ymclient/api_warehouses.go
Normal file
@@ -0,0 +1,817 @@
|
|||||||
|
/*
|
||||||
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// WarehousesAPIService WarehousesAPI service
|
||||||
|
type WarehousesAPIService service
|
||||||
|
|
||||||
|
type WarehousesAPIGetFulfillmentWarehousesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *WarehousesAPIService
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIGetFulfillmentWarehousesRequest) Execute() (*GetFulfillmentWarehousesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetFulfillmentWarehousesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetFulfillmentWarehouses Идентификаторы складов Маркета
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getFulfillmentWarehouses.md) %}
|
||||||
|
|
||||||
|
Возвращает список складов Маркета с их идентификаторами.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@return WarehousesAPIGetFulfillmentWarehousesRequest
|
||||||
|
*/
|
||||||
|
func (a *WarehousesAPIService) GetFulfillmentWarehouses(ctx context.Context) WarehousesAPIGetFulfillmentWarehousesRequest {
|
||||||
|
return WarehousesAPIGetFulfillmentWarehousesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetFulfillmentWarehousesResponse
|
||||||
|
func (a *WarehousesAPIService) GetFulfillmentWarehousesExecute(r WarehousesAPIGetFulfillmentWarehousesRequest) (*GetFulfillmentWarehousesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetFulfillmentWarehousesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WarehousesAPIService.GetFulfillmentWarehouses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/warehouses"
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
|
||||||
|
// 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 WarehousesAPIGetPagedWarehousesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *WarehousesAPIService
|
||||||
|
businessId int64
|
||||||
|
pageToken *string
|
||||||
|
limit *int32
|
||||||
|
getPagedWarehousesRequest *GetPagedWarehousesRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// Идентификатор страницы c результатами. Если параметр не указан, возвращается первая страница. Рекомендуем передавать значение выходного параметра :no-translate[`nextPageToken`], полученное при последнем запросе. Если задан :no-translate[`page_token`] и в запросе есть параметры :no-translate[`page`] и :no-translate[`pageSize`], они игнорируются.
|
||||||
|
func (r WarehousesAPIGetPagedWarehousesRequest) PageToken(pageToken string) WarehousesAPIGetPagedWarehousesRequest {
|
||||||
|
r.pageToken = &pageToken
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// Количество значений на одной странице.
|
||||||
|
func (r WarehousesAPIGetPagedWarehousesRequest) Limit(limit int32) WarehousesAPIGetPagedWarehousesRequest {
|
||||||
|
r.limit = &limit
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIGetPagedWarehousesRequest) GetPagedWarehousesRequest(getPagedWarehousesRequest GetPagedWarehousesRequest) WarehousesAPIGetPagedWarehousesRequest {
|
||||||
|
r.getPagedWarehousesRequest = &getPagedWarehousesRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIGetPagedWarehousesRequest) Execute() (*GetPagedWarehousesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetPagedWarehousesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetPagedWarehouses Список складов
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getPagedWarehouses.md) %}
|
||||||
|
|
||||||
|
Возвращает список складов и информацию о них.
|
||||||
|
|
||||||
|
{% note warning "Ограничение для параметра `limit`" %}
|
||||||
|
|
||||||
|
Не передавайте значение больше 25.
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 1 000 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return WarehousesAPIGetPagedWarehousesRequest
|
||||||
|
*/
|
||||||
|
func (a *WarehousesAPIService) GetPagedWarehouses(ctx context.Context, businessId int64) WarehousesAPIGetPagedWarehousesRequest {
|
||||||
|
return WarehousesAPIGetPagedWarehousesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetPagedWarehousesResponse
|
||||||
|
func (a *WarehousesAPIService) GetPagedWarehousesExecute(r WarehousesAPIGetPagedWarehousesRequest) (*GetPagedWarehousesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetPagedWarehousesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WarehousesAPIService.GetPagedWarehouses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/warehouses"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.pageToken != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "page_token", r.pageToken, "", "")
|
||||||
|
}
|
||||||
|
if r.limit != nil {
|
||||||
|
parameterAddToHeaderOrQuery(localVarQueryParams, "limit", r.limit, "", "")
|
||||||
|
}
|
||||||
|
// 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.getPagedWarehousesRequest
|
||||||
|
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 == 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 WarehousesAPIGetWarehousesRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *WarehousesAPIService
|
||||||
|
businessId int64
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIGetWarehousesRequest) Execute() (*GetWarehousesResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.GetWarehousesExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
GetWarehouses Список складов и групп складов
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/getWarehouses.md) %}
|
||||||
|
|
||||||
|
{% note warning "Какой метод использовать вместо устаревшего" %}
|
||||||
|
|
||||||
|
[POST businesses/{businessId}/warehouses](../../reference/warehouses/getPagedWarehouses.md)
|
||||||
|
|
||||||
|
{% endnote %}
|
||||||
|
|
||||||
|
Возвращает список складов и, если склады объединены, список групп складов. [Что такое группы складов и зачем они нужны](https://yandex.ru/support/marketplace/assortment/operations/stocks.html#unified-stocks)
|
||||||
|
|
||||||
|
Среди прочего запрос позволяет определить идентификатор, который нужно использовать при передаче остатков для группы складов.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в минуту|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param businessId Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]). ℹ️ [Что такое кабинет и магазин на Маркете](:no-translate[https://yandex.ru/support/marketplace/account/introduction.html])
|
||||||
|
@return WarehousesAPIGetWarehousesRequest
|
||||||
|
|
||||||
|
Deprecated
|
||||||
|
*/
|
||||||
|
func (a *WarehousesAPIService) GetWarehouses(ctx context.Context, businessId int64) WarehousesAPIGetWarehousesRequest {
|
||||||
|
return WarehousesAPIGetWarehousesRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
businessId: businessId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return GetWarehousesResponse
|
||||||
|
//
|
||||||
|
// Deprecated
|
||||||
|
func (a *WarehousesAPIService) GetWarehousesExecute(r WarehousesAPIGetWarehousesRequest) (*GetWarehousesResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodGet
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *GetWarehousesResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WarehousesAPIService.GetWarehouses")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/businesses/{businessId}/warehouses"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"businessId"+"}", url.PathEscape(parameterValueToString(r.businessId, "businessId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.businessId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("businessId must be greater than 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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 WarehousesAPIUpdateWarehouseStatusRequest struct {
|
||||||
|
ctx context.Context
|
||||||
|
ApiService *WarehousesAPIService
|
||||||
|
campaignId int64
|
||||||
|
updateWarehouseStatusRequest *UpdateWarehouseStatusRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIUpdateWarehouseStatusRequest) UpdateWarehouseStatusRequest(updateWarehouseStatusRequest UpdateWarehouseStatusRequest) WarehousesAPIUpdateWarehouseStatusRequest {
|
||||||
|
r.updateWarehouseStatusRequest = &updateWarehouseStatusRequest
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r WarehousesAPIUpdateWarehouseStatusRequest) Execute() (*UpdateWarehouseStatusResponse, *http.Response, error) {
|
||||||
|
return r.ApiService.UpdateWarehouseStatusExecute(r)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
UpdateWarehouseStatus Изменение статуса склада
|
||||||
|
|
||||||
|
{% include notitle [:no-translate[access]](../../_auto/method_scopes/updateWarehouseStatus.md) %}
|
||||||
|
|
||||||
|
Отключает или включает склад.
|
||||||
|
|
||||||
|
После отключения склада товары, которые находятся на нем, скрываются через 15 минут. После включения они возвращаются на витрину через 15 минут, а если склад был выключен 30 дней или дольше — через 4 часа.
|
||||||
|
|
||||||
|
|**:no-translate[⚙️] Лимит:** 100 запросов в час|
|
||||||
|
|-|
|
||||||
|
|
||||||
|
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
|
||||||
|
@param campaignId Идентификатор кампании. Его можно узнать с помощью запроса [:no-translate[GET campaigns]](:no-translate[../../reference/campaigns/getCampaigns.md]) или найти в кабинете продавца на Маркете — нажмите на название своего бизнеса и перейдите на страницу: * **Модули и :no-translate[API]** → блок **Передача данных Маркету**. * **Лог запросов** → выпадающий список в блоке **Показывать логи**. ⚠️ Не передавайте вместо него идентификатор магазина, который указан в кабинете продавца на Маркете рядом с названием магазина и в некоторых отчетах.
|
||||||
|
@return WarehousesAPIUpdateWarehouseStatusRequest
|
||||||
|
*/
|
||||||
|
func (a *WarehousesAPIService) UpdateWarehouseStatus(ctx context.Context, campaignId int64) WarehousesAPIUpdateWarehouseStatusRequest {
|
||||||
|
return WarehousesAPIUpdateWarehouseStatusRequest{
|
||||||
|
ApiService: a,
|
||||||
|
ctx: ctx,
|
||||||
|
campaignId: campaignId,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute executes the request
|
||||||
|
//
|
||||||
|
// @return UpdateWarehouseStatusResponse
|
||||||
|
func (a *WarehousesAPIService) UpdateWarehouseStatusExecute(r WarehousesAPIUpdateWarehouseStatusRequest) (*UpdateWarehouseStatusResponse, *http.Response, error) {
|
||||||
|
var (
|
||||||
|
localVarHTTPMethod = http.MethodPost
|
||||||
|
localVarPostBody interface{}
|
||||||
|
formFiles []formFile
|
||||||
|
localVarReturnValue *UpdateWarehouseStatusResponse
|
||||||
|
)
|
||||||
|
|
||||||
|
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "WarehousesAPIService.UpdateWarehouseStatus")
|
||||||
|
if err != nil {
|
||||||
|
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
|
||||||
|
}
|
||||||
|
|
||||||
|
localVarPath := localBasePath + "/campaigns/{campaignId}/warehouse/status"
|
||||||
|
localVarPath = strings.Replace(localVarPath, "{"+"campaignId"+"}", url.PathEscape(parameterValueToString(r.campaignId, "campaignId")), -1)
|
||||||
|
|
||||||
|
localVarHeaderParams := make(map[string]string)
|
||||||
|
localVarQueryParams := url.Values{}
|
||||||
|
localVarFormParams := url.Values{}
|
||||||
|
if r.campaignId < 1 {
|
||||||
|
return localVarReturnValue, nil, reportError("campaignId must be greater than 1")
|
||||||
|
}
|
||||||
|
if r.updateWarehouseStatusRequest == nil {
|
||||||
|
return localVarReturnValue, nil, reportError("updateWarehouseStatusRequest is required and must be specified")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.updateWarehouseStatusRequest
|
||||||
|
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 == 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
|
||||||
|
}
|
||||||
782
pkg/api/yandex/ymclient/client.go
Normal file
782
pkg/api/yandex/ymclient/client.go
Normal file
@@ -0,0 +1,782 @@
|
|||||||
|
/*
|
||||||
|
API Яндекс Маркета для продавцов
|
||||||
|
|
||||||
|
API Яндекс Маркета помогает продавцам автоматизировать и упростить работу с маркетплейсом. В числе возможностей интеграции: * управление каталогом товаров и витриной, * обработка заказов, * изменение настроек магазина, * получение отчетов.
|
||||||
|
|
||||||
|
API version: LATEST
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
|
||||||
|
|
||||||
|
package ymclient
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"encoding/xml"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"log"
|
||||||
|
"mime/multipart"
|
||||||
|
"net/http"
|
||||||
|
"net/http/httputil"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"reflect"
|
||||||
|
"regexp"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
|
"golang.org/x/oauth2"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
JsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?json)`)
|
||||||
|
XmlCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?xml)`)
|
||||||
|
queryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`)
|
||||||
|
queryDescape = strings.NewReplacer("%5B", "[", "%5D", "]")
|
||||||
|
)
|
||||||
|
|
||||||
|
// APIClient manages communication with the API Яндекс Маркета для продавцов API vLATEST
|
||||||
|
// In most cases there should be only one, shared, APIClient.
|
||||||
|
type APIClient struct {
|
||||||
|
cfg *Configuration
|
||||||
|
common service // Reuse a single struct instead of allocating one for each service on the heap.
|
||||||
|
|
||||||
|
// API Services
|
||||||
|
|
||||||
|
AuthAPI *AuthAPIService
|
||||||
|
|
||||||
|
BidsAPI *BidsAPIService
|
||||||
|
|
||||||
|
BusinessOfferMappingsAPI *BusinessOfferMappingsAPIService
|
||||||
|
|
||||||
|
BusinessesAPI *BusinessesAPIService
|
||||||
|
|
||||||
|
CampaignsAPI *CampaignsAPIService
|
||||||
|
|
||||||
|
CategoriesAPI *CategoriesAPIService
|
||||||
|
|
||||||
|
ChatsAPI *ChatsAPIService
|
||||||
|
|
||||||
|
ContentAPI *ContentAPIService
|
||||||
|
|
||||||
|
DbsAPI *DbsAPIService
|
||||||
|
|
||||||
|
DeliveryServicesAPI *DeliveryServicesAPIService
|
||||||
|
|
||||||
|
ExpressAPI *ExpressAPIService
|
||||||
|
|
||||||
|
FbsAPI *FbsAPIService
|
||||||
|
|
||||||
|
FbyAPI *FbyAPIService
|
||||||
|
|
||||||
|
GoodsFeedbackAPI *GoodsFeedbackAPIService
|
||||||
|
|
||||||
|
GoodsStatsAPI *GoodsStatsAPIService
|
||||||
|
|
||||||
|
HiddenOffersAPI *HiddenOffersAPIService
|
||||||
|
|
||||||
|
LaasAPI *LaasAPIService
|
||||||
|
|
||||||
|
ModelsAPI *ModelsAPIService
|
||||||
|
|
||||||
|
OfferMappingsAPI *OfferMappingsAPIService
|
||||||
|
|
||||||
|
OffersAPI *OffersAPIService
|
||||||
|
|
||||||
|
OrderBusinessInformationAPI *OrderBusinessInformationAPIService
|
||||||
|
|
||||||
|
OrderDeliveryAPI *OrderDeliveryAPIService
|
||||||
|
|
||||||
|
OrderLabelsAPI *OrderLabelsAPIService
|
||||||
|
|
||||||
|
OrdersAPI *OrdersAPIService
|
||||||
|
|
||||||
|
OrdersStatsAPI *OrdersStatsAPIService
|
||||||
|
|
||||||
|
OutletLicensesAPI *OutletLicensesAPIService
|
||||||
|
|
||||||
|
OutletsAPI *OutletsAPIService
|
||||||
|
|
||||||
|
PriceQuarantineAPI *PriceQuarantineAPIService
|
||||||
|
|
||||||
|
PricesAPI *PricesAPIService
|
||||||
|
|
||||||
|
PromosAPI *PromosAPIService
|
||||||
|
|
||||||
|
RatingsAPI *RatingsAPIService
|
||||||
|
|
||||||
|
RegionsAPI *RegionsAPIService
|
||||||
|
|
||||||
|
ReportsAPI *ReportsAPIService
|
||||||
|
|
||||||
|
ReturnsAPI *ReturnsAPIService
|
||||||
|
|
||||||
|
ShipmentsAPI *ShipmentsAPIService
|
||||||
|
|
||||||
|
StocksAPI *StocksAPIService
|
||||||
|
|
||||||
|
SupplyRequestsAPI *SupplyRequestsAPIService
|
||||||
|
|
||||||
|
TariffsAPI *TariffsAPIService
|
||||||
|
|
||||||
|
WarehousesAPI *WarehousesAPIService
|
||||||
|
}
|
||||||
|
|
||||||
|
type service struct {
|
||||||
|
client *APIClient
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewAPIClient creates a new API client. Requires a userAgent string describing your application.
|
||||||
|
// optionally a custom http.Client to allow for advanced features such as caching.
|
||||||
|
func NewAPIClient(cfg *Configuration) *APIClient {
|
||||||
|
if cfg.HTTPClient == nil {
|
||||||
|
cfg.HTTPClient = http.DefaultClient
|
||||||
|
}
|
||||||
|
|
||||||
|
c := &APIClient{}
|
||||||
|
c.cfg = cfg
|
||||||
|
c.common.client = c
|
||||||
|
|
||||||
|
// API Services
|
||||||
|
c.AuthAPI = (*AuthAPIService)(&c.common)
|
||||||
|
c.BidsAPI = (*BidsAPIService)(&c.common)
|
||||||
|
c.BusinessOfferMappingsAPI = (*BusinessOfferMappingsAPIService)(&c.common)
|
||||||
|
c.BusinessesAPI = (*BusinessesAPIService)(&c.common)
|
||||||
|
c.CampaignsAPI = (*CampaignsAPIService)(&c.common)
|
||||||
|
c.CategoriesAPI = (*CategoriesAPIService)(&c.common)
|
||||||
|
c.ChatsAPI = (*ChatsAPIService)(&c.common)
|
||||||
|
c.ContentAPI = (*ContentAPIService)(&c.common)
|
||||||
|
c.DbsAPI = (*DbsAPIService)(&c.common)
|
||||||
|
c.DeliveryServicesAPI = (*DeliveryServicesAPIService)(&c.common)
|
||||||
|
c.ExpressAPI = (*ExpressAPIService)(&c.common)
|
||||||
|
c.FbsAPI = (*FbsAPIService)(&c.common)
|
||||||
|
c.FbyAPI = (*FbyAPIService)(&c.common)
|
||||||
|
c.GoodsFeedbackAPI = (*GoodsFeedbackAPIService)(&c.common)
|
||||||
|
c.GoodsStatsAPI = (*GoodsStatsAPIService)(&c.common)
|
||||||
|
c.HiddenOffersAPI = (*HiddenOffersAPIService)(&c.common)
|
||||||
|
c.LaasAPI = (*LaasAPIService)(&c.common)
|
||||||
|
c.ModelsAPI = (*ModelsAPIService)(&c.common)
|
||||||
|
c.OfferMappingsAPI = (*OfferMappingsAPIService)(&c.common)
|
||||||
|
c.OffersAPI = (*OffersAPIService)(&c.common)
|
||||||
|
c.OrderBusinessInformationAPI = (*OrderBusinessInformationAPIService)(&c.common)
|
||||||
|
c.OrderDeliveryAPI = (*OrderDeliveryAPIService)(&c.common)
|
||||||
|
c.OrderLabelsAPI = (*OrderLabelsAPIService)(&c.common)
|
||||||
|
c.OrdersAPI = (*OrdersAPIService)(&c.common)
|
||||||
|
c.OrdersStatsAPI = (*OrdersStatsAPIService)(&c.common)
|
||||||
|
c.OutletLicensesAPI = (*OutletLicensesAPIService)(&c.common)
|
||||||
|
c.OutletsAPI = (*OutletsAPIService)(&c.common)
|
||||||
|
c.PriceQuarantineAPI = (*PriceQuarantineAPIService)(&c.common)
|
||||||
|
c.PricesAPI = (*PricesAPIService)(&c.common)
|
||||||
|
c.PromosAPI = (*PromosAPIService)(&c.common)
|
||||||
|
c.RatingsAPI = (*RatingsAPIService)(&c.common)
|
||||||
|
c.RegionsAPI = (*RegionsAPIService)(&c.common)
|
||||||
|
c.ReportsAPI = (*ReportsAPIService)(&c.common)
|
||||||
|
c.ReturnsAPI = (*ReturnsAPIService)(&c.common)
|
||||||
|
c.ShipmentsAPI = (*ShipmentsAPIService)(&c.common)
|
||||||
|
c.StocksAPI = (*StocksAPIService)(&c.common)
|
||||||
|
c.SupplyRequestsAPI = (*SupplyRequestsAPIService)(&c.common)
|
||||||
|
c.TariffsAPI = (*TariffsAPIService)(&c.common)
|
||||||
|
c.WarehousesAPI = (*WarehousesAPIService)(&c.common)
|
||||||
|
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
func atoi(in string) (int, error) {
|
||||||
|
return strconv.Atoi(in)
|
||||||
|
}
|
||||||
|
|
||||||
|
// selectHeaderContentType select a content type from the available list.
|
||||||
|
func selectHeaderContentType(contentTypes []string) string {
|
||||||
|
if len(contentTypes) == 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if contains(contentTypes, "application/json") {
|
||||||
|
return "application/json"
|
||||||
|
}
|
||||||
|
return contentTypes[0] // use the first content type specified in 'consumes'
|
||||||
|
}
|
||||||
|
|
||||||
|
// selectHeaderAccept join all accept types and return
|
||||||
|
func selectHeaderAccept(accepts []string) string {
|
||||||
|
if len(accepts) == 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
if contains(accepts, "application/json") {
|
||||||
|
return "application/json"
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.Join(accepts, ",")
|
||||||
|
}
|
||||||
|
|
||||||
|
// contains is a case insensitive match, finding needle in a haystack
|
||||||
|
func contains(haystack []string, needle string) bool {
|
||||||
|
for _, a := range haystack {
|
||||||
|
if strings.EqualFold(a, needle) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify optional parameters are of the correct type.
|
||||||
|
func typeCheckParameter(obj interface{}, expected string, name string) error {
|
||||||
|
// Make sure there is an object.
|
||||||
|
if obj == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the type is as expected.
|
||||||
|
if reflect.TypeOf(obj).String() != expected {
|
||||||
|
return fmt.Errorf("expected %s to be of type %s but received %s", name, expected, reflect.TypeOf(obj).String())
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parameterValueToString(obj interface{}, key string) string {
|
||||||
|
if reflect.TypeOf(obj).Kind() != reflect.Ptr {
|
||||||
|
if actualObj, ok := obj.(interface{ GetActualInstanceValue() interface{} }); ok {
|
||||||
|
return fmt.Sprintf("%v", actualObj.GetActualInstanceValue())
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("%v", obj)
|
||||||
|
}
|
||||||
|
var param, ok = obj.(MappedNullable)
|
||||||
|
if !ok {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
dataMap, err := param.ToMap()
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%v", dataMap[key])
|
||||||
|
}
|
||||||
|
|
||||||
|
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
|
||||||
|
// supporting deep object syntax
|
||||||
|
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
|
||||||
|
var v = reflect.ValueOf(obj)
|
||||||
|
var value = ""
|
||||||
|
if v == reflect.ValueOf(nil) {
|
||||||
|
value = "null"
|
||||||
|
} else {
|
||||||
|
switch v.Kind() {
|
||||||
|
case reflect.Invalid:
|
||||||
|
value = "invalid"
|
||||||
|
|
||||||
|
case reflect.Struct:
|
||||||
|
if t, ok := obj.(MappedNullable); ok {
|
||||||
|
dataMap, err := t.ToMap()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if t, ok := obj.(time.Time); ok {
|
||||||
|
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
value = v.Type().String() + " value"
|
||||||
|
case reflect.Slice:
|
||||||
|
var indValue = reflect.ValueOf(obj)
|
||||||
|
if indValue == reflect.ValueOf(nil) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var lenIndValue = indValue.Len()
|
||||||
|
for i := 0; i < lenIndValue; i++ {
|
||||||
|
var arrayValue = indValue.Index(i)
|
||||||
|
var keyPrefixForCollectionType = keyPrefix
|
||||||
|
if style == "deepObject" {
|
||||||
|
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
|
||||||
|
}
|
||||||
|
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
|
||||||
|
case reflect.Map:
|
||||||
|
var indValue = reflect.ValueOf(obj)
|
||||||
|
if indValue == reflect.ValueOf(nil) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
iter := indValue.MapRange()
|
||||||
|
for iter.Next() {
|
||||||
|
k, v := iter.Key(), iter.Value()
|
||||||
|
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
|
||||||
|
case reflect.Interface:
|
||||||
|
fallthrough
|
||||||
|
case reflect.Ptr:
|
||||||
|
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
|
||||||
|
return
|
||||||
|
|
||||||
|
case reflect.Int, reflect.Int8, reflect.Int16,
|
||||||
|
reflect.Int32, reflect.Int64:
|
||||||
|
value = strconv.FormatInt(v.Int(), 10)
|
||||||
|
case reflect.Uint, reflect.Uint8, reflect.Uint16,
|
||||||
|
reflect.Uint32, reflect.Uint64, reflect.Uintptr:
|
||||||
|
value = strconv.FormatUint(v.Uint(), 10)
|
||||||
|
case reflect.Float32, reflect.Float64:
|
||||||
|
value = strconv.FormatFloat(v.Float(), 'g', -1, 32)
|
||||||
|
case reflect.Bool:
|
||||||
|
value = strconv.FormatBool(v.Bool())
|
||||||
|
case reflect.String:
|
||||||
|
value = v.String()
|
||||||
|
default:
|
||||||
|
value = v.Type().String() + " value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch valuesMap := headerOrQueryParams.(type) {
|
||||||
|
case url.Values:
|
||||||
|
if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" {
|
||||||
|
valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix)+","+value)
|
||||||
|
} else {
|
||||||
|
valuesMap.Add(keyPrefix, value)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case map[string]string:
|
||||||
|
valuesMap[keyPrefix] = value
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// helper for converting interface{} parameters to json strings
|
||||||
|
func parameterToJson(obj interface{}) (string, error) {
|
||||||
|
jsonBuf, err := json.Marshal(obj)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return string(jsonBuf), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// callAPI do the request.
|
||||||
|
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
|
||||||
|
if c.cfg.Debug {
|
||||||
|
dump, err := httputil.DumpRequestOut(request, true)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
log.Printf("\n%s\n", string(dump))
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := c.cfg.HTTPClient.Do(request)
|
||||||
|
if err != nil {
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.cfg.Debug {
|
||||||
|
dump, err := httputil.DumpResponse(resp, true)
|
||||||
|
if err != nil {
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
log.Printf("\n%s\n", string(dump))
|
||||||
|
}
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow modification of underlying config for alternate implementations and testing
|
||||||
|
// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
|
||||||
|
func (c *APIClient) GetConfig() *Configuration {
|
||||||
|
return c.cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
type formFile struct {
|
||||||
|
fileBytes []byte
|
||||||
|
fileName string
|
||||||
|
formFileName string
|
||||||
|
}
|
||||||
|
|
||||||
|
// prepareRequest build the request
|
||||||
|
func (c *APIClient) prepareRequest(
|
||||||
|
ctx context.Context,
|
||||||
|
path string, method string,
|
||||||
|
postBody interface{},
|
||||||
|
headerParams map[string]string,
|
||||||
|
queryParams url.Values,
|
||||||
|
formParams url.Values,
|
||||||
|
formFiles []formFile) (localVarRequest *http.Request, err error) {
|
||||||
|
|
||||||
|
var body *bytes.Buffer
|
||||||
|
|
||||||
|
// Detect postBody type and post.
|
||||||
|
if postBody != nil {
|
||||||
|
contentType := headerParams["Content-Type"]
|
||||||
|
if contentType == "" {
|
||||||
|
contentType = detectContentType(postBody)
|
||||||
|
headerParams["Content-Type"] = contentType
|
||||||
|
}
|
||||||
|
|
||||||
|
body, err = setBody(postBody, contentType)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// add form parameters and file if available.
|
||||||
|
if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(formFiles) > 0) {
|
||||||
|
if body != nil {
|
||||||
|
return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
|
||||||
|
}
|
||||||
|
body = &bytes.Buffer{}
|
||||||
|
w := multipart.NewWriter(body)
|
||||||
|
|
||||||
|
for k, v := range formParams {
|
||||||
|
for _, iv := range v {
|
||||||
|
if strings.HasPrefix(k, "@") { // file
|
||||||
|
err = addFile(w, k[1:], iv)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
} else { // form value
|
||||||
|
w.WriteField(k, iv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, formFile := range formFiles {
|
||||||
|
if len(formFile.fileBytes) > 0 && formFile.fileName != "" {
|
||||||
|
w.Boundary()
|
||||||
|
part, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
_, err = part.Write(formFile.fileBytes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the Boundary in the Content-Type
|
||||||
|
headerParams["Content-Type"] = w.FormDataContentType()
|
||||||
|
|
||||||
|
// Set Content-Length
|
||||||
|
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
|
||||||
|
w.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(headerParams["Content-Type"], "application/x-www-form-urlencoded") && len(formParams) > 0 {
|
||||||
|
if body != nil {
|
||||||
|
return nil, errors.New("Cannot specify postBody and x-www-form-urlencoded form at the same time.")
|
||||||
|
}
|
||||||
|
body = &bytes.Buffer{}
|
||||||
|
body.WriteString(formParams.Encode())
|
||||||
|
// Set Content-Length
|
||||||
|
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup path and query parameters
|
||||||
|
url, err := url.Parse(path)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override request host, if applicable
|
||||||
|
if c.cfg.Host != "" {
|
||||||
|
url.Host = c.cfg.Host
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override request scheme, if applicable
|
||||||
|
if c.cfg.Scheme != "" {
|
||||||
|
url.Scheme = c.cfg.Scheme
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adding Query Param
|
||||||
|
query := url.Query()
|
||||||
|
for k, v := range queryParams {
|
||||||
|
for _, iv := range v {
|
||||||
|
query.Add(k, iv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Encode the parameters.
|
||||||
|
url.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string {
|
||||||
|
pieces := strings.Split(s, "=")
|
||||||
|
pieces[0] = queryDescape.Replace(pieces[0])
|
||||||
|
return strings.Join(pieces, "=")
|
||||||
|
})
|
||||||
|
|
||||||
|
// Generate a new request
|
||||||
|
if body != nil {
|
||||||
|
localVarRequest, err = http.NewRequest(method, url.String(), body)
|
||||||
|
} else {
|
||||||
|
localVarRequest, err = http.NewRequest(method, url.String(), nil)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// add header parameters, if any
|
||||||
|
if len(headerParams) > 0 {
|
||||||
|
headers := http.Header{}
|
||||||
|
for h, v := range headerParams {
|
||||||
|
headers[h] = []string{v}
|
||||||
|
}
|
||||||
|
localVarRequest.Header = headers
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the user agent to the request.
|
||||||
|
localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
|
||||||
|
|
||||||
|
if ctx != nil {
|
||||||
|
// add context to the request
|
||||||
|
localVarRequest = localVarRequest.WithContext(ctx)
|
||||||
|
|
||||||
|
// Walk through any authentication.
|
||||||
|
|
||||||
|
// OAuth2 authentication
|
||||||
|
if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
|
||||||
|
// We were able to grab an oauth2 token from the context
|
||||||
|
var latestToken *oauth2.Token
|
||||||
|
if latestToken, err = tok.Token(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
latestToken.SetAuthHeader(localVarRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for header, value := range c.cfg.DefaultHeader {
|
||||||
|
localVarRequest.Header.Add(header, value)
|
||||||
|
}
|
||||||
|
return localVarRequest, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
|
||||||
|
if len(b) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if s, ok := v.(*string); ok {
|
||||||
|
*s = string(b)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if f, ok := v.(*os.File); ok {
|
||||||
|
f, err = os.CreateTemp("", "HttpClientFile")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = f.Write(b)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = f.Seek(0, io.SeekStart)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if f, ok := v.(**os.File); ok {
|
||||||
|
*f, err = os.CreateTemp("", "HttpClientFile")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = (*f).Write(b)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, err = (*f).Seek(0, io.SeekStart)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if XmlCheck.MatchString(contentType) {
|
||||||
|
if err = xml.Unmarshal(b, v); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if JsonCheck.MatchString(contentType) {
|
||||||
|
if actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas
|
||||||
|
if unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined
|
||||||
|
if err = unmarshalObj.UnmarshalJSON(b); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return errors.New("Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined")
|
||||||
|
}
|
||||||
|
} else if err = json.Unmarshal(b, v); err != nil { // simple model
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return errors.New("undefined response type")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a file to the multipart request
|
||||||
|
func addFile(w *multipart.Writer, fieldName, path string) error {
|
||||||
|
file, err := os.Open(filepath.Clean(path))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = file.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
part, err := w.CreateFormFile(fieldName, filepath.Base(path))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = io.Copy(part, file)
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set request body from an interface{}
|
||||||
|
func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
|
||||||
|
if bodyBuf == nil {
|
||||||
|
bodyBuf = &bytes.Buffer{}
|
||||||
|
}
|
||||||
|
|
||||||
|
if reader, ok := body.(io.Reader); ok {
|
||||||
|
_, err = bodyBuf.ReadFrom(reader)
|
||||||
|
} else if fp, ok := body.(*os.File); ok {
|
||||||
|
_, err = bodyBuf.ReadFrom(fp)
|
||||||
|
} else if b, ok := body.([]byte); ok {
|
||||||
|
_, err = bodyBuf.Write(b)
|
||||||
|
} else if s, ok := body.(string); ok {
|
||||||
|
_, err = bodyBuf.WriteString(s)
|
||||||
|
} else if s, ok := body.(*string); ok {
|
||||||
|
_, err = bodyBuf.WriteString(*s)
|
||||||
|
} else if JsonCheck.MatchString(contentType) {
|
||||||
|
err = json.NewEncoder(bodyBuf).Encode(body)
|
||||||
|
} else if XmlCheck.MatchString(contentType) {
|
||||||
|
var bs []byte
|
||||||
|
bs, err = xml.Marshal(body)
|
||||||
|
if err == nil {
|
||||||
|
bodyBuf.Write(bs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if bodyBuf.Len() == 0 {
|
||||||
|
err = fmt.Errorf("invalid body type %s\n", contentType)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return bodyBuf, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// detectContentType method is used to figure out `Request.Body` content type for request header
|
||||||
|
func detectContentType(body interface{}) string {
|
||||||
|
contentType := "text/plain; charset=utf-8"
|
||||||
|
kind := reflect.TypeOf(body).Kind()
|
||||||
|
|
||||||
|
switch kind {
|
||||||
|
case reflect.Struct, reflect.Map, reflect.Ptr:
|
||||||
|
contentType = "application/json; charset=utf-8"
|
||||||
|
case reflect.String:
|
||||||
|
contentType = "text/plain; charset=utf-8"
|
||||||
|
default:
|
||||||
|
if b, ok := body.([]byte); ok {
|
||||||
|
contentType = http.DetectContentType(b)
|
||||||
|
} else if kind == reflect.Slice {
|
||||||
|
contentType = "application/json; charset=utf-8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return contentType
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ripped from https://github.com/gregjones/httpcache/blob/master/httpcache.go
|
||||||
|
type cacheControl map[string]string
|
||||||
|
|
||||||
|
func parseCacheControl(headers http.Header) cacheControl {
|
||||||
|
cc := cacheControl{}
|
||||||
|
ccHeader := headers.Get("Cache-Control")
|
||||||
|
for _, part := range strings.Split(ccHeader, ",") {
|
||||||
|
part = strings.Trim(part, " ")
|
||||||
|
if part == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if strings.ContainsRune(part, '=') {
|
||||||
|
keyval := strings.Split(part, "=")
|
||||||
|
cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",")
|
||||||
|
} else {
|
||||||
|
cc[part] = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cc
|
||||||
|
}
|
||||||
|
|
||||||
|
// CacheExpires helper function to determine remaining time before repeating a request.
|
||||||
|
func CacheExpires(r *http.Response) time.Time {
|
||||||
|
// Figure out when the cache expires.
|
||||||
|
var expires time.Time
|
||||||
|
now, err := time.Parse(time.RFC1123, r.Header.Get("date"))
|
||||||
|
if err != nil {
|
||||||
|
return time.Now()
|
||||||
|
}
|
||||||
|
respCacheControl := parseCacheControl(r.Header)
|
||||||
|
|
||||||
|
if maxAge, ok := respCacheControl["max-age"]; ok {
|
||||||
|
lifetime, err := time.ParseDuration(maxAge + "s")
|
||||||
|
if err != nil {
|
||||||
|
expires = now
|
||||||
|
} else {
|
||||||
|
expires = now.Add(lifetime)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
expiresHeader := r.Header.Get("Expires")
|
||||||
|
if expiresHeader != "" {
|
||||||
|
expires, err = time.Parse(time.RFC1123, expiresHeader)
|
||||||
|
if err != nil {
|
||||||
|
expires = now
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return expires
|
||||||
|
}
|
||||||
|
|
||||||
|
func strlen(s string) int {
|
||||||
|
return utf8.RuneCountInString(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenericOpenAPIError Provides access to the body, error and model on returned errors.
|
||||||
|
type GenericOpenAPIError struct {
|
||||||
|
body []byte
|
||||||
|
error string
|
||||||
|
model interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error returns non-empty string if there was an error.
|
||||||
|
func (e GenericOpenAPIError) Error() string {
|
||||||
|
return e.error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Body returns the raw bytes of the response
|
||||||
|
func (e GenericOpenAPIError) Body() []byte {
|
||||||
|
return e.body
|
||||||
|
}
|
||||||
|
|
||||||
|
// Model returns the unpacked model of the error
|
||||||
|
func (e GenericOpenAPIError) Model() interface{} {
|
||||||
|
return e.model
|
||||||
|
}
|
||||||
|
|
||||||
|
// format error message using title and detail when model implements rfc7807
|
||||||
|
func formatErrorMessage(status string, v interface{}) string {
|
||||||
|
str := ""
|
||||||
|
metaValue := reflect.ValueOf(v).Elem()
|
||||||
|
|
||||||
|
if metaValue.Kind() == reflect.Struct {
|
||||||
|
field := metaValue.FieldByName("Title")
|
||||||
|
if field != (reflect.Value{}) {
|
||||||
|
str = fmt.Sprintf("%s", field.Interface())
|
||||||
|
}
|
||||||
|
|
||||||
|
field = metaValue.FieldByName("Detail")
|
||||||
|
if field != (reflect.Value{}) {
|
||||||
|
str = fmt.Sprintf("%s (%s)", str, field.Interface())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return strings.TrimSpace(fmt.Sprintf("%s %s", status, str))
|
||||||
|
}
|
||||||
220
pkg/api/yandex/ymclient/configuration.go
Normal file
220
pkg/api/yandex/ymclient/configuration.go
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
/*
|
||||||
|
API Яндекс Маркета для продавцов
|
||||||
|
|
||||||
|
API Яндекс Маркета помогает продавцам автоматизировать и упростить работу с маркетплейсом. В числе возможностей интеграции: * управление каталогом товаров и витриной, * обработка заказов, * изменение настроек магазина, * получение отчетов.
|
||||||
|
|
||||||
|
API version: LATEST
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
|
||||||
|
|
||||||
|
package ymclient
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// contextKeys are used to identify the type of value in the context.
|
||||||
|
// Since these are string, it is possible to get a short description of the
|
||||||
|
// context key for logging and debugging using key.String().
|
||||||
|
|
||||||
|
type contextKey string
|
||||||
|
|
||||||
|
func (c contextKey) String() string {
|
||||||
|
return "auth " + string(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
// ContextOAuth2 takes an oauth2.TokenSource as authentication for the request.
|
||||||
|
ContextOAuth2 = contextKey("token")
|
||||||
|
|
||||||
|
// ContextAPIKeys takes a string apikey as authentication for the request
|
||||||
|
ContextAPIKeys = contextKey("apiKeys")
|
||||||
|
|
||||||
|
// ContextServerIndex uses a server configuration from the index.
|
||||||
|
ContextServerIndex = contextKey("serverIndex")
|
||||||
|
|
||||||
|
// ContextOperationServerIndices uses a server configuration from the index mapping.
|
||||||
|
ContextOperationServerIndices = contextKey("serverOperationIndices")
|
||||||
|
|
||||||
|
// ContextServerVariables overrides a server configuration variables.
|
||||||
|
ContextServerVariables = contextKey("serverVariables")
|
||||||
|
|
||||||
|
// ContextOperationServerVariables overrides a server configuration variables using operation specific values.
|
||||||
|
ContextOperationServerVariables = contextKey("serverOperationVariables")
|
||||||
|
)
|
||||||
|
|
||||||
|
// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
|
||||||
|
type BasicAuth struct {
|
||||||
|
UserName string `json:"userName,omitempty"`
|
||||||
|
Password string `json:"password,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// APIKey provides API key based authentication to a request passed via context using ContextAPIKey
|
||||||
|
type APIKey struct {
|
||||||
|
Key string
|
||||||
|
Prefix string
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerVariable stores the information about a server variable
|
||||||
|
type ServerVariable struct {
|
||||||
|
Description string
|
||||||
|
DefaultValue string
|
||||||
|
EnumValues []string
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerConfiguration stores the information about a server
|
||||||
|
type ServerConfiguration struct {
|
||||||
|
URL string
|
||||||
|
Description string
|
||||||
|
Variables map[string]ServerVariable
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerConfigurations stores multiple ServerConfiguration items
|
||||||
|
type ServerConfigurations []ServerConfiguration
|
||||||
|
|
||||||
|
// Configuration stores the configuration of the API client
|
||||||
|
type Configuration struct {
|
||||||
|
Host string `json:"host,omitempty"`
|
||||||
|
Scheme string `json:"scheme,omitempty"`
|
||||||
|
DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
|
||||||
|
UserAgent string `json:"userAgent,omitempty"`
|
||||||
|
Debug bool `json:"debug,omitempty"`
|
||||||
|
Servers ServerConfigurations
|
||||||
|
OperationServers map[string]ServerConfigurations
|
||||||
|
HTTPClient *http.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewConfiguration returns a new Configuration object
|
||||||
|
func NewConfiguration() *Configuration {
|
||||||
|
cfg := &Configuration{
|
||||||
|
DefaultHeader: make(map[string]string),
|
||||||
|
UserAgent: "OpenAPI-Generator/1.0.0/go",
|
||||||
|
Debug: false,
|
||||||
|
Servers: ServerConfigurations{
|
||||||
|
{
|
||||||
|
URL: "https://api.partner.market.yandex.ru",
|
||||||
|
Description: "No description provided",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
OperationServers: map[string]ServerConfigurations{},
|
||||||
|
}
|
||||||
|
return cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddDefaultHeader adds a new HTTP header to the default header in the request
|
||||||
|
func (c *Configuration) AddDefaultHeader(key string, value string) {
|
||||||
|
c.DefaultHeader[key] = value
|
||||||
|
}
|
||||||
|
|
||||||
|
// URL formats template on a index using given variables
|
||||||
|
func (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) {
|
||||||
|
if index < 0 || len(sc) <= index {
|
||||||
|
return "", fmt.Errorf("index %v out of range %v", index, len(sc)-1)
|
||||||
|
}
|
||||||
|
server := sc[index]
|
||||||
|
url := server.URL
|
||||||
|
|
||||||
|
// go through variables and replace placeholders
|
||||||
|
for name, variable := range server.Variables {
|
||||||
|
if value, ok := variables[name]; ok {
|
||||||
|
found := bool(len(variable.EnumValues) == 0)
|
||||||
|
for _, enumValue := range variable.EnumValues {
|
||||||
|
if value == enumValue {
|
||||||
|
found = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
return "", fmt.Errorf("the variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues)
|
||||||
|
}
|
||||||
|
url = strings.Replace(url, "{"+name+"}", value, -1)
|
||||||
|
} else {
|
||||||
|
url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return url, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerURL returns URL based on server settings
|
||||||
|
func (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) {
|
||||||
|
return c.Servers.URL(index, variables)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getServerIndex(ctx context.Context) (int, error) {
|
||||||
|
si := ctx.Value(ContextServerIndex)
|
||||||
|
if si != nil {
|
||||||
|
if index, ok := si.(int); ok {
|
||||||
|
return index, nil
|
||||||
|
}
|
||||||
|
return 0, reportError("Invalid type %T should be int", si)
|
||||||
|
}
|
||||||
|
return 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getServerOperationIndex(ctx context.Context, endpoint string) (int, error) {
|
||||||
|
osi := ctx.Value(ContextOperationServerIndices)
|
||||||
|
if osi != nil {
|
||||||
|
if operationIndices, ok := osi.(map[string]int); !ok {
|
||||||
|
return 0, reportError("Invalid type %T should be map[string]int", osi)
|
||||||
|
} else {
|
||||||
|
index, ok := operationIndices[endpoint]
|
||||||
|
if ok {
|
||||||
|
return index, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return getServerIndex(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func getServerVariables(ctx context.Context) (map[string]string, error) {
|
||||||
|
sv := ctx.Value(ContextServerVariables)
|
||||||
|
if sv != nil {
|
||||||
|
if variables, ok := sv.(map[string]string); ok {
|
||||||
|
return variables, nil
|
||||||
|
}
|
||||||
|
return nil, reportError("ctx value of ContextServerVariables has invalid type %T should be map[string]string", sv)
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) {
|
||||||
|
osv := ctx.Value(ContextOperationServerVariables)
|
||||||
|
if osv != nil {
|
||||||
|
if operationVariables, ok := osv.(map[string]map[string]string); !ok {
|
||||||
|
return nil, reportError("ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string", osv)
|
||||||
|
} else {
|
||||||
|
variables, ok := operationVariables[endpoint]
|
||||||
|
if ok {
|
||||||
|
return variables, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return getServerVariables(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServerURLWithContext returns a new server URL given an endpoint
|
||||||
|
func (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) {
|
||||||
|
sc, ok := c.OperationServers[endpoint]
|
||||||
|
if !ok {
|
||||||
|
sc = c.Servers
|
||||||
|
}
|
||||||
|
|
||||||
|
if ctx == nil {
|
||||||
|
return sc.URL(0, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
index, err := getServerOperationIndex(ctx, endpoint)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
variables, err := getServerOperationVariables(ctx, endpoint)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return sc.URL(index, variables)
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
# AcceptOrderCancellationRequest
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Accepted** | **bool** | Решение об отмене заказа: * `true` — заказ отменяется, служба доставки узнала об отмене до передачи заказа покупателю. * `false` — заказ не отменяется, так как он уже доставлен покупателю курьером или передан в пункт выдачи заказов. |
|
||||||
|
**Reason** | Pointer to [**OrderCancellationReasonType**](OrderCancellationReasonType.md) | | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAcceptOrderCancellationRequest
|
||||||
|
|
||||||
|
`func NewAcceptOrderCancellationRequest(accepted bool, ) *AcceptOrderCancellationRequest`
|
||||||
|
|
||||||
|
NewAcceptOrderCancellationRequest instantiates a new AcceptOrderCancellationRequest object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAcceptOrderCancellationRequestWithDefaults
|
||||||
|
|
||||||
|
`func NewAcceptOrderCancellationRequestWithDefaults() *AcceptOrderCancellationRequest`
|
||||||
|
|
||||||
|
NewAcceptOrderCancellationRequestWithDefaults instantiates a new AcceptOrderCancellationRequest object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetAccepted
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) GetAccepted() bool`
|
||||||
|
|
||||||
|
GetAccepted returns the Accepted field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAcceptedOk
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) GetAcceptedOk() (*bool, bool)`
|
||||||
|
|
||||||
|
GetAcceptedOk returns a tuple with the Accepted field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAccepted
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) SetAccepted(v bool)`
|
||||||
|
|
||||||
|
SetAccepted sets Accepted field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetReason
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) GetReason() OrderCancellationReasonType`
|
||||||
|
|
||||||
|
GetReason returns the Reason field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetReasonOk
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) GetReasonOk() (*OrderCancellationReasonType, bool)`
|
||||||
|
|
||||||
|
GetReasonOk returns a tuple with the Reason field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetReason
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) SetReason(v OrderCancellationReasonType)`
|
||||||
|
|
||||||
|
SetReason sets Reason field to given value.
|
||||||
|
|
||||||
|
### HasReason
|
||||||
|
|
||||||
|
`func (o *AcceptOrderCancellationRequest) HasReason() bool`
|
||||||
|
|
||||||
|
HasReason returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
51
pkg/api/yandex/ymclient/docs/AddHiddenOffersRequest.md
Normal file
51
pkg/api/yandex/ymclient/docs/AddHiddenOffersRequest.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# AddHiddenOffersRequest
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**HiddenOffers** | [**[]HiddenOfferDTO**](HiddenOfferDTO.md) | Список скрытых товаров. |
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAddHiddenOffersRequest
|
||||||
|
|
||||||
|
`func NewAddHiddenOffersRequest(hiddenOffers []HiddenOfferDTO, ) *AddHiddenOffersRequest`
|
||||||
|
|
||||||
|
NewAddHiddenOffersRequest instantiates a new AddHiddenOffersRequest object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAddHiddenOffersRequestWithDefaults
|
||||||
|
|
||||||
|
`func NewAddHiddenOffersRequestWithDefaults() *AddHiddenOffersRequest`
|
||||||
|
|
||||||
|
NewAddHiddenOffersRequestWithDefaults instantiates a new AddHiddenOffersRequest object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetHiddenOffers
|
||||||
|
|
||||||
|
`func (o *AddHiddenOffersRequest) GetHiddenOffers() []HiddenOfferDTO`
|
||||||
|
|
||||||
|
GetHiddenOffers returns the HiddenOffers field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetHiddenOffersOk
|
||||||
|
|
||||||
|
`func (o *AddHiddenOffersRequest) GetHiddenOffersOk() (*[]HiddenOfferDTO, bool)`
|
||||||
|
|
||||||
|
GetHiddenOffersOk returns a tuple with the HiddenOffers field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetHiddenOffers
|
||||||
|
|
||||||
|
`func (o *AddHiddenOffersRequest) SetHiddenOffers(v []HiddenOfferDTO)`
|
||||||
|
|
||||||
|
SetHiddenOffers sets HiddenOffers field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
66
pkg/api/yandex/ymclient/docs/AddOffersToArchiveDTO.md
Normal file
66
pkg/api/yandex/ymclient/docs/AddOffersToArchiveDTO.md
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# AddOffersToArchiveDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**NotArchivedOffers** | Pointer to [**[]AddOffersToArchiveErrorDTO**](AddOffersToArchiveErrorDTO.md) | Список товаров, которые не удалось поместить в архив. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveDTO
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveDTO() *AddOffersToArchiveDTO`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveDTO instantiates a new AddOffersToArchiveDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveDTOWithDefaults() *AddOffersToArchiveDTO`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveDTOWithDefaults instantiates a new AddOffersToArchiveDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetNotArchivedOffers
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveDTO) GetNotArchivedOffers() []AddOffersToArchiveErrorDTO`
|
||||||
|
|
||||||
|
GetNotArchivedOffers returns the NotArchivedOffers field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetNotArchivedOffersOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveDTO) GetNotArchivedOffersOk() (*[]AddOffersToArchiveErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetNotArchivedOffersOk returns a tuple with the NotArchivedOffers field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetNotArchivedOffers
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveDTO) SetNotArchivedOffers(v []AddOffersToArchiveErrorDTO)`
|
||||||
|
|
||||||
|
SetNotArchivedOffers sets NotArchivedOffers field to given value.
|
||||||
|
|
||||||
|
### HasNotArchivedOffers
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveDTO) HasNotArchivedOffers() bool`
|
||||||
|
|
||||||
|
HasNotArchivedOffers returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetNotArchivedOffersNil
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveDTO) SetNotArchivedOffersNil(b bool)`
|
||||||
|
|
||||||
|
SetNotArchivedOffersNil sets the value for NotArchivedOffers to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetNotArchivedOffers
|
||||||
|
`func (o *AddOffersToArchiveDTO) UnsetNotArchivedOffers()`
|
||||||
|
|
||||||
|
UnsetNotArchivedOffers ensures that no value is present for NotArchivedOffers, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
72
pkg/api/yandex/ymclient/docs/AddOffersToArchiveErrorDTO.md
Normal file
72
pkg/api/yandex/ymclient/docs/AddOffersToArchiveErrorDTO.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# AddOffersToArchiveErrorDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**OfferId** | **string** | Ваш :no-translate[SKU] — идентификатор товара в вашей системе. Правила использования :no-translate[SKU]: * У каждого товара :no-translate[SKU] должен быть свой. * Уже заданный :no-translate[SKU] нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге. :no-translate[SKU] товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku). [Что такое :no-translate[SKU] и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields) |
|
||||||
|
**Error** | [**AddOffersToArchiveErrorType**](AddOffersToArchiveErrorType.md) | |
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveErrorDTO
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveErrorDTO(offerId string, error_ AddOffersToArchiveErrorType, ) *AddOffersToArchiveErrorDTO`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveErrorDTO instantiates a new AddOffersToArchiveErrorDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveErrorDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveErrorDTOWithDefaults() *AddOffersToArchiveErrorDTO`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveErrorDTOWithDefaults instantiates a new AddOffersToArchiveErrorDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetOfferId
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) GetOfferId() string`
|
||||||
|
|
||||||
|
GetOfferId returns the OfferId field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetOfferIdOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) GetOfferIdOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetOfferIdOk returns a tuple with the OfferId field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetOfferId
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) SetOfferId(v string)`
|
||||||
|
|
||||||
|
SetOfferId sets OfferId field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetError
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) GetError() AddOffersToArchiveErrorType`
|
||||||
|
|
||||||
|
GetError returns the Error field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) GetErrorOk() (*AddOffersToArchiveErrorType, bool)`
|
||||||
|
|
||||||
|
GetErrorOk returns a tuple with the Error field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetError
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveErrorDTO) SetError(v AddOffersToArchiveErrorType)`
|
||||||
|
|
||||||
|
SetError sets Error field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
13
pkg/api/yandex/ymclient/docs/AddOffersToArchiveErrorType.md
Normal file
13
pkg/api/yandex/ymclient/docs/AddOffersToArchiveErrorType.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# AddOffersToArchiveErrorType
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
|
||||||
|
* `OFFER_HAS_STOCKS` (value: `"OFFER_HAS_STOCKS"`)
|
||||||
|
|
||||||
|
* `UNKNOWN` (value: `"UNKNOWN"`)
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
51
pkg/api/yandex/ymclient/docs/AddOffersToArchiveRequest.md
Normal file
51
pkg/api/yandex/ymclient/docs/AddOffersToArchiveRequest.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# AddOffersToArchiveRequest
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**OfferIds** | **[]string** | Список товаров, которые нужно поместить в архив. |
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveRequest
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveRequest(offerIds []string, ) *AddOffersToArchiveRequest`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveRequest instantiates a new AddOffersToArchiveRequest object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveRequestWithDefaults
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveRequestWithDefaults() *AddOffersToArchiveRequest`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveRequestWithDefaults instantiates a new AddOffersToArchiveRequest object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetOfferIds
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveRequest) GetOfferIds() []string`
|
||||||
|
|
||||||
|
GetOfferIds returns the OfferIds field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetOfferIdsOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveRequest) GetOfferIdsOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetOfferIdsOk returns a tuple with the OfferIds field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetOfferIds
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveRequest) SetOfferIds(v []string)`
|
||||||
|
|
||||||
|
SetOfferIds sets OfferIds field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
82
pkg/api/yandex/ymclient/docs/AddOffersToArchiveResponse.md
Normal file
82
pkg/api/yandex/ymclient/docs/AddOffersToArchiveResponse.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# AddOffersToArchiveResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Result** | Pointer to [**AddOffersToArchiveDTO**](AddOffersToArchiveDTO.md) | | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveResponse
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveResponse() *AddOffersToArchiveResponse`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveResponse instantiates a new AddOffersToArchiveResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAddOffersToArchiveResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewAddOffersToArchiveResponseWithDefaults() *AddOffersToArchiveResponse`
|
||||||
|
|
||||||
|
NewAddOffersToArchiveResponseWithDefaults instantiates a new AddOffersToArchiveResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetResult
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) GetResult() AddOffersToArchiveDTO`
|
||||||
|
|
||||||
|
GetResult returns the Result field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetResultOk
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) GetResultOk() (*AddOffersToArchiveDTO, bool)`
|
||||||
|
|
||||||
|
GetResultOk returns a tuple with the Result field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetResult
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) SetResult(v AddOffersToArchiveDTO)`
|
||||||
|
|
||||||
|
SetResult sets Result field to given value.
|
||||||
|
|
||||||
|
### HasResult
|
||||||
|
|
||||||
|
`func (o *AddOffersToArchiveResponse) HasResult() bool`
|
||||||
|
|
||||||
|
HasResult returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# AffectedOrderQualityRatingComponentType
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
|
||||||
|
* `DBS_CANCELLATION_RATE` (value: `"DBS_CANCELLATION_RATE"`)
|
||||||
|
|
||||||
|
* `DBS_LATE_DELIVERY_RATE` (value: `"DBS_LATE_DELIVERY_RATE"`)
|
||||||
|
|
||||||
|
* `FBS_CANCELLATION_RATE` (value: `"FBS_CANCELLATION_RATE"`)
|
||||||
|
|
||||||
|
* `FBS_LATE_SHIP_RATE` (value: `"FBS_LATE_SHIP_RATE"`)
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
72
pkg/api/yandex/ymclient/docs/AgeDTO.md
Normal file
72
pkg/api/yandex/ymclient/docs/AgeDTO.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# AgeDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Value** | **float32** | Значение. |
|
||||||
|
**AgeUnit** | [**AgeUnitType**](AgeUnitType.md) | |
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewAgeDTO
|
||||||
|
|
||||||
|
`func NewAgeDTO(value float32, ageUnit AgeUnitType, ) *AgeDTO`
|
||||||
|
|
||||||
|
NewAgeDTO instantiates a new AgeDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewAgeDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewAgeDTOWithDefaults() *AgeDTO`
|
||||||
|
|
||||||
|
NewAgeDTOWithDefaults instantiates a new AgeDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetValue
|
||||||
|
|
||||||
|
`func (o *AgeDTO) GetValue() float32`
|
||||||
|
|
||||||
|
GetValue returns the Value field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetValueOk
|
||||||
|
|
||||||
|
`func (o *AgeDTO) GetValueOk() (*float32, bool)`
|
||||||
|
|
||||||
|
GetValueOk returns a tuple with the Value field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetValue
|
||||||
|
|
||||||
|
`func (o *AgeDTO) SetValue(v float32)`
|
||||||
|
|
||||||
|
SetValue sets Value field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetAgeUnit
|
||||||
|
|
||||||
|
`func (o *AgeDTO) GetAgeUnit() AgeUnitType`
|
||||||
|
|
||||||
|
GetAgeUnit returns the AgeUnit field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAgeUnitOk
|
||||||
|
|
||||||
|
`func (o *AgeDTO) GetAgeUnitOk() (*AgeUnitType, bool)`
|
||||||
|
|
||||||
|
GetAgeUnitOk returns a tuple with the AgeUnit field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAgeUnit
|
||||||
|
|
||||||
|
`func (o *AgeDTO) SetAgeUnit(v AgeUnitType)`
|
||||||
|
|
||||||
|
SetAgeUnit sets AgeUnit field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
13
pkg/api/yandex/ymclient/docs/AgeUnitType.md
Normal file
13
pkg/api/yandex/ymclient/docs/AgeUnitType.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# AgeUnitType
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
|
||||||
|
* `YEAR` (value: `"YEAR"`)
|
||||||
|
|
||||||
|
* `MONTH` (value: `"MONTH"`)
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiClientDataErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiClientDataErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiClientDataErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiClientDataErrorResponse
|
||||||
|
|
||||||
|
`func NewApiClientDataErrorResponse() *ApiClientDataErrorResponse`
|
||||||
|
|
||||||
|
NewApiClientDataErrorResponse instantiates a new ApiClientDataErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiClientDataErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiClientDataErrorResponseWithDefaults() *ApiClientDataErrorResponse`
|
||||||
|
|
||||||
|
NewApiClientDataErrorResponseWithDefaults instantiates a new ApiClientDataErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiClientDataErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiClientDataErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
77
pkg/api/yandex/ymclient/docs/ApiErrorDTO.md
Normal file
77
pkg/api/yandex/ymclient/docs/ApiErrorDTO.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# ApiErrorDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Code** | **string** | Код ошибки. |
|
||||||
|
**Message** | Pointer to **string** | Описание ошибки. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiErrorDTO
|
||||||
|
|
||||||
|
`func NewApiErrorDTO(code string, ) *ApiErrorDTO`
|
||||||
|
|
||||||
|
NewApiErrorDTO instantiates a new ApiErrorDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiErrorDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewApiErrorDTOWithDefaults() *ApiErrorDTO`
|
||||||
|
|
||||||
|
NewApiErrorDTOWithDefaults instantiates a new ApiErrorDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetCode
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) GetCode() string`
|
||||||
|
|
||||||
|
GetCode returns the Code field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetCodeOk
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) GetCodeOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetCodeOk returns a tuple with the Code field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCode
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) SetCode(v string)`
|
||||||
|
|
||||||
|
SetCode sets Code field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetMessage
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) GetMessage() string`
|
||||||
|
|
||||||
|
GetMessage returns the Message field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetMessageOk
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) GetMessageOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetMessageOk returns a tuple with the Message field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetMessage
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) SetMessage(v string)`
|
||||||
|
|
||||||
|
SetMessage sets Message field to given value.
|
||||||
|
|
||||||
|
### HasMessage
|
||||||
|
|
||||||
|
`func (o *ApiErrorDTO) HasMessage() bool`
|
||||||
|
|
||||||
|
HasMessage returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiErrorResponse
|
||||||
|
|
||||||
|
`func NewApiErrorResponse() *ApiErrorResponse`
|
||||||
|
|
||||||
|
NewApiErrorResponse instantiates a new ApiErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiErrorResponseWithDefaults() *ApiErrorResponse`
|
||||||
|
|
||||||
|
NewApiErrorResponseWithDefaults instantiates a new ApiErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiForbiddenErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiForbiddenErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiForbiddenErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiForbiddenErrorResponse
|
||||||
|
|
||||||
|
`func NewApiForbiddenErrorResponse() *ApiForbiddenErrorResponse`
|
||||||
|
|
||||||
|
NewApiForbiddenErrorResponse instantiates a new ApiForbiddenErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiForbiddenErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiForbiddenErrorResponseWithDefaults() *ApiForbiddenErrorResponse`
|
||||||
|
|
||||||
|
NewApiForbiddenErrorResponseWithDefaults instantiates a new ApiForbiddenErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiForbiddenErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiForbiddenErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
72
pkg/api/yandex/ymclient/docs/ApiKeyDTO.md
Normal file
72
pkg/api/yandex/ymclient/docs/ApiKeyDTO.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
# ApiKeyDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Name** | **string** | Название токена. |
|
||||||
|
**AuthScopes** | [**[]ApiKeyScopeType**](ApiKeyScopeType.md) | Доступы к методам по Api-Key-токену. |
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiKeyDTO
|
||||||
|
|
||||||
|
`func NewApiKeyDTO(name string, authScopes []ApiKeyScopeType, ) *ApiKeyDTO`
|
||||||
|
|
||||||
|
NewApiKeyDTO instantiates a new ApiKeyDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiKeyDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewApiKeyDTOWithDefaults() *ApiKeyDTO`
|
||||||
|
|
||||||
|
NewApiKeyDTOWithDefaults instantiates a new ApiKeyDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetName
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) GetName() string`
|
||||||
|
|
||||||
|
GetName returns the Name field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetNameOk
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) GetNameOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetName
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) SetName(v string)`
|
||||||
|
|
||||||
|
SetName sets Name field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetAuthScopes
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) GetAuthScopes() []ApiKeyScopeType`
|
||||||
|
|
||||||
|
GetAuthScopes returns the AuthScopes field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAuthScopesOk
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) GetAuthScopesOk() (*[]ApiKeyScopeType, bool)`
|
||||||
|
|
||||||
|
GetAuthScopesOk returns a tuple with the AuthScopes field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAuthScopes
|
||||||
|
|
||||||
|
`func (o *ApiKeyDTO) SetAuthScopes(v []ApiKeyScopeType)`
|
||||||
|
|
||||||
|
SetAuthScopes sets AuthScopes field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
37
pkg/api/yandex/ymclient/docs/ApiKeyScopeType.md
Normal file
37
pkg/api/yandex/ymclient/docs/ApiKeyScopeType.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# ApiKeyScopeType
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
|
||||||
|
* `ALL_METHODS` (value: `"ALL_METHODS"`)
|
||||||
|
|
||||||
|
* `ALL_METHODS_READ_ONLY` (value: `"ALL_METHODS_READ_ONLY"`)
|
||||||
|
|
||||||
|
* `INVENTORY_AND_ORDER_PROCESSING` (value: `"INVENTORY_AND_ORDER_PROCESSING"`)
|
||||||
|
|
||||||
|
* `INVENTORY_AND_ORDER_PROCESSING_READ_ONLY` (value: `"INVENTORY_AND_ORDER_PROCESSING_READ_ONLY"`)
|
||||||
|
|
||||||
|
* `PRICING` (value: `"PRICING"`)
|
||||||
|
|
||||||
|
* `PRICING_READ_ONLY` (value: `"PRICING_READ_ONLY"`)
|
||||||
|
|
||||||
|
* `OFFERS_AND_CARDS_MANAGEMENT` (value: `"OFFERS_AND_CARDS_MANAGEMENT"`)
|
||||||
|
|
||||||
|
* `OFFERS_AND_CARDS_MANAGEMENT_READ_ONLY` (value: `"OFFERS_AND_CARDS_MANAGEMENT_READ_ONLY"`)
|
||||||
|
|
||||||
|
* `PROMOTION` (value: `"PROMOTION"`)
|
||||||
|
|
||||||
|
* `PROMOTION_READ_ONLY` (value: `"PROMOTION_READ_ONLY"`)
|
||||||
|
|
||||||
|
* `FINANCE_AND_ACCOUNTING` (value: `"FINANCE_AND_ACCOUNTING"`)
|
||||||
|
|
||||||
|
* `COMMUNICATION` (value: `"COMMUNICATION"`)
|
||||||
|
|
||||||
|
* `SETTINGS_MANAGEMENT` (value: `"SETTINGS_MANAGEMENT"`)
|
||||||
|
|
||||||
|
* `SUPPLIES_MANAGEMENT_READ_ONLY` (value: `"SUPPLIES_MANAGEMENT_READ_ONLY"`)
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiLimitErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiLimitErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiLimitErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiLimitErrorResponse
|
||||||
|
|
||||||
|
`func NewApiLimitErrorResponse() *ApiLimitErrorResponse`
|
||||||
|
|
||||||
|
NewApiLimitErrorResponse instantiates a new ApiLimitErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiLimitErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiLimitErrorResponseWithDefaults() *ApiLimitErrorResponse`
|
||||||
|
|
||||||
|
NewApiLimitErrorResponseWithDefaults instantiates a new ApiLimitErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiLimitErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiLimitErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiLockedErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiLockedErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiLockedErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiLockedErrorResponse
|
||||||
|
|
||||||
|
`func NewApiLockedErrorResponse() *ApiLockedErrorResponse`
|
||||||
|
|
||||||
|
NewApiLockedErrorResponse instantiates a new ApiLockedErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiLockedErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiLockedErrorResponseWithDefaults() *ApiLockedErrorResponse`
|
||||||
|
|
||||||
|
NewApiLockedErrorResponseWithDefaults instantiates a new ApiLockedErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiLockedErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiLockedErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiNotFoundErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiNotFoundErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiNotFoundErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiNotFoundErrorResponse
|
||||||
|
|
||||||
|
`func NewApiNotFoundErrorResponse() *ApiNotFoundErrorResponse`
|
||||||
|
|
||||||
|
NewApiNotFoundErrorResponse instantiates a new ApiNotFoundErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiNotFoundErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiNotFoundErrorResponseWithDefaults() *ApiNotFoundErrorResponse`
|
||||||
|
|
||||||
|
NewApiNotFoundErrorResponseWithDefaults instantiates a new ApiNotFoundErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiNotFoundErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiNotFoundErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
56
pkg/api/yandex/ymclient/docs/ApiResponse.md
Normal file
56
pkg/api/yandex/ymclient/docs/ApiResponse.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# ApiResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiResponse
|
||||||
|
|
||||||
|
`func NewApiResponse() *ApiResponse`
|
||||||
|
|
||||||
|
NewApiResponse instantiates a new ApiResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiResponseWithDefaults() *ApiResponse`
|
||||||
|
|
||||||
|
NewApiResponseWithDefaults instantiates a new ApiResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
13
pkg/api/yandex/ymclient/docs/ApiResponseStatusType.md
Normal file
13
pkg/api/yandex/ymclient/docs/ApiResponseStatusType.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# ApiResponseStatusType
|
||||||
|
|
||||||
|
## Enum
|
||||||
|
|
||||||
|
|
||||||
|
* `OK` (value: `"OK"`)
|
||||||
|
|
||||||
|
* `ERROR` (value: `"ERROR"`)
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiServerErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiServerErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiServerErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiServerErrorResponse
|
||||||
|
|
||||||
|
`func NewApiServerErrorResponse() *ApiServerErrorResponse`
|
||||||
|
|
||||||
|
NewApiServerErrorResponse instantiates a new ApiServerErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiServerErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiServerErrorResponseWithDefaults() *ApiServerErrorResponse`
|
||||||
|
|
||||||
|
NewApiServerErrorResponseWithDefaults instantiates a new ApiServerErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiServerErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiServerErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
92
pkg/api/yandex/ymclient/docs/ApiUnauthorizedErrorResponse.md
Normal file
92
pkg/api/yandex/ymclient/docs/ApiUnauthorizedErrorResponse.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# ApiUnauthorizedErrorResponse
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**Status** | Pointer to [**ApiResponseStatusType**](ApiResponseStatusType.md) | | [optional]
|
||||||
|
**Errors** | Pointer to [**[]ApiErrorDTO**](ApiErrorDTO.md) | Список ошибок. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewApiUnauthorizedErrorResponse
|
||||||
|
|
||||||
|
`func NewApiUnauthorizedErrorResponse() *ApiUnauthorizedErrorResponse`
|
||||||
|
|
||||||
|
NewApiUnauthorizedErrorResponse instantiates a new ApiUnauthorizedErrorResponse object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewApiUnauthorizedErrorResponseWithDefaults
|
||||||
|
|
||||||
|
`func NewApiUnauthorizedErrorResponseWithDefaults() *ApiUnauthorizedErrorResponse`
|
||||||
|
|
||||||
|
NewApiUnauthorizedErrorResponseWithDefaults instantiates a new ApiUnauthorizedErrorResponse object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetStatus
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) GetStatus() ApiResponseStatusType`
|
||||||
|
|
||||||
|
GetStatus returns the Status field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetStatusOk
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) GetStatusOk() (*ApiResponseStatusType, bool)`
|
||||||
|
|
||||||
|
GetStatusOk returns a tuple with the Status field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetStatus
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) SetStatus(v ApiResponseStatusType)`
|
||||||
|
|
||||||
|
SetStatus sets Status field to given value.
|
||||||
|
|
||||||
|
### HasStatus
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) HasStatus() bool`
|
||||||
|
|
||||||
|
HasStatus returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetErrors
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) GetErrors() []ApiErrorDTO`
|
||||||
|
|
||||||
|
GetErrors returns the Errors field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetErrorsOk
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) GetErrorsOk() (*[]ApiErrorDTO, bool)`
|
||||||
|
|
||||||
|
GetErrorsOk returns a tuple with the Errors field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetErrors
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) SetErrors(v []ApiErrorDTO)`
|
||||||
|
|
||||||
|
SetErrors sets Errors field to given value.
|
||||||
|
|
||||||
|
### HasErrors
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) HasErrors() bool`
|
||||||
|
|
||||||
|
HasErrors returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetErrorsNil
|
||||||
|
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) SetErrorsNil(b bool)`
|
||||||
|
|
||||||
|
SetErrorsNil sets the value for Errors to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetErrors
|
||||||
|
`func (o *ApiUnauthorizedErrorResponse) UnsetErrors()`
|
||||||
|
|
||||||
|
UnsetErrors ensures that no value is present for Errors, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
70
pkg/api/yandex/ymclient/docs/AuthAPI.md
Normal file
70
pkg/api/yandex/ymclient/docs/AuthAPI.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# \AuthAPI
|
||||||
|
|
||||||
|
All URIs are relative to *https://api.partner.market.yandex.ru*
|
||||||
|
|
||||||
|
Method | HTTP request | Description
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
[**GetAuthTokenInfo**](AuthAPI.md#GetAuthTokenInfo) | **Post** /auth/token | Получение информации об авторизационном токене
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## GetAuthTokenInfo
|
||||||
|
|
||||||
|
> GetTokenInfoResponse GetAuthTokenInfo(ctx).Execute()
|
||||||
|
|
||||||
|
Получение информации об авторизационном токене
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
openapiclient "github.com/GIT_USER_ID/GIT_REPO_ID"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
configuration := openapiclient.NewConfiguration()
|
||||||
|
apiClient := openapiclient.NewAPIClient(configuration)
|
||||||
|
resp, r, err := apiClient.AuthAPI.GetAuthTokenInfo(context.Background()).Execute()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "Error when calling `AuthAPI.GetAuthTokenInfo``: %v\n", err)
|
||||||
|
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
|
||||||
|
}
|
||||||
|
// response from `GetAuthTokenInfo`: GetTokenInfoResponse
|
||||||
|
fmt.Fprintf(os.Stdout, "Response from `AuthAPI.GetAuthTokenInfo`: %v\n", resp)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Path Parameters
|
||||||
|
|
||||||
|
This endpoint does not need any parameter.
|
||||||
|
|
||||||
|
### Other Parameters
|
||||||
|
|
||||||
|
Other parameters are passed through a pointer to a apiGetAuthTokenInfoRequest struct via the builder pattern
|
||||||
|
|
||||||
|
|
||||||
|
### Return type
|
||||||
|
|
||||||
|
[**GetTokenInfoResponse**](GetTokenInfoResponse.md)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
[ApiKey](../README.md#ApiKey), [OAuth](../README.md#OAuth)
|
||||||
|
|
||||||
|
### HTTP request headers
|
||||||
|
|
||||||
|
- **Content-Type**: Not defined
|
||||||
|
- **Accept**: application/json
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models)
|
||||||
|
[[Back to README]](../README.md)
|
||||||
|
|
||||||
103
pkg/api/yandex/ymclient/docs/BaseCampaignOfferDTO.md
Normal file
103
pkg/api/yandex/ymclient/docs/BaseCampaignOfferDTO.md
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
# BaseCampaignOfferDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**OfferId** | **string** | Ваш :no-translate[SKU] — идентификатор товара в вашей системе. Правила использования :no-translate[SKU]: * У каждого товара :no-translate[SKU] должен быть свой. * Уже заданный :no-translate[SKU] нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге. :no-translate[SKU] товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku). [Что такое :no-translate[SKU] и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields) |
|
||||||
|
**Quantum** | Pointer to [**QuantumDTO**](QuantumDTO.md) | | [optional]
|
||||||
|
**Available** | Pointer to **bool** | {% note warning \"Вместо него используйте методы скрытия товаров с витрины\" %} * [GET campaigns/{campaignId}/hidden-offers](../../reference/assortment/getHiddenOffers.md) — просмотр скрытых товаров; * [POST campaigns/{campaignId}/hidden-offers](../../reference/assortment/addHiddenOffers.md) — скрытие товаров; * [POST campaigns/{campaignId}/hidden-offers/delete](../../reference/assortment/deleteHiddenOffers.md) — возобновление показа. {% endnote %} Есть ли товар в продаже. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewBaseCampaignOfferDTO
|
||||||
|
|
||||||
|
`func NewBaseCampaignOfferDTO(offerId string, ) *BaseCampaignOfferDTO`
|
||||||
|
|
||||||
|
NewBaseCampaignOfferDTO instantiates a new BaseCampaignOfferDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewBaseCampaignOfferDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewBaseCampaignOfferDTOWithDefaults() *BaseCampaignOfferDTO`
|
||||||
|
|
||||||
|
NewBaseCampaignOfferDTOWithDefaults instantiates a new BaseCampaignOfferDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetOfferId
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetOfferId() string`
|
||||||
|
|
||||||
|
GetOfferId returns the OfferId field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetOfferIdOk
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetOfferIdOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetOfferIdOk returns a tuple with the OfferId field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetOfferId
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) SetOfferId(v string)`
|
||||||
|
|
||||||
|
SetOfferId sets OfferId field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetQuantum
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetQuantum() QuantumDTO`
|
||||||
|
|
||||||
|
GetQuantum returns the Quantum field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetQuantumOk
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetQuantumOk() (*QuantumDTO, bool)`
|
||||||
|
|
||||||
|
GetQuantumOk returns a tuple with the Quantum field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetQuantum
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) SetQuantum(v QuantumDTO)`
|
||||||
|
|
||||||
|
SetQuantum sets Quantum field to given value.
|
||||||
|
|
||||||
|
### HasQuantum
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) HasQuantum() bool`
|
||||||
|
|
||||||
|
HasQuantum returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetAvailable
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetAvailable() bool`
|
||||||
|
|
||||||
|
GetAvailable returns the Available field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAvailableOk
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) GetAvailableOk() (*bool, bool)`
|
||||||
|
|
||||||
|
GetAvailableOk returns a tuple with the Available field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAvailable
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) SetAvailable(v bool)`
|
||||||
|
|
||||||
|
SetAvailable sets Available field to given value.
|
||||||
|
|
||||||
|
### HasAvailable
|
||||||
|
|
||||||
|
`func (o *BaseCampaignOfferDTO) HasAvailable() bool`
|
||||||
|
|
||||||
|
HasAvailable returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
817
pkg/api/yandex/ymclient/docs/BaseOfferDTO.md
Normal file
817
pkg/api/yandex/ymclient/docs/BaseOfferDTO.md
Normal file
@@ -0,0 +1,817 @@
|
|||||||
|
# BaseOfferDTO
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------ | ------------- | ------------- | -------------
|
||||||
|
**OfferId** | **string** | Ваш :no-translate[SKU] — идентификатор товара в вашей системе. Правила использования :no-translate[SKU]: * У каждого товара :no-translate[SKU] должен быть свой. * Уже заданный :no-translate[SKU] нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге. :no-translate[SKU] товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku). [Что такое :no-translate[SKU] и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields) |
|
||||||
|
**Name** | Pointer to **string** | Составляйте название по схеме: тип + бренд или производитель + модель + особенности, если есть (например, цвет, размер или вес) и количество в упаковке. Не включайте в название условия продажи (например, «скидка», «бесплатная доставка» и т. д.), эмоциональные характеристики («хит», «супер» и т. д.). Не пишите слова большими буквами — кроме устоявшихся названий брендов и моделей. Оптимальная длина — 50–60 символов. [Рекомендации и правила](https://yandex.ru/support/marketplace/assortment/fields/title.html) | [optional]
|
||||||
|
**MarketCategoryId** | Pointer to **int64** | Идентификатор категории на Маркете, к которой вы относите свой товар. {% note warning \"Всегда указывайте, когда передаете `parameterValues`\" %} Если при изменении характеристик передать `parameterValues` и не указать `marketCategoryId`, характеристики обновятся, но в ответе придет предупреждение (параметр `warnings`). Если не передать их оба, будет использована информация из устаревших параметров `params` и `category`, а `marketCategoryId` будет определен автоматически. {% endnote %} При изменении категории убедитесь, что характеристики товара и их значения в параметре `parameterValues` вы передаете для новой категории. Список категорий Маркета можно получить с помощью запроса [POST categories/tree](../../reference/categories/getCategoriesTree.md). | [optional]
|
||||||
|
**Category** | Pointer to **string** | {% note warning \"Вместо него используйте `marketCategoryId`.\" %} {% endnote %} Категория товара в вашем магазине. | [optional]
|
||||||
|
**Pictures** | Pointer to **[]string** | Ссылки на изображения товара. Изображение по первой ссылке считается основным, остальные дополнительными. **Требования к ссылкам** * Указывайте ссылку целиком, включая протокол http или https. * Русские буквы в URL можно. * Можно использовать прямые ссылки на изображения и на Яндекс Диск. Ссылки на Яндекс Диске нужно копировать с помощью функции **Поделиться**. Относительные ссылки и ссылки на другие облачные хранилища — не работают. ✅ `https://example-shop.ru/images/sku12345.jpg` ✅ `https://yadi.sk/i/NaBoRsimVOLov` ❌ `/images/sku12345.jpg` ❌ `https://www.dropbox.com/s/818f/tovar.jpg` Ссылки на изображение должны быть постоянными. Нельзя использовать динамические ссылки, меняющиеся от выгрузки к выгрузке. Если нужно заменить изображение, выложите новое изображение по новой ссылке, а ссылку на старое удалите. Если просто заменить изображение по старой ссылке, оно не обновится. [Требования к изображениям](https://yandex.ru/support/marketplace/assortment/fields/images.html) | [optional]
|
||||||
|
**Videos** | Pointer to **[]string** | Ссылки (URL) на видео товара. **Требования к ссылке** * Указывайте ссылку целиком, включая протокол http или https. * Русские буквы в URL можно. * Можно использовать прямые ссылки на видео и на Яндекс Диск. Ссылки на Яндекс Диске нужно копировать с помощью функции **Поделиться**. Относительные ссылки и ссылки на другие облачные хранилища — не работают. ✅ `https://example-shop.ru/video/sku12345.avi` ✅ `https://yadi.sk/i/NaBoRsimVOLov` ❌ `/video/sku12345.avi` ❌ `https://www.dropbox.com/s/818f/super-tovar.avi` Ссылки на видео должны быть постоянными. Нельзя использовать динамические ссылки, меняющиеся от выгрузки к выгрузке. Если нужно заменить видео, выложите новое видео по новой ссылке, а ссылку на старое удалите. Если просто заменить видео по старой ссылке, оно не обновится. [Требования к видео](https://yandex.ru/support/marketplace/assortment/fields/video.html) | [optional]
|
||||||
|
**Manuals** | Pointer to [**[]OfferManualDTO**](OfferManualDTO.md) | Список инструкций по использованию товара. | [optional]
|
||||||
|
**Vendor** | Pointer to **string** | Название бренда или производителя. Должно быть записано так, как его пишет сам бренд. | [optional]
|
||||||
|
**Barcodes** | Pointer to **[]string** | Указывайте в виде последовательности цифр. Подойдут коды :no-translate[EAN-13, EAN-8, UPC-A, UPC-E] или :no-translate[Code 128]. Для книг указывайте :no-translate[ISBN]. Для товаров [определенных категорий и торговых марок](https://yastatic.net/s3/doc-binary/src/support/market/ru/yandex-market-list-for-gtin.xlsx) штрихкод должен быть действительным кодом :no-translate[GTIN]. Обратите внимание: внутренние штрихкоды, начинающиеся на 2 или 02, и коды формата :no-translate[Code 128] не являются :no-translate[GTIN]. [Что такое :no-translate[GTIN]](:no-translate[*gtin]) | [optional]
|
||||||
|
**Description** | Pointer to **string** | Подробное описание товара: например, его преимущества и особенности. Не давайте в описании инструкций по установке и сборке. Не используйте слова «скидка», «распродажа», «дешевый», «подарок» (кроме подарочных категорий), «бесплатно», «акция», «специальная цена», «новинка», «new», «аналог», «заказ», «хит». Не указывайте никакой контактной информации и не давайте ссылок. Для форматирования текста можно использовать теги HTML: * \\<h>, \\<h1>, \\<h2> и так далее — для заголовков; * \\<br> и \\<p> — для переноса строки; * \\<ol> — для нумерованного списка; * \\<ul> — для маркированного списка; * \\<li> — для создания элементов списка (должен находиться внутри \\<ol> или \\<ul>); * \\<div> — поддерживается, но не влияет на отображение текста. Оптимальная длина — 400–600 символов. [Рекомендации и правила](https://yandex.ru/support/marketplace/assortment/fields/description.html) | [optional]
|
||||||
|
**ManufacturerCountries** | Pointer to **[]string** | Страна, где был произведен товар. Записывайте названия стран так, как они записаны в [списке](https://yastatic.net/s3/doc-binary/src/support/market/ru/countries.xlsx). | [optional]
|
||||||
|
**WeightDimensions** | Pointer to [**OfferWeightDimensionsDTO**](OfferWeightDimensionsDTO.md) | | [optional]
|
||||||
|
**VendorCode** | Pointer to **string** | Артикул товара от производителя. | [optional]
|
||||||
|
**Tags** | Pointer to **[]string** | Метки товара, которые использует магазин. Покупателям теги не видны. По тегам можно группировать и фильтровать разные товары в каталоге — например, товары одной серии, коллекции или линейки. Максимальная длина тега — 20 символов. У одного товара может быть максимум 10 тегов. | [optional]
|
||||||
|
**ShelfLife** | Pointer to [**TimePeriodDTO**](TimePeriodDTO.md) | | [optional]
|
||||||
|
**LifeTime** | Pointer to [**TimePeriodDTO**](TimePeriodDTO.md) | | [optional]
|
||||||
|
**GuaranteePeriod** | Pointer to [**TimePeriodDTO**](TimePeriodDTO.md) | | [optional]
|
||||||
|
**CustomsCommodityCode** | Pointer to **string** | {% note warning \"Вместо него используйте `commodityCodes` с типом `CUSTOMS_COMMODITY_CODE`.\" %} {% endnote %} Код товара в единой Товарной номенклатуре внешнеэкономической деятельности (ТН ВЭД) — 10 или 14 цифр без пробелов. Обязательно укажите, если он есть. | [optional]
|
||||||
|
**CommodityCodes** | Pointer to [**[]CommodityCodeDTO**](CommodityCodeDTO.md) | Товарные коды. | [optional]
|
||||||
|
**Certificates** | Pointer to **[]string** | Номера документов на товар: сертификата, декларации соответствия и т. п. Передавать можно только номера документов, сканы которого загружены в кабинете продавца по [инструкции](https://yandex.ru/support/marketplace/assortment/restrictions/certificates.html). | [optional]
|
||||||
|
**BoxCount** | Pointer to **int32** | Количество грузовых мест. Параметр используется, если товар представляет собой несколько коробок, упаковок и так далее. Например, кондиционер занимает два места — внешний и внутренний блоки в двух коробках. Для товаров, занимающих одно место, не передавайте этот параметр. | [optional]
|
||||||
|
**Condition** | Pointer to [**OfferConditionDTO**](OfferConditionDTO.md) | | [optional]
|
||||||
|
**Type** | Pointer to [**OfferType**](OfferType.md) | | [optional]
|
||||||
|
**Downloadable** | Pointer to **bool** | Признак цифрового товара. Укажите `true`, если товар доставляется по электронной почте. [Как работать с цифровыми товарами](../../step-by-step/digital.md) | [optional]
|
||||||
|
**Adult** | Pointer to **bool** | Параметр включает для товара пометку 18+. Устанавливайте ее только для товаров, которые относятся к удовлетворению сексуальных потребностей. | [optional]
|
||||||
|
**Age** | Pointer to [**AgeDTO**](AgeDTO.md) | | [optional]
|
||||||
|
**Params** | Pointer to [**[]OfferParamDTO**](OfferParamDTO.md) | {% note warning \"При передаче характеристик используйте `parameterValues`.\" %} {% endnote %} Характеристики, которые есть только у товаров конкретной категории — например, диаметр колес велосипеда или материал подошвы обуви. | [optional]
|
||||||
|
|
||||||
|
## Methods
|
||||||
|
|
||||||
|
### NewBaseOfferDTO
|
||||||
|
|
||||||
|
`func NewBaseOfferDTO(offerId string, ) *BaseOfferDTO`
|
||||||
|
|
||||||
|
NewBaseOfferDTO instantiates a new BaseOfferDTO object
|
||||||
|
This constructor will assign default values to properties that have it defined,
|
||||||
|
and makes sure properties required by API are set, but the set of arguments
|
||||||
|
will change when the set of required properties is changed
|
||||||
|
|
||||||
|
### NewBaseOfferDTOWithDefaults
|
||||||
|
|
||||||
|
`func NewBaseOfferDTOWithDefaults() *BaseOfferDTO`
|
||||||
|
|
||||||
|
NewBaseOfferDTOWithDefaults instantiates a new BaseOfferDTO object
|
||||||
|
This constructor will only assign default values to properties that have it defined,
|
||||||
|
but it doesn't guarantee that properties required by API are set
|
||||||
|
|
||||||
|
### GetOfferId
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetOfferId() string`
|
||||||
|
|
||||||
|
GetOfferId returns the OfferId field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetOfferIdOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetOfferIdOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetOfferIdOk returns a tuple with the OfferId field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetOfferId
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetOfferId(v string)`
|
||||||
|
|
||||||
|
SetOfferId sets OfferId field to given value.
|
||||||
|
|
||||||
|
|
||||||
|
### GetName
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetName() string`
|
||||||
|
|
||||||
|
GetName returns the Name field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetNameOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetNameOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetName
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetName(v string)`
|
||||||
|
|
||||||
|
SetName sets Name field to given value.
|
||||||
|
|
||||||
|
### HasName
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasName() bool`
|
||||||
|
|
||||||
|
HasName returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetMarketCategoryId
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetMarketCategoryId() int64`
|
||||||
|
|
||||||
|
GetMarketCategoryId returns the MarketCategoryId field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetMarketCategoryIdOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetMarketCategoryIdOk() (*int64, bool)`
|
||||||
|
|
||||||
|
GetMarketCategoryIdOk returns a tuple with the MarketCategoryId field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetMarketCategoryId
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetMarketCategoryId(v int64)`
|
||||||
|
|
||||||
|
SetMarketCategoryId sets MarketCategoryId field to given value.
|
||||||
|
|
||||||
|
### HasMarketCategoryId
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasMarketCategoryId() bool`
|
||||||
|
|
||||||
|
HasMarketCategoryId returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetCategory
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCategory() string`
|
||||||
|
|
||||||
|
GetCategory returns the Category field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetCategoryOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCategoryOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetCategoryOk returns a tuple with the Category field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCategory
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCategory(v string)`
|
||||||
|
|
||||||
|
SetCategory sets Category field to given value.
|
||||||
|
|
||||||
|
### HasCategory
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasCategory() bool`
|
||||||
|
|
||||||
|
HasCategory returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetPictures
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetPictures() []string`
|
||||||
|
|
||||||
|
GetPictures returns the Pictures field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetPicturesOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetPicturesOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetPicturesOk returns a tuple with the Pictures field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetPictures
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetPictures(v []string)`
|
||||||
|
|
||||||
|
SetPictures sets Pictures field to given value.
|
||||||
|
|
||||||
|
### HasPictures
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasPictures() bool`
|
||||||
|
|
||||||
|
HasPictures returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetPicturesNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetPicturesNil(b bool)`
|
||||||
|
|
||||||
|
SetPicturesNil sets the value for Pictures to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetPictures
|
||||||
|
`func (o *BaseOfferDTO) UnsetPictures()`
|
||||||
|
|
||||||
|
UnsetPictures ensures that no value is present for Pictures, not even an explicit nil
|
||||||
|
### GetVideos
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVideos() []string`
|
||||||
|
|
||||||
|
GetVideos returns the Videos field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetVideosOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVideosOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetVideosOk returns a tuple with the Videos field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetVideos
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetVideos(v []string)`
|
||||||
|
|
||||||
|
SetVideos sets Videos field to given value.
|
||||||
|
|
||||||
|
### HasVideos
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasVideos() bool`
|
||||||
|
|
||||||
|
HasVideos returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetVideosNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetVideosNil(b bool)`
|
||||||
|
|
||||||
|
SetVideosNil sets the value for Videos to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetVideos
|
||||||
|
`func (o *BaseOfferDTO) UnsetVideos()`
|
||||||
|
|
||||||
|
UnsetVideos ensures that no value is present for Videos, not even an explicit nil
|
||||||
|
### GetManuals
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetManuals() []OfferManualDTO`
|
||||||
|
|
||||||
|
GetManuals returns the Manuals field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetManualsOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetManualsOk() (*[]OfferManualDTO, bool)`
|
||||||
|
|
||||||
|
GetManualsOk returns a tuple with the Manuals field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetManuals
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetManuals(v []OfferManualDTO)`
|
||||||
|
|
||||||
|
SetManuals sets Manuals field to given value.
|
||||||
|
|
||||||
|
### HasManuals
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasManuals() bool`
|
||||||
|
|
||||||
|
HasManuals returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetManualsNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetManualsNil(b bool)`
|
||||||
|
|
||||||
|
SetManualsNil sets the value for Manuals to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetManuals
|
||||||
|
`func (o *BaseOfferDTO) UnsetManuals()`
|
||||||
|
|
||||||
|
UnsetManuals ensures that no value is present for Manuals, not even an explicit nil
|
||||||
|
### GetVendor
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVendor() string`
|
||||||
|
|
||||||
|
GetVendor returns the Vendor field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetVendorOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVendorOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetVendorOk returns a tuple with the Vendor field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetVendor
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetVendor(v string)`
|
||||||
|
|
||||||
|
SetVendor sets Vendor field to given value.
|
||||||
|
|
||||||
|
### HasVendor
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasVendor() bool`
|
||||||
|
|
||||||
|
HasVendor returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetBarcodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetBarcodes() []string`
|
||||||
|
|
||||||
|
GetBarcodes returns the Barcodes field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetBarcodesOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetBarcodesOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetBarcodesOk returns a tuple with the Barcodes field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetBarcodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetBarcodes(v []string)`
|
||||||
|
|
||||||
|
SetBarcodes sets Barcodes field to given value.
|
||||||
|
|
||||||
|
### HasBarcodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasBarcodes() bool`
|
||||||
|
|
||||||
|
HasBarcodes returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetBarcodesNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetBarcodesNil(b bool)`
|
||||||
|
|
||||||
|
SetBarcodesNil sets the value for Barcodes to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetBarcodes
|
||||||
|
`func (o *BaseOfferDTO) UnsetBarcodes()`
|
||||||
|
|
||||||
|
UnsetBarcodes ensures that no value is present for Barcodes, not even an explicit nil
|
||||||
|
### GetDescription
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetDescription() string`
|
||||||
|
|
||||||
|
GetDescription returns the Description field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetDescriptionOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetDescriptionOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetDescription
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetDescription(v string)`
|
||||||
|
|
||||||
|
SetDescription sets Description field to given value.
|
||||||
|
|
||||||
|
### HasDescription
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasDescription() bool`
|
||||||
|
|
||||||
|
HasDescription returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetManufacturerCountries
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetManufacturerCountries() []string`
|
||||||
|
|
||||||
|
GetManufacturerCountries returns the ManufacturerCountries field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetManufacturerCountriesOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetManufacturerCountriesOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetManufacturerCountriesOk returns a tuple with the ManufacturerCountries field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetManufacturerCountries
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetManufacturerCountries(v []string)`
|
||||||
|
|
||||||
|
SetManufacturerCountries sets ManufacturerCountries field to given value.
|
||||||
|
|
||||||
|
### HasManufacturerCountries
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasManufacturerCountries() bool`
|
||||||
|
|
||||||
|
HasManufacturerCountries returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetManufacturerCountriesNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetManufacturerCountriesNil(b bool)`
|
||||||
|
|
||||||
|
SetManufacturerCountriesNil sets the value for ManufacturerCountries to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetManufacturerCountries
|
||||||
|
`func (o *BaseOfferDTO) UnsetManufacturerCountries()`
|
||||||
|
|
||||||
|
UnsetManufacturerCountries ensures that no value is present for ManufacturerCountries, not even an explicit nil
|
||||||
|
### GetWeightDimensions
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetWeightDimensions() OfferWeightDimensionsDTO`
|
||||||
|
|
||||||
|
GetWeightDimensions returns the WeightDimensions field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetWeightDimensionsOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetWeightDimensionsOk() (*OfferWeightDimensionsDTO, bool)`
|
||||||
|
|
||||||
|
GetWeightDimensionsOk returns a tuple with the WeightDimensions field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetWeightDimensions
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetWeightDimensions(v OfferWeightDimensionsDTO)`
|
||||||
|
|
||||||
|
SetWeightDimensions sets WeightDimensions field to given value.
|
||||||
|
|
||||||
|
### HasWeightDimensions
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasWeightDimensions() bool`
|
||||||
|
|
||||||
|
HasWeightDimensions returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetVendorCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVendorCode() string`
|
||||||
|
|
||||||
|
GetVendorCode returns the VendorCode field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetVendorCodeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetVendorCodeOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetVendorCodeOk returns a tuple with the VendorCode field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetVendorCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetVendorCode(v string)`
|
||||||
|
|
||||||
|
SetVendorCode sets VendorCode field to given value.
|
||||||
|
|
||||||
|
### HasVendorCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasVendorCode() bool`
|
||||||
|
|
||||||
|
HasVendorCode returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetTags
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetTags() []string`
|
||||||
|
|
||||||
|
GetTags returns the Tags field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetTagsOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetTagsOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetTagsOk returns a tuple with the Tags field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetTags
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetTags(v []string)`
|
||||||
|
|
||||||
|
SetTags sets Tags field to given value.
|
||||||
|
|
||||||
|
### HasTags
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasTags() bool`
|
||||||
|
|
||||||
|
HasTags returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetTagsNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetTagsNil(b bool)`
|
||||||
|
|
||||||
|
SetTagsNil sets the value for Tags to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetTags
|
||||||
|
`func (o *BaseOfferDTO) UnsetTags()`
|
||||||
|
|
||||||
|
UnsetTags ensures that no value is present for Tags, not even an explicit nil
|
||||||
|
### GetShelfLife
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetShelfLife() TimePeriodDTO`
|
||||||
|
|
||||||
|
GetShelfLife returns the ShelfLife field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetShelfLifeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetShelfLifeOk() (*TimePeriodDTO, bool)`
|
||||||
|
|
||||||
|
GetShelfLifeOk returns a tuple with the ShelfLife field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetShelfLife
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetShelfLife(v TimePeriodDTO)`
|
||||||
|
|
||||||
|
SetShelfLife sets ShelfLife field to given value.
|
||||||
|
|
||||||
|
### HasShelfLife
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasShelfLife() bool`
|
||||||
|
|
||||||
|
HasShelfLife returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetLifeTime
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetLifeTime() TimePeriodDTO`
|
||||||
|
|
||||||
|
GetLifeTime returns the LifeTime field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetLifeTimeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetLifeTimeOk() (*TimePeriodDTO, bool)`
|
||||||
|
|
||||||
|
GetLifeTimeOk returns a tuple with the LifeTime field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetLifeTime
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetLifeTime(v TimePeriodDTO)`
|
||||||
|
|
||||||
|
SetLifeTime sets LifeTime field to given value.
|
||||||
|
|
||||||
|
### HasLifeTime
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasLifeTime() bool`
|
||||||
|
|
||||||
|
HasLifeTime returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetGuaranteePeriod
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetGuaranteePeriod() TimePeriodDTO`
|
||||||
|
|
||||||
|
GetGuaranteePeriod returns the GuaranteePeriod field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetGuaranteePeriodOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetGuaranteePeriodOk() (*TimePeriodDTO, bool)`
|
||||||
|
|
||||||
|
GetGuaranteePeriodOk returns a tuple with the GuaranteePeriod field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetGuaranteePeriod
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetGuaranteePeriod(v TimePeriodDTO)`
|
||||||
|
|
||||||
|
SetGuaranteePeriod sets GuaranteePeriod field to given value.
|
||||||
|
|
||||||
|
### HasGuaranteePeriod
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasGuaranteePeriod() bool`
|
||||||
|
|
||||||
|
HasGuaranteePeriod returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetCustomsCommodityCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCustomsCommodityCode() string`
|
||||||
|
|
||||||
|
GetCustomsCommodityCode returns the CustomsCommodityCode field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetCustomsCommodityCodeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCustomsCommodityCodeOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetCustomsCommodityCodeOk returns a tuple with the CustomsCommodityCode field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCustomsCommodityCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCustomsCommodityCode(v string)`
|
||||||
|
|
||||||
|
SetCustomsCommodityCode sets CustomsCommodityCode field to given value.
|
||||||
|
|
||||||
|
### HasCustomsCommodityCode
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasCustomsCommodityCode() bool`
|
||||||
|
|
||||||
|
HasCustomsCommodityCode returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetCommodityCodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCommodityCodes() []CommodityCodeDTO`
|
||||||
|
|
||||||
|
GetCommodityCodes returns the CommodityCodes field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetCommodityCodesOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCommodityCodesOk() (*[]CommodityCodeDTO, bool)`
|
||||||
|
|
||||||
|
GetCommodityCodesOk returns a tuple with the CommodityCodes field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCommodityCodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCommodityCodes(v []CommodityCodeDTO)`
|
||||||
|
|
||||||
|
SetCommodityCodes sets CommodityCodes field to given value.
|
||||||
|
|
||||||
|
### HasCommodityCodes
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasCommodityCodes() bool`
|
||||||
|
|
||||||
|
HasCommodityCodes returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetCommodityCodesNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCommodityCodesNil(b bool)`
|
||||||
|
|
||||||
|
SetCommodityCodesNil sets the value for CommodityCodes to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetCommodityCodes
|
||||||
|
`func (o *BaseOfferDTO) UnsetCommodityCodes()`
|
||||||
|
|
||||||
|
UnsetCommodityCodes ensures that no value is present for CommodityCodes, not even an explicit nil
|
||||||
|
### GetCertificates
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCertificates() []string`
|
||||||
|
|
||||||
|
GetCertificates returns the Certificates field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetCertificatesOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCertificatesOk() (*[]string, bool)`
|
||||||
|
|
||||||
|
GetCertificatesOk returns a tuple with the Certificates field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCertificates
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCertificates(v []string)`
|
||||||
|
|
||||||
|
SetCertificates sets Certificates field to given value.
|
||||||
|
|
||||||
|
### HasCertificates
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasCertificates() bool`
|
||||||
|
|
||||||
|
HasCertificates returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetCertificatesNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCertificatesNil(b bool)`
|
||||||
|
|
||||||
|
SetCertificatesNil sets the value for Certificates to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetCertificates
|
||||||
|
`func (o *BaseOfferDTO) UnsetCertificates()`
|
||||||
|
|
||||||
|
UnsetCertificates ensures that no value is present for Certificates, not even an explicit nil
|
||||||
|
### GetBoxCount
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetBoxCount() int32`
|
||||||
|
|
||||||
|
GetBoxCount returns the BoxCount field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetBoxCountOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetBoxCountOk() (*int32, bool)`
|
||||||
|
|
||||||
|
GetBoxCountOk returns a tuple with the BoxCount field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetBoxCount
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetBoxCount(v int32)`
|
||||||
|
|
||||||
|
SetBoxCount sets BoxCount field to given value.
|
||||||
|
|
||||||
|
### HasBoxCount
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasBoxCount() bool`
|
||||||
|
|
||||||
|
HasBoxCount returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetCondition
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetCondition() OfferConditionDTO`
|
||||||
|
|
||||||
|
GetCondition returns the Condition field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetConditionOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetConditionOk() (*OfferConditionDTO, bool)`
|
||||||
|
|
||||||
|
GetConditionOk returns a tuple with the Condition field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetCondition
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetCondition(v OfferConditionDTO)`
|
||||||
|
|
||||||
|
SetCondition sets Condition field to given value.
|
||||||
|
|
||||||
|
### HasCondition
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasCondition() bool`
|
||||||
|
|
||||||
|
HasCondition returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetType
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetType() OfferType`
|
||||||
|
|
||||||
|
GetType returns the Type field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetTypeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetTypeOk() (*OfferType, bool)`
|
||||||
|
|
||||||
|
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetType
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetType(v OfferType)`
|
||||||
|
|
||||||
|
SetType sets Type field to given value.
|
||||||
|
|
||||||
|
### HasType
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasType() bool`
|
||||||
|
|
||||||
|
HasType returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetDownloadable
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetDownloadable() bool`
|
||||||
|
|
||||||
|
GetDownloadable returns the Downloadable field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetDownloadableOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetDownloadableOk() (*bool, bool)`
|
||||||
|
|
||||||
|
GetDownloadableOk returns a tuple with the Downloadable field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetDownloadable
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetDownloadable(v bool)`
|
||||||
|
|
||||||
|
SetDownloadable sets Downloadable field to given value.
|
||||||
|
|
||||||
|
### HasDownloadable
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasDownloadable() bool`
|
||||||
|
|
||||||
|
HasDownloadable returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetAdult
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetAdult() bool`
|
||||||
|
|
||||||
|
GetAdult returns the Adult field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAdultOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetAdultOk() (*bool, bool)`
|
||||||
|
|
||||||
|
GetAdultOk returns a tuple with the Adult field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAdult
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetAdult(v bool)`
|
||||||
|
|
||||||
|
SetAdult sets Adult field to given value.
|
||||||
|
|
||||||
|
### HasAdult
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasAdult() bool`
|
||||||
|
|
||||||
|
HasAdult returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetAge
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetAge() AgeDTO`
|
||||||
|
|
||||||
|
GetAge returns the Age field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetAgeOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetAgeOk() (*AgeDTO, bool)`
|
||||||
|
|
||||||
|
GetAgeOk returns a tuple with the Age field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetAge
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetAge(v AgeDTO)`
|
||||||
|
|
||||||
|
SetAge sets Age field to given value.
|
||||||
|
|
||||||
|
### HasAge
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasAge() bool`
|
||||||
|
|
||||||
|
HasAge returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetParams
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetParams() []OfferParamDTO`
|
||||||
|
|
||||||
|
GetParams returns the Params field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetParamsOk
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) GetParamsOk() (*[]OfferParamDTO, bool)`
|
||||||
|
|
||||||
|
GetParamsOk returns a tuple with the Params field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetParams
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetParams(v []OfferParamDTO)`
|
||||||
|
|
||||||
|
SetParams sets Params field to given value.
|
||||||
|
|
||||||
|
### HasParams
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) HasParams() bool`
|
||||||
|
|
||||||
|
HasParams returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### SetParamsNil
|
||||||
|
|
||||||
|
`func (o *BaseOfferDTO) SetParamsNil(b bool)`
|
||||||
|
|
||||||
|
SetParamsNil sets the value for Params to be an explicit nil
|
||||||
|
|
||||||
|
### UnsetParams
|
||||||
|
`func (o *BaseOfferDTO) UnsetParams()`
|
||||||
|
|
||||||
|
UnsetParams ensures that no value is present for Params, not even an explicit nil
|
||||||
|
|
||||||
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user