더북(TheBook)

    @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에 대해 해당 도서를 장바구니에서 삭제하고 장바구니를 갱신합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.