diff --git a/src/main/java/kr/co/antoon/webtoon/facade/WebtoonStatusFacade.java b/src/main/java/kr/co/antoon/webtoon/facade/WebtoonStatusFacade.java index a270b08d..e8db2ee5 100644 --- a/src/main/java/kr/co/antoon/webtoon/facade/WebtoonStatusFacade.java +++ b/src/main/java/kr/co/antoon/webtoon/facade/WebtoonStatusFacade.java @@ -1,5 +1,6 @@ package kr.co.antoon.webtoon.facade; +import kr.co.antoon.coin.application.AntCoinService; import kr.co.antoon.error.exception.webtoon.AlreadyJoinedException; import kr.co.antoon.error.exception.webtoon.AlreadyLeavedException; import kr.co.antoon.webtoon.application.WebtoonStatusCountService; @@ -16,21 +17,21 @@ public class WebtoonStatusFacade { private final WebtoonStatusService webtoonStatusService; private final WebtoonStatusCountService webtoonStatusCountService; + private final AntCoinService antCoinService; @Transactional public WebtoonStatusResponse saveOrUpdate(WebtoonStatusType status, Long userId, Long webtoonId) { statusCheck(userId, webtoonId); + WebtoonStatusCount webtoonStatusCount = webtoonStatusCountService.findByWebtoonId(webtoonId) .orElseGet(() -> webtoonStatusCountService.save(webtoonId)); webtoonStatusCount.updateCount(status); status = WebtoonStatusType.of(status); webtoonStatusService.save(webtoonId, userId, status); + WebtoonStatusResponse response = new WebtoonStatusResponse(webtoonStatusCount, status); - return new WebtoonStatusResponse( - webtoonStatusCount, - status - ); + return antCoinService.joinWebtoon(userId, webtoonId, response, status); } @Transactional(readOnly = true) diff --git a/src/main/java/kr/co/antoon/webtoon/presentation/WebtoonController.java b/src/main/java/kr/co/antoon/webtoon/presentation/WebtoonController.java index d624d00c..7b7e89a3 100644 --- a/src/main/java/kr/co/antoon/webtoon/presentation/WebtoonController.java +++ b/src/main/java/kr/co/antoon/webtoon/presentation/WebtoonController.java @@ -36,7 +36,7 @@ public class WebtoonController { private final WebtoonFacade webtoonFacade; private final WebtoonStatusFacade webtoonStatusFacade; private final WebtoonService webtoonService; - private final AntCoinService antCoinService; + @ApiOperation(value = "웹툰 상세 조회 API", notes = SwaggerNote.WEBTOON_READ_DETAIL) @GetMapping(value = "/{webtoonId}") @@ -110,9 +110,8 @@ public ResponseEntity createWebtoonStatus( @AuthUser AuthInfo info, @RequestParam("status") WebtoonStatusType status ) { - // TODO 해당 로직 처리는 여기서 하는게 이상해보이네요 response가 두번 사용되는 것도... + var response = webtoonStatusFacade.saveOrUpdate(status, info.userId(), webtoonId); - response = antCoinService.joinWebtoon(info.userId(), webtoonId, response, status); return ResponseDto.ok(response); } }