feat: shit shit
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
||||
[submodule "api/proto/v1"]
|
||||
path = api/proto/v1
|
||||
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"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
)
|
||||
|
||||
@@ -20,20 +21,931 @@ const (
|
||||
_ = 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
|
||||
|
||||
const file_yandexmarket_products_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"\x1byandexmarket/products.proto\x12\x15yandexmarket.products2\x11\n" +
|
||||
"\x0fProductsServiceB\x19Z\x17./yandexmarket/productsb\x06proto3"
|
||||
"\x1byandexmarket/products.proto\x12\x15yandexmarket.products\"\xce\x04\n" +
|
||||
"\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{
|
||||
0, // [0:0] is the sub-list for method output_type
|
||||
0, // [0:0] is the sub-list for method input_type
|
||||
0, // [0:0] is the sub-list for extension type_name
|
||||
0, // [0:0] is the sub-list for extension extendee
|
||||
0, // [0:0] is the sub-list for field type_name
|
||||
5, // 0: yandexmarket.products.CalculateProductTariffsRequest.parameters:type_name -> yandexmarket.products.CalculateProductTariffsRequest.Parameters
|
||||
4, // 1: yandexmarket.products.CalculateProductTariffsRequest.offers:type_name -> yandexmarket.products.CalculateProductTariffsRequest.Offers
|
||||
9, // 2: yandexmarket.products.CalculateProductTariffsResponse.offers:type_name -> yandexmarket.products.CalculateProductTariffsResponse.Offers
|
||||
10, // 3: yandexmarket.products.GetProductsResponse.offers:type_name -> yandexmarket.products.GetProductsResponse.Offer
|
||||
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() }
|
||||
@@ -47,12 +959,13 @@ func file_yandexmarket_products_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandexmarket_products_proto_rawDesc), len(file_yandexmarket_products_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 0,
|
||||
NumMessages: 13,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_yandexmarket_products_proto_goTypes,
|
||||
DependencyIndexes: file_yandexmarket_products_proto_depIdxs,
|
||||
MessageInfos: file_yandexmarket_products_proto_msgTypes,
|
||||
}.Build()
|
||||
File_yandexmarket_products_proto = out.File
|
||||
file_yandexmarket_products_proto_goTypes = nil
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
package products
|
||||
|
||||
import (
|
||||
context "context"
|
||||
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
|
||||
@@ -15,10 +18,17 @@ import (
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
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.
|
||||
//
|
||||
// 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 {
|
||||
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 {
|
||||
@@ -29,10 +39,50 @@ func NewProductsServiceClient(cc grpc.ClientConnInterface) ProductsServiceClient
|
||||
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.
|
||||
// All implementations must embed UnimplementedProductsServiceServer
|
||||
// for forward compatibility.
|
||||
type ProductsServiceServer interface {
|
||||
CalculateProductTariffs(*CalculateProductTariffsRequest, grpc.ServerStreamingServer[CalculateProductTariffsResponse]) error
|
||||
GetProducts(*GetProductsRequest, grpc.ServerStreamingServer[GetProductsResponse]) error
|
||||
mustEmbedUnimplementedProductsServiceServer()
|
||||
}
|
||||
|
||||
@@ -43,6 +93,12 @@ type ProductsServiceServer interface {
|
||||
// pointer dereference when methods are called.
|
||||
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) testEmbeddedByValue() {}
|
||||
|
||||
@@ -64,6 +120,28 @@ func RegisterProductsServiceServer(s grpc.ServiceRegistrar, srv ProductsServiceS
|
||||
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.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@@ -71,6 +149,17 @@ var ProductsService_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "yandexmarket.products.ProductsService",
|
||||
HandlerType: (*ProductsServiceServer)(nil),
|
||||
Methods: []grpc.MethodDesc{},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "yandexmarket/products.proto",
|
||||
Streams: []grpc.StreamDesc{
|
||||
{
|
||||
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 (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/jackc/pgx/v5/pgxpool"
|
||||
"github.com/joho/godotenv"
|
||||
"google.golang.org/grpc"
|
||||
"net"
|
||||
"os"
|
||||
"sipro-mps/internal/config"
|
||||
@@ -14,6 +11,11 @@ import (
|
||||
"sipro-mps/internal/redis"
|
||||
"sipro-mps/internal/tasks/client"
|
||||
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{}) {
|
||||
@@ -58,6 +60,14 @@ func createGrpcServer(pool *pgxpool.Pool) {
|
||||
fmt.Printf("failed to register Wildberries Products gRPC server: %v\n", err)
|
||||
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.")
|
||||
// Start serving gRPC requests
|
||||
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
|
||||
|
||||
import (
|
||||
"github.com/hibiken/asynq"
|
||||
"github.com/joho/godotenv"
|
||||
"sipro-mps/internal/config"
|
||||
"sipro-mps/internal/tasks/types"
|
||||
"context"
|
||||
"fmt"
|
||||
"sipro-mps/internal/wb/products/mapping/generated"
|
||||
"strings"
|
||||
|
||||
pb "sipro-mps/api/generated/v1/wb/products"
|
||||
"sipro-mps/pkg/api/wb/client"
|
||||
|
||||
"github.com/deliveryhero/pipeline/v2"
|
||||
)
|
||||
|
||||
func main() {
|
||||
godotenv.Load()
|
||||
cfg, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
client := asynq.NewClient(asynq.RedisClientOpt{Addr: cfg.Redis.Host + ":" + cfg.Redis.Port, Password: cfg.Redis.Password})
|
||||
defer func(client *asynq.Client) {
|
||||
err := client.Close()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
||||
input := "1,2,3,4,5"
|
||||
|
||||
for out := range pipeline.Process(context.Background(), apply, pipeline.Emit(input)) {
|
||||
for j := range out {
|
||||
fmt.Printf("process: %s\n", out[j])
|
||||
}
|
||||
}(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 (
|
||||
github.com/cespare/xxhash/v2 v2.3.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/dlclark/regexp2 v1.11.5 // 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/mod v0.26.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/sys v0.34.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.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
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/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
||||
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.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
|
||||
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/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
|
||||
|
||||
@@ -15,4 +15,5 @@ type Marketplace struct {
|
||||
AuthData pgtype.Text
|
||||
WarehouseID pgtype.Text
|
||||
AuthDataJson []byte
|
||||
CampaignID pgtype.Text
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
)
|
||||
|
||||
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
|
||||
`
|
||||
|
||||
@@ -24,6 +24,7 @@ func (q *Queries) GetMarketplaceByID(ctx context.Context, id int32) (Marketplace
|
||||
&i.AuthData,
|
||||
&i.WarehouseID,
|
||||
&i.AuthDataJson,
|
||||
&i.CampaignID,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
@@ -10,5 +10,6 @@ create table marketplaces
|
||||
CASE
|
||||
WHEN ((auth_data)::text IS JSON) THEN (auth_data)::jsonb
|
||||
ELSE NULL::jsonb
|
||||
END) stored
|
||||
END) stored,
|
||||
campaign_id varchar
|
||||
);
|
||||
@@ -2,8 +2,9 @@ package marketplace
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/go-faster/errors"
|
||||
"sipro-mps/pkg/utils"
|
||||
|
||||
"github.com/go-faster/errors"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -18,6 +19,7 @@ type Marketplace struct {
|
||||
AuthData string `json:"auth_data"`
|
||||
WarehouseID string `json:"warehouse_id"`
|
||||
AuthDataJson []byte `json:"auth_data_json,omitempty"`
|
||||
CampaignID string `json:"campaign_id,omitempty"`
|
||||
}
|
||||
|
||||
func (m *Marketplace) getIdentifierWildberries() (string, error) {
|
||||
|
||||
@@ -25,5 +25,6 @@ func (r *dbRepository) GetMarketplaceByID(ctx context.Context, id int) (*Marketp
|
||||
AuthData: marketplace.AuthData.String,
|
||||
WarehouseID: marketplace.WarehouseID.String,
|
||||
AuthDataJson: marketplace.AuthDataJson,
|
||||
CampaignID: marketplace.CampaignID.String,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -2,20 +2,16 @@ package products
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"github.com/go-faster/errors"
|
||||
"github.com/redis/rueidis"
|
||||
"github.com/samber/lo"
|
||||
pb "sipro-mps/api/generated/v1/wb/products"
|
||||
"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/products/mapping/generated"
|
||||
wbapi "sipro-mps/pkg/api/wb/client"
|
||||
"sipro-mps/pkg/utils"
|
||||
|
||||
"github.com/deliveryhero/pipeline/v2"
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -97,79 +93,99 @@ func fetchProducts(
|
||||
}
|
||||
|
||||
func (a apiRepository) StreamAllProductsCache(ctx context.Context, marketplaceId int, resultChan chan<- []pb.Product, errChan chan<- error) {
|
||||
defer close(resultChan)
|
||||
defer close(errChan)
|
||||
_, sellerId, err := a.ParseMarketplace(ctx, marketplaceId)
|
||||
// DO NOT close channels here - WithCache will handle it (caller/creator owns them)
|
||||
mp, err := a.marketplaceRepository.GetMarketplaceByID(ctx, marketplaceId)
|
||||
if err != nil {
|
||||
errChan <- err
|
||||
errChan <- fmt.Errorf("getting marketplace by ID: %w", err)
|
||||
return
|
||||
}
|
||||
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
|
||||
identifier, err := mp.GetIdentifier()
|
||||
if err != nil {
|
||||
errChan <- fmt.Errorf("getting marketplace identifier: %w", err)
|
||||
return
|
||||
}
|
||||
if !errors.As(err, &rueidis.Nil) && err != nil {
|
||||
errChan <- fmt.Errorf("fetching products from cache: %w", err)
|
||||
client, err := wb.GetClientFromMarketplace(mp)
|
||||
if err != nil {
|
||||
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
|
||||
}
|
||||
transform := pipeline.NewProcessor(func(_ context.Context, products []WbProduct) ([]pb.Product, error) {
|
||||
return lo.Map(products, func(item WbProduct, _ int) pb.Product {
|
||||
return *converter.ToProto(&item)
|
||||
}), nil
|
||||
}, nil)
|
||||
inputChan := make(chan []WbProduct)
|
||||
fetchProducts(ctx, client, identifier, inputChan, nil)
|
||||
for out := range pipeline.Process(ctx, transform, inputChan) {
|
||||
resultChan <- out
|
||||
}
|
||||
|
||||
//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) {
|
||||
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