Module: SpreeCmCommissioner::ServiceModuleThrowable

Overview

Module to add a bang (!) version of a service call that raises an exception on failure.

Usage:

# Standard service call returns a result object
result = Service.call
result.success? # => true/false
result.error # => Spree::ServiceModule::ResultError object if failure

# Bang version raises an exception on failure
begin
  result = Service.call!
  result.value
rescue SpreeCmCommissioner::ServiceFailure => e
  e.error # => Spree::ServiceModule::ResultError object
end

This is useful when you want to propagate failures and possibly trigger a transaction rollback, instead of manually checking ‘result.failure?`.

Instance Method Summary collapse

Instance Method Details

#call!Object

Raises:



32
33
34
35
36
37
# File 'lib/spree_cm_commissioner/service_module_throwable.rb', line 32

def call!(*, **)
  result = call(*, **)
  raise ServiceFailure, result.error if result.failure?

  result
end