Sha256: 1fd9f4dc5260b07062e2561f102a23d8e5e21ee76af1307d9efdceff6e5dea26
Contents?: true
Size: 1.5 KB
Versions: 4
Compression:
Stored size: 1.5 KB
Contents
module A2z module Responses class ItemSearch include Helpers attr_accessor :operation_request, :items, :total_results, :total_pages, :more_search_results_url def initialize @items = [] @total_results = 0 @total_pages = 0 @valid = true end def valid=(value) @valid = !!value end def valid? @valid end # TODO capture data['Items']['Request']['Errors'] into an attr_accessor value # TODO consider capturing data['Items']['Request'] into an attr_accessor value def self.from_response(data) new.tap do |item_search| item_search.operation_request = OperationRequest.from_response(data['OperationRequest']) if data['OperationRequest'] item_search.items = items_from_response(data) item_search.total_results = data['Items']['TotalResults'].to_i rescue 0 item_search.total_pages = data['Items']['TotalPages'].to_i rescue 0 item_search.more_search_results_url = data['Items']['MoreSearchResultsUrl'] rescue nil item_search.valid = data['Items']['Request']['IsValid'] == 'True' rescue false item_search.freeze end end private def self.items_from_response(data) items = array_wrap(data['Items']['Item']) rescue [] items.collect { |item| Item.from_response(item) } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
a2z-0.1.3 | lib/a2z/responses/item_search.rb |
a2z-0.1.2 | lib/a2z/responses/item_search.rb |
a2z-0.1.1 | lib/a2z/responses/item_search.rb |
a2z-0.1.0 | lib/a2z/responses/item_search.rb |