➊
@PutMapping("/add/{bookId}")
@ResponseStatus(value=HttpStatus.NO_CONTENT) // 오류 응답 상태 코드 설정
public void addCartByNewItem(@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.addCartItem(new CartItem(book));
cartService.update(sessionId, cart); // 세션 ID에 대한 장바구니 갱신하기
}
}
➊ addCartByNewItem() 메서드는 HTTP 메서드가 PUT 방식으로 요청 URI가 /cart/add/{bookId}일 때 경로 변수 bookId에 대해 해당 도서를 장바구니에 추가로 등록하고 장바구니를 갱신합니다.