Class: SpreeCmCommissioner::EnqueueCart::AddItem

Inherits:
BaseInteractor show all
Defined in:
app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb

Instance Method Summary collapse

Instance Method Details

#add_item_to_cartObject



15
16
17
18
19
20
21
22
23
24
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb', line 15

def add_item_to_cart
  Spree::Cart::AddItem.call(
    order: order,
    variant: variant,
    quantity: quantity,
    public_metadata: ,
    private_metadata: ,
    options: options
  )
end

#callObject



6
7
8
9
10
11
12
13
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb', line 6

def call
  result = add_item_to_cart
  if result.success?
    update_status('completed')
  else
    update_status('failed')
  end
end

#orderObject



34
35
36
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb', line 34

def order
  @order ||= Spree::Order.find(order_id)
end

#update_status(status) ⇒ Object



26
27
28
29
30
31
32
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb', line 26

def update_status(status)
  SpreeCmCommissioner::EnqueueCart::AddItemStatusMarker.call(
    order_number: order.number,
    job_id: job_id,
    status: status
  )
end

#variantObject



38
39
40
# File 'app/interactors/spree_cm_commissioner/enqueue_cart/add_item.rb', line 38

def variant
  @variant ||= Spree::Variant.find(variant_id)
end