11package com .loopers .application .like ;
22
3- import com .loopers .application .product .UserActionEvent ;
4- import com .loopers .domain .actionlog .ActionType ;
53import com .loopers .domain .like .Like ;
64import com .loopers .domain .like .LikeRepository ;
5+ import com .loopers .domain .outbox .AggregateType ;
6+ import com .loopers .domain .outbox .OutboxEvent ;
7+ import com .loopers .domain .outbox .OutboxRepository ;
8+ import com .loopers .domain .outbox .OutboxType ;
79import com .loopers .domain .product .ProductRepository ;
810import com .loopers .domain .user .UserRepository ;
911import com .loopers .interfaces .api .like .LikeV1Dto ;
1012import com .loopers .support .error .CoreException ;
1113import com .loopers .support .error .ErrorType ;
1214import lombok .RequiredArgsConstructor ;
13- import org .springframework .context .ApplicationEventPublisher ;
1415import org .springframework .stereotype .Component ;
1516import org .springframework .transaction .annotation .Transactional ;
1617
@@ -20,7 +21,7 @@ public class LikeFacade {
2021 private final LikeRepository likeRepository ;
2122 private final UserRepository userRepository ;
2223 private final ProductRepository productRepository ;
23- private final ApplicationEventPublisher publisher ;
24+ private final OutboxRepository outBoxRepository ;
2425
2526 @ Transactional
2627 public LikeInfo doLike (LikeV1Dto .LikeRequest request ) {
@@ -46,8 +47,13 @@ public LikeInfo doLike(LikeV1Dto.LikeRequest request) {
4647 Like newLike = request .toEntity ();
4748 likeRepository .save (newLike );
4849
49- publisher .publishEvent (new LikeCreateEvent (userId , productId ));
50- publisher .publishEvent (new UserActionEvent (userId , productId , ActionType .DO_LIKE ));
50+ OutboxEvent outBoxEvent = OutboxEvent .of (
51+ AggregateType .PRODUCT ,
52+ productId ,
53+ OutboxType .PRODUCT_LIKED
54+ );
55+
56+ outBoxRepository .save (outBoxEvent );
5157
5258 return LikeInfo .from (newLike );
5359 });
0 commit comments