Class: SpreeCmCommissioner::OrderHolds::Reserve

Inherits:
Object
  • Object
show all
Extended by:
ServiceModuleThrowable
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/order_holds/reserve.rb

Overview

Orchestrates finalizing holds when order completes: reserves seat blocks and converts inventory hold from hold to final stock deduction.

Constant Summary collapse

UnableToReserveSeatsError =
Class.new(StandardError)
UnableToConvertInventoryError =
Class.new(StandardError)

Instance Method Summary collapse

Methods included from ServiceModuleThrowable

call!

Instance Method Details

#call(order:) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'app/services/spree_cm_commissioner/order_holds/reserve.rb', line 11

def call(order:)
  reserve_seat_blocks!(order)
  convert_inventory_hold!(order)

  success(order)
rescue StandardError => e
  error = { error_type: e.class.name.demodulize, order_id: order.id, message: e.message }
  CmAppLogger.error(label: "#{self.class.name}#call failed", data: error)
  failure(nil, error)
end