class SpreeCmCommissioner::RedisStock::LineItemsCachedInventoryItemsBuilder
def cached_inventory_items
def cached_inventory_items @cached_inventory_items ||= SpreeCmCommissioner::RedisStock::CachedInventoryItemsBuilder.new(inventory_items) .call end
def call
2: [ CachedInventoryItem(...), CachedInventoryItem(...) ],
1: [ CachedInventoryItem(...), CachedInventoryItem(...) ],
{
return list of inventory items group by :line_item_id:
def call cached_inventory_items.group_by do |cached_inventory_item| line_item = line_items.find { |item| item.variant_id == cached_inventory_item.variant_id } line_item.id end end
def initialize(line_item_ids:)
def initialize(line_item_ids:) @line_item_ids = line_item_ids end
def inventory_items
def inventory_items @inventory_items ||= line_items.flat_map(&:inventory_items) end
def line_items
def line_items @line_items ||= Spree::LineItem.where(id: line_item_ids).includes(:inventory_items) end