Sha256: 5a32c9bb7a5c063ce38d2dbc9a39811f19c5b7a03d3c42958ba29f4eeb4d5c1a
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
module Workarea module Orderbot class InventoryImporter include Sidekiq::Worker sidekiq_options retry: 5 def perform(options = {}) return unless Orderbot.api_configured? Orderbot::ImportLog.log('inventory') do |last_imported_at| from_updated_on = options[:from_updated_on] || last_imported_at inventory_filters = { from_updated_on: from_updated_on.iso8601, distribution_center_id: Workarea.config.inventory_distribution_center_id } inventory_response = gateway.get_inventory(inventory_filters) raise 'get inventory error' unless inventory_response.success? inventory_records = inventory_response.body import_inventory_records(inventory_records) if inventory_response.total_pages.to_i > 1 count = 2 while count <= inventory_response.total_pages.to_i page_filters = inventory_filters.merge(page: count) response = gateway.get_products(page_filters) import_inventory_records(response.body) count = count + 1 end end inventory_records.each do |inventory| Orderbot::Inventory::ImportInventory.new.perform(inventory) end end end private def gateway Workarea::Orderbot.gateway end def import_inventory_records(inventory_records) inventory_records.each do |inventory| Orderbot::Inventory::ImportInventory.new.perform(inventory) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems