더북(TheBook)

    @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에 대해 해당 도서를 장바구니에 추가로 등록하고 장바구니를 갱신합니다.

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