diff --git a/query/getvariations.go b/query/getvariations.go index ad3e692..6bc1c28 100644 --- a/query/getvariations.go +++ b/query/getvariations.go @@ -69,6 +69,12 @@ func (q *GetVariations) EnableOffers() *GetVariations { return q } +// EnableOffersV2 sets the resource of OffersV2 +func (q *GetVariations) EnableOffersV2() *GetVariations { + q.With().OffersV2() + return q +} + // EnableVariationSummary sets the resource of VariationSummary func (q *GetVariations) EnableVariationSummary() *GetVariations { q.With().VariationSummary() diff --git a/query/getvariations_test.go b/query/getvariations_test.go index 40ff557..aeea2e5 100644 --- a/query/getvariations_test.go +++ b/query/getvariations_test.go @@ -92,6 +92,7 @@ func TestResourcesInGetVariations(t *testing.T) { {q: NewGetVariations("", "", "").EnableImages(), str: `{"Operation":"GetVariations","Resources":["Images.Primary.Small","Images.Primary.Medium","Images.Primary.Large","Images.Variants.Small","Images.Variants.Medium","Images.Variants.Large"]}`}, {q: NewGetVariations("", "", "").EnableItemInfo(), str: `{"Operation":"GetVariations","Resources":["ItemInfo.ByLineInfo","ItemInfo.ContentInfo","ItemInfo.ContentRating","ItemInfo.Classifications","ItemInfo.ExternalIds","ItemInfo.Features","ItemInfo.ManufactureInfo","ItemInfo.ProductInfo","ItemInfo.TechnicalInfo","ItemInfo.Title","ItemInfo.TradeInInfo"]}`}, {q: NewGetVariations("", "", "").EnableOffers(), str: `{"Operation":"GetVariations","Resources":["Offers.Listings.Availability.MaxOrderQuantity","Offers.Listings.Availability.Message","Offers.Listings.Availability.MinOrderQuantity","Offers.Listings.Availability.Type","Offers.Listings.Condition","Offers.Listings.Condition.SubCondition","Offers.Listings.DeliveryInfo.IsAmazonFulfilled","Offers.Listings.DeliveryInfo.IsFreeShippingEligible","Offers.Listings.DeliveryInfo.IsPrimeEligible","Offers.Listings.DeliveryInfo.ShippingCharges","Offers.Listings.IsBuyBoxWinner","Offers.Listings.LoyaltyPoints.Points","Offers.Listings.MerchantInfo","Offers.Listings.Price","Offers.Listings.ProgramEligibility.IsPrimeExclusive","Offers.Listings.ProgramEligibility.IsPrimePantry","Offers.Listings.Promotions","Offers.Listings.SavingBasis","Offers.Summaries.HighestPrice","Offers.Summaries.LowestPrice","Offers.Summaries.OfferCount"]}`}, + {q: NewGetVariations("", "", "").EnableOffersV2(), str: `{"Operation":"GetVariations","Resources":["OffersV2.Listings.Availability","OffersV2.Listings.Condition","OffersV2.Listings.DealDetails","OffersV2.Listings.IsBuyBoxWinner","OffersV2.Listings.LoyaltyPoints","OffersV2.Listings.MerchantInfo","OffersV2.Listings.Price","OffersV2.Listings.Type"]}`}, {q: NewGetVariations("", "", "").EnableVariationSummary(), str: `{"Operation":"GetVariations","Resources":["VariationSummary.Price.HighestPrice","VariationSummary.Price.LowestPrice","VariationSummary.VariationDimension"]}`}, } diff --git a/query/searchitems.go b/query/searchitems.go index 2ada62c..0aa1b15 100644 --- a/query/searchitems.go +++ b/query/searchitems.go @@ -4,14 +4,14 @@ import ( paapi5 "github.com/goark/pa-api" ) -//SearchItems type is embedded Query for SearchItems operation in PA-API v5 +// SearchItems type is embedded Query for SearchItems operation in PA-API v5 type SearchItems struct { Query } var _ paapi5.Query = (*SearchItems)(nil) //SearchItems is compatible with paapi5.Query interface -//NewSearchItems creates a new SearchItems instance +// NewSearchItems creates a new SearchItems instance func NewSearchItems(marketplace, partnerTag, partnerType string) *SearchItems { q := &SearchItems{*(New(paapi5.SearchItems))} q.Request(Marketplace, marketplace).Request(PartnerTag, partnerTag).Request(PartnerType, partnerType) @@ -50,7 +50,7 @@ var ( searchTypes = []RequestFilter{Actor, Artist, Author, Brand, Keywords, Title} ) -//Request adds RequestFilter to Query instance +// Request adds RequestFilter to Query instance func (q *SearchItems) Request(request RequestFilter, value interface{}) *SearchItems { if request.findIn(requestsOfSearchItems) { q.With().RequestFilters(RequestMap{request: value}) @@ -58,7 +58,7 @@ func (q *SearchItems) Request(request RequestFilter, value interface{}) *SearchI return q } -//Search is a generic search query funtion to obtain informations from the "SearchItems"-operation +// Search is a generic search query funtion to obtain informations from the "SearchItems"-operation func (q *SearchItems) Search(searchType RequestFilter, searchParam string) *SearchItems { if searchType.findIn(searchTypes) { return q.Request(searchType, searchParam) @@ -66,43 +66,49 @@ func (q *SearchItems) Search(searchType RequestFilter, searchParam string) *Sear return q } -//EnableBrowseNodeInfo sets the enableBrowseNodeInfo flag in SearchItems instance +// EnableBrowseNodeInfo sets the enableBrowseNodeInfo flag in SearchItems instance func (q *SearchItems) EnableBrowseNodeInfo() *SearchItems { q.With().BrowseNodeInfo() return q } -//EnableImages sets the enableImages flag in SearchItems instance +// EnableImages sets the enableImages flag in SearchItems instance func (q *SearchItems) EnableImages() *SearchItems { q.With().Images() return q } -//EnableItemInfo sets the enableItemInfo flag in SearchItems instance +// EnableItemInfo sets the enableItemInfo flag in SearchItems instance func (q *SearchItems) EnableItemInfo() *SearchItems { q.With().ItemInfo() return q } -//EnableOffers sets the enableOffers flag in SearchItems instance +// EnableOffers sets the enableOffers flag in SearchItems instance func (q *SearchItems) EnableOffers() *SearchItems { q.With().Offers() return q } -//EnableSearchRefinements sets the enableOffers flag in SearchItems instance +// EnableOffersV2 sets the enableOffersV2 flag in SearchItems instance +func (q *SearchItems) EnableOffersV2() *SearchItems { + q.With().OffersV2() + return q +} + +// EnableSearchRefinements sets the enableOffers flag in SearchItems instance func (q *SearchItems) EnableSearchRefinements() *SearchItems { q.With().SearchRefinements() return q } -//EnableParentASIN sets the enableParentASIN flag in SearchItems instance +// EnableParentASIN sets the enableParentASIN flag in SearchItems instance func (q *SearchItems) EnableParentASIN() *SearchItems { q.With().ParentASIN() return q } -//EnableCustomerReviews sets the enableCustomerReviews flag in SearchItems instance +// EnableCustomerReviews sets the enableCustomerReviews flag in SearchItems instance func (q *SearchItems) EnableCustomerReviews() *SearchItems { q.With().CustomerReviews() return q diff --git a/query/searchitems_test.go b/query/searchitems_test.go index 3d98a2d..3259896 100644 --- a/query/searchitems_test.go +++ b/query/searchitems_test.go @@ -172,6 +172,7 @@ func TestResourcesInSearchItems(t *testing.T) { {q: NewSearchItems("", "", "").EnableImages(), str: `{"Operation":"SearchItems","Resources":["Images.Primary.Small","Images.Primary.Medium","Images.Primary.Large","Images.Variants.Small","Images.Variants.Medium","Images.Variants.Large"]}`}, {q: NewSearchItems("", "", "").EnableItemInfo(), str: `{"Operation":"SearchItems","Resources":["ItemInfo.ByLineInfo","ItemInfo.ContentInfo","ItemInfo.ContentRating","ItemInfo.Classifications","ItemInfo.ExternalIds","ItemInfo.Features","ItemInfo.ManufactureInfo","ItemInfo.ProductInfo","ItemInfo.TechnicalInfo","ItemInfo.Title","ItemInfo.TradeInInfo"]}`}, {q: NewSearchItems("", "", "").EnableOffers(), str: `{"Operation":"SearchItems","Resources":["Offers.Listings.Availability.MaxOrderQuantity","Offers.Listings.Availability.Message","Offers.Listings.Availability.MinOrderQuantity","Offers.Listings.Availability.Type","Offers.Listings.Condition","Offers.Listings.Condition.SubCondition","Offers.Listings.DeliveryInfo.IsAmazonFulfilled","Offers.Listings.DeliveryInfo.IsFreeShippingEligible","Offers.Listings.DeliveryInfo.IsPrimeEligible","Offers.Listings.DeliveryInfo.ShippingCharges","Offers.Listings.IsBuyBoxWinner","Offers.Listings.LoyaltyPoints.Points","Offers.Listings.MerchantInfo","Offers.Listings.Price","Offers.Listings.ProgramEligibility.IsPrimeExclusive","Offers.Listings.ProgramEligibility.IsPrimePantry","Offers.Listings.Promotions","Offers.Listings.SavingBasis","Offers.Summaries.HighestPrice","Offers.Summaries.LowestPrice","Offers.Summaries.OfferCount"]}`}, + {q: NewSearchItems("", "", "").EnableOffersV2(), str: `{"Operation":"SearchItems","Resources":["OffersV2.Listings.Availability","OffersV2.Listings.Condition","OffersV2.Listings.DealDetails","OffersV2.Listings.IsBuyBoxWinner","OffersV2.Listings.LoyaltyPoints","OffersV2.Listings.MerchantInfo","OffersV2.Listings.Price","OffersV2.Listings.Type"]}`}, {q: NewSearchItems("", "", "").EnableSearchRefinements(), str: `{"Operation":"SearchItems","Resources":["SearchRefinements"]}`}, {q: NewSearchItems("", "", "").EnableParentASIN(), str: `{"Operation":"SearchItems","Resources":["ParentASIN"]}`}, {q: NewSearchItems("", "", "").EnableCustomerReviews(), str: `{"Operation":"SearchItems","Resources":["CustomerReviews.Count","CustomerReviews.StarRating"]}`},