Class: SpreeCmCommissioner::Guests::UpdateSeat

Inherits:
Object
  • Object
show all
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/guests/update_seat.rb

Instance Method Summary collapse

Instance Method Details

#call(line_item:, guest:, block_id:, updated_by:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/services/spree_cm_commissioner/guests/update_seat.rb', line 6

def call(line_item:, guest:, block_id:, updated_by:)
  validate_params(line_item, guest, block_id, updated_by)

  ApplicationRecord.transaction do
    old_block_id = guest.block_id
    update_reserved_block(guest, block_id, updated_by)
    guest.update!(block_id: block_id) if old_block_id != block_id && block_id.present?
    update_order_preload_blocks(line_item.order, old_block_id, block_id)

    success(guest: guest, line_item: line_item)
  end
rescue StandardError => e
  failure(nil, e.message)
end