해당 포스팅에서는 장바구니 수정 기능의 흐름에 대해서 정리해 보고자 한다.
- Controller: 장바구니 수정 요청을 처리한다.
- CartService: 장바구니와 관련된 비즈니스 로직을 처리한다.
@PatchMapping("/cartItem/{cartItemId}")
public ResponseEntity<Object> updateCartItem(@PathVariable("cartItemId") Long cartItemId, int count, @CurrentAccount Account account) {
if (count <= 0) {
return ResponseEntity.badRequest().body("최소 1개 이상 담아주세요.");
} else if (!cartService.validateCartItem(cartItemId, account.getUserIdentifier())) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).body("수정 권한이 없습니다.");
}
cartService.updateCartItemCount(cartItemId, count);
return ResponseEntity.ok().body(cartItemId);
}
public void updateCartItemCount(Long cartItemId, int count) {
CartItem cartItem = cartItemRepository.findById(cartItemId).orElseThrow(EntityNotFoundException::new);
cartItem.updateCount(count);
}