Add an item class to process search and get_items response

This commit is contained in:
Dan Milne
2019-09-17 22:53:32 +10:00
parent 7e50e531ad
commit 75d8e0e7ab
2 changed files with 50 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ require 'paapi/response'
module Paapi module Paapi
class Error < StandardError; end class Error < StandardError; end
class NotImplemented < StandardError; end class NotImplemented < StandardError; end
SEARCH_PARAMS = %i[keywords actor, artist, author, brand title].freeze
DEFAULT_PARTNER_TYPE = 'Associates' DEFAULT_PARTNER_TYPE = 'Associates'
DEFAULT_MARKET = :us DEFAULT_MARKET = :us
DEFAULT_RESOURCES = [ DEFAULT_RESOURCES = [

49
lib/paapi/item.rb Normal file
View File

@@ -0,0 +1,49 @@
module Paapi
class Item
attr_accessor :raw
def initialize(data)
@raw = data
end
def asin
get(['ASIN'])
end
def title
get(%w{ItemInfo Title DisplayValue})
end
def release_date
get(%w{ItemInfo ReleaseDate})
end
def eans
get(%w{ItemInfo ExternalIds EANs DisplayValues})
end
def upcs
get(%w{ItemInfo ExternalIds UPCs DisplayValues})
end
def features
get(%w{ItemInfo Features DisplayValues})&.join(' ')
end
def part_number
get(%w{ItemInfo ManufactureInfo ItemPartNumber DisplayValue})
end
def format
get(%w{ItemInfo TechnicalInfo Formats DisplayValues})
end
def kindle?
!format.nil? && format&.include?('Kindle eBook')
end
def get(keys)
@raw.dig(*keys)
end
end
end