Class: SpreeCmCommissioner::Trips::PreloadInventory
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Trips::PreloadInventory
- Includes:
- Spree::ServiceModule::Base, SpreeCmCommissioner::Transit::TripHelper
- Defined in:
- app/services/spree_cm_commissioner/trips/preload_inventory.rb
Instance Method Summary collapse
Methods included from SpreeCmCommissioner::Transit::TripHelper
#minutes_since_midnight, #normalize_date, #parse_date, #parse_time
Instance Method Details
#call(date:, leg_trips: nil, inventory_keys: nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/services/spree_cm_commissioner/trips/preload_inventory.rb', line 7 def call(date:, leg_trips: nil, inventory_keys: nil) failure('Date is required') if date.blank? failure('Either inventory_keys or leg_trips must be provided') if inventory_keys.blank? && leg_trips.blank? failure('leg_trips must not be empty') if leg_trips.present? && leg_trips.empty? @date = normalize_date(date) @cache = {} preload_keys = inventory_keys || leg_trips.map.with_index do |leg, idx| day_offset = calculate_day_offset_for_leg(leg_trips, idx) [leg.product_id, @date.to_date + day_offset] end preload!(preload_keys) success(@cache) rescue StandardError => e failure(nil, e.) end |