Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions query/getvariations.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
1 change: 1 addition & 0 deletions query/getvariations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"]}`},
}

Expand Down
28 changes: 17 additions & 11 deletions query/searchitems.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -50,59 +50,65 @@ 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})
}
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)
}
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
Expand Down
1 change: 1 addition & 0 deletions query/searchitems_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"]}`},
Expand Down