Class: SpreeCmCommissioner::OrderImporter::SingleGuest
- Inherits:
-
BaseInteractor
- Object
- BaseInteractor
- SpreeCmCommissioner::OrderImporter::SingleGuest
- Defined in:
- app/interactors/spree_cm_commissioner/order_importer/single_guest.rb
Instance Method Summary collapse
Instance Method Details
#call ⇒ Object
6 7 8 9 10 11 12 |
# File 'app/interactors/spree_cm_commissioner/order_importer/single_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: order.errors..to_sentence) unless context.order.save end |
#construct_order ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/interactors/spree_cm_commissioner/order_importer/single_guest.rb', line 14 def construct_order guest_params = params.slice(*SpreeCmCommissioner::Guest.csv_importable_columns) guest_params[:token] = guest_token if guest_token.present? 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: 1, variant_id: params[:variant_id], guests_attributes: [ guest_params ] } ] ) end |