WindsomeProject - 장바구니 삭제 기능

박민수·2024년 1월 8일
0

WindsomeProject

목록 보기
11/32
post-thumbnail

개요

해당 포스팅에서는 장바구니 수정 기능의 흐름에 대해서 정리해 보고자 한다.

장바구니 삭제 기능 절차

  1. Controller: 장바구니 삭제 요청을 처리합니다.
  2. CartService: 장바구니와 관련된 비즈니스 로직을 처리합니다.

Controller 로직

  1. @PathVariable 애노테이션을 이용하여 장바구니 상품의 id 값을 Long 타입 cartItemId 변수에 매핑하여 전달받는다.
  2. 사용자가 해당 장바구니에 대한 삭제 권한이 있는지를 검증한다. (CartService에 위임)
  3. 장바구니에 담긴 상품을 삭제한다. (CartService에 위임)
@DeleteMapping("/cartItem/{cartItemId}")
public ResponseEntity<Object> deleteCartItem(@PathVariable("cartItemId") Long cartItemId, @CurrentAccount Account account) {
	if (cartService.validateCartItem(cartItemId, account.getUserIdentifier())) {
		return ResponseEntity.status(HttpStatus.FORBIDDEN).body("수정 권한이 없습니다.");
	}
	cartService.deleteCartItem(cartItemId);
	return ResponseEntity.ok().body(cartItemId);
}

Service 로직

  1. 파라미터로 전달받은 cartItemId를 이용하여 DB에서 CartItem Entity를 조회한다.
  2. 장바구니에 담긴 상품을 삭제한다.
public void deleteCartItem(Long cartItemId) {
	CartItem cartItem = cartItemRepository.findById(cartItemId).orElseThrow(EntityNotFoundException::new);
	cartItemRepository.delete(cartItem);
}
profile
안녕하세요 백엔드 개발자입니다.

0개의 댓글

관련 채용 정보