Class: SpreeCmCommissioner::Seats::BlocksCanceler
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Seats::BlocksCanceler
- Defined in:
- app/models/spree_cm_commissioner/seats/blocks_canceler.rb
Instance Method Summary collapse
-
#cancel_blocks! ⇒ Object
Cancels all reserved blocks associated with a given order.
-
#initialize(order_id:, cancel_by: nil) ⇒ BlocksCanceler
constructor
A new instance of BlocksCanceler.
Constructor Details
#initialize(order_id:, cancel_by: nil) ⇒ BlocksCanceler
Returns a new instance of BlocksCanceler.
4 5 6 7 |
# File 'app/models/spree_cm_commissioner/seats/blocks_canceler.rb', line 4 def initialize(order_id:, cancel_by: nil) @order_id = order_id @cancel_by = cancel_by end |
Instance Method Details
#cancel_blocks! ⇒ Object
Cancels all reserved blocks associated with a given order.
Typically used when:
-
The order is canceled.
-
The user abandons the order before completing checkout.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/models/spree_cm_commissioner/seats/blocks_canceler.rb', line 14 def cancel_blocks! order = Spree::Order.find(@order_id) ActiveRecord::Base.transaction do order.reserved_blocks.each do |reserved_block| reserved_block.assign_attributes( status: :canceled, expired_at: nil, updated_by: @cancel_by ) raise Errors::UnableToSaveReservedBlockRecord unless reserved_block.save end end end |