11class CouponsController < ApplicationController
22 def index
3- @coupons = Coupons :: Coupon . all
3+ @coupons = Coupons . coupons_for_store ( current_store_id )
44 end
55
66 def new
77 @coupon_id = SecureRandom . uuid
88 end
99
1010 def create
11- create_coupon ( params [ :coupon_id ] , params [ :name ] , params [ :code ] , params [ :discount ] )
11+ coupon_id = params [ :coupon_id ]
12+
13+ ActiveRecord ::Base . transaction do
14+ create_coupon ( coupon_id )
15+ end
1216 rescue Pricing ::Coupon ::AlreadyRegistered
1317 flash [ :notice ] = "Coupon is already registered"
1418 render "new"
@@ -18,12 +22,21 @@ def create
1822
1923 private
2024
21- def create_coupon ( coupon_id , name , code , discount )
22- command_bus . ( create_coupon_cmd ( coupon_id , name , code , discount ) )
23- end
24-
25- def create_coupon_cmd ( coupon_id , name , code , discount )
26- Pricing ::RegisterCoupon . new ( coupon_id : coupon_id , name : name , code : code , discount : discount )
25+ def create_coupon ( coupon_id )
26+ command_bus . (
27+ Pricing ::RegisterCoupon . new (
28+ coupon_id : coupon_id ,
29+ name : params [ :name ] ,
30+ code : params [ :code ] ,
31+ discount : params [ :discount ]
32+ )
33+ )
34+ command_bus . (
35+ Stores ::RegisterCoupon . new (
36+ coupon_id : coupon_id ,
37+ store_id : current_store_id
38+ )
39+ )
2740 end
2841
2942end
0 commit comments