@DeleteMapping("/user/cart/{id}")
public ResponseEntity<List<ResponseCart>> deleteCart(HttpServletRequest request, @PathVariable Long id, @RequestParam(value = "size") String size) {
List<ResponseCart> cartList = cartService.deleteCart((User) request.getAttribute("user"), id, size);
return (cartList != null) ?
ResponseEntity.status(HttpStatus.OK).body(cartList) :
ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
CartService의 deleteCart함수를 호출하고 결과에 따라 200 또는 400의 status code를 반환
@Override
public List<ResponseCart> deleteCart(User user, Long product_id, String size) {
Product product = productRepository.findById(product_id).orElse(null);
if(user == null || product == null) {
return null;
}
Boolean check_same = cartRepository.findSameCart(user.getId(), product_id, size, DELETE);
if(!check_same) {
return null;
}
return readCart(user);
}
ProductRepository 를 이용해 product_id 에 대한 엔티티를 받아옴
CartRepository 의 findSameCart 를 이용해 내 장바구니에 같은 상품이 있는지 여부를 알아옴 → 있다면 check_same 이 true 없다면 false
장바구니에 같은 상품이 없을 땐 null 반환
장바구니에 같은 상품이 있을 땐 Repository 안에 로직 수행
그 후 Repository와 반환 작업은 링크와 같은 작업으로 수행