➊
@PutMapping("/remove/{bookId}")
@ResponseStatus(value=HttpStatus.NO_CONTENT)
public void removeCartByItem(@PathVariable String bookId, HttpServletRequest request) {
// 장바구니 ID인 세션 ID 가져오기
String sessionId = request.getSession(true).getId();
Cart cart = cartService.read(sessionId); // 장바구니에 등록된 모든 정보 얻어 오기
if (cart == null)
cart = cartService.create(new Cart(sessionId));
// 경로 변수 bookId에 대한 정보 얻어 오기
Book book = bookService.getBookById(bookId);
if (book == null)
throw new IllegalArgumentException(new BookIdException(bookId));
// bookId에 대한 도서 정보를 장바구니에서 삭제하기
cart.removeCartItem(new CartItem(book));
cartService.update(sessionId, cart); // 세션 ID에 대한 장바구니 갱신하기
}
}
➊ removeCartByItem() 메서드는 HTTP 메서드가 PUT 방식으로 요청 URI가 /cart/remove/{bookId}일 때 경로 변수 bookId에 대해 해당 도서를 장바구니에서 삭제하고 장바구니를 갱신합니다.