Class: SpreeCmCommissioner::OrderImporter::MultiGuest

Inherits:
BaseInteractor
  • Object
show all
Defined in:
app/interactors/spree_cm_commissioner/order_importer/multi_guest.rb

Instance Method Summary collapse

Instance Method Details

#callObject



6
7
8
9
10
11
12
# File 'app/interactors/spree_cm_commissioner/order_importer/multi_guest.rb', line 6

def call
  return context.fail!(message: 'variant_id_is_required') if params[:variant_id].blank?
  return context.fail!(message: 'email_or_phone_is_required') if params[:order_email].blank? && params[:order_phone_number].blank?

  context.order = construct_order
  context.fail!(message: context.order.errors.full_messages.to_sentence) unless context.order.save
end

#construct_orderObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/interactors/spree_cm_commissioner/order_importer/multi_guest.rb', line 14

def construct_order
  Spree::Order.new(
    email: params[:order_email],
    phone_number: params[:order_phone_number],
    completed_at: Date.current,
    state: 'complete',
    payment_state: 'paid',
    line_items_attributes: [
      {
        quantity: quantity.to_i,
        variant_id: params[:variant_id]
      }
    ]
  )
end