Skip to content

Commit 4352d7f

Browse files
committed
make all business decisions directly visible in the act method
1 parent eceec2c commit 4352d7f

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

ecommerce/processes/lib/processes/reservation_process.rb

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,13 @@ def apply(event)
3939
def act
4040
case state
4141
in order: :accepted
42-
update_order_state { reserve_stock }
42+
begin
43+
reserve_stock
44+
rescue SomeInventoryNotAvailable => exc
45+
reject_order(exc.unavailable_products)
46+
else
47+
accept_order
48+
end
4349
in order: :cancelled
4450
release_stock(state.reserved_product_ids)
4551
in order: :confirmed
@@ -66,13 +72,6 @@ def reserve_stock
6672
end
6773
end
6874

69-
def update_order_state
70-
yield
71-
accept_order
72-
rescue SomeInventoryNotAvailable => exc
73-
reject_order(exc.unavailable_products)
74-
end
75-
7675
def release_stock(product_ids)
7776
state.order_lines.slice(*product_ids).each do |product_id, quantity|
7877
command_bus.(Inventory::Release.new(product_id: product_id, quantity: quantity))

0 commit comments

Comments
 (0)