diff --git a/src/main/java/com/gdsc/hearo/HearoApplication.java b/src/main/java/com/gdsc/hearo/HearoApplication.java index 04ef814..13fc47e 100644 --- a/src/main/java/com/gdsc/hearo/HearoApplication.java +++ b/src/main/java/com/gdsc/hearo/HearoApplication.java @@ -2,7 +2,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.web.filter.HiddenHttpMethodFilter; @EnableJpaAuditing @SpringBootApplication @@ -10,6 +12,7 @@ public class HearoApplication { public static void main(String[] args) { + SpringApplication.run(HearoApplication.class, args); } diff --git a/src/main/java/com/gdsc/hearo/domain/item/controller/WishController.java b/src/main/java/com/gdsc/hearo/domain/item/controller/WishController.java index cce379a..169c877 100644 --- a/src/main/java/com/gdsc/hearo/domain/item/controller/WishController.java +++ b/src/main/java/com/gdsc/hearo/domain/item/controller/WishController.java @@ -24,7 +24,7 @@ public WishController(WishService wishService){ this.wishService = wishService; } - @PostMapping + @PostMapping/*wishRequestDto가 꼭필요한가?*/ public ResponseEntity> addToWishList(@AuthenticationPrincipal CustomUserDetails userDetails, @RequestBody WishRequestDto wishRequestDto){ @@ -62,4 +62,27 @@ public ResponseEntity> getWishList(@Authentica + @DeleteMapping("/{itemId}") + public ResponseEntity> deleteFromWishList( + @AuthenticationPrincipal CustomUserDetails userDetails, + @PathVariable(name = "itemId") Long itemId){ + + BaseResponse response; + + try{ + Long userId = userDetails.getMember().getMemberId(); + WishResponseDto result = wishService.removeFromWishList(userId, itemId); + //wishService.deleteFromWishList(userDetails.getMember().getMemberId(),itemId); + + response = new BaseResponse<>(BaseResponseStatus.SUCCESS, result); + return ResponseEntity.ok(response); + }catch(Exception e){ + response = new BaseResponse<>(BaseResponseStatus.INTERNAL_SERVER_ERROR, null); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response); + } + + } + + + } diff --git a/src/main/java/com/gdsc/hearo/domain/item/dto/WishRequestDto.java b/src/main/java/com/gdsc/hearo/domain/item/dto/WishRequestDto.java index a164ee0..95c3518 100644 --- a/src/main/java/com/gdsc/hearo/domain/item/dto/WishRequestDto.java +++ b/src/main/java/com/gdsc/hearo/domain/item/dto/WishRequestDto.java @@ -13,3 +13,4 @@ public class WishRequestDto { private Long itemId; } +//상품 위시리스트에 추가할때도 삭제할 때도 쓰임 \ No newline at end of file diff --git a/src/main/java/com/gdsc/hearo/domain/item/dto/WishResponseDto.java b/src/main/java/com/gdsc/hearo/domain/item/dto/WishResponseDto.java index 2f20b2a..4ef7fbb 100644 --- a/src/main/java/com/gdsc/hearo/domain/item/dto/WishResponseDto.java +++ b/src/main/java/com/gdsc/hearo/domain/item/dto/WishResponseDto.java @@ -12,3 +12,5 @@ public class WishResponseDto { private String result; } + +//상품 위시리스트에 추가할때도 삭제할 때도 쓰임 diff --git a/src/main/java/com/gdsc/hearo/domain/item/repository/WishRepository.java b/src/main/java/com/gdsc/hearo/domain/item/repository/WishRepository.java index d35c9f5..548f1e3 100644 --- a/src/main/java/com/gdsc/hearo/domain/item/repository/WishRepository.java +++ b/src/main/java/com/gdsc/hearo/domain/item/repository/WishRepository.java @@ -1,6 +1,8 @@ package com.gdsc.hearo.domain.item.repository; +import com.gdsc.hearo.domain.item.entity.Item; import com.gdsc.hearo.domain.item.entity.Wish; +import com.gdsc.hearo.domain.member.entity.Member; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; @@ -8,4 +10,7 @@ public interface WishRepository extends JpaRepository { List findByMember_MemberId(Long memberId); + + //void deleteByMember_MemberIdAndItem_ItemId(Long memberId, Long itemId); + void deleteByMemberAndItem(Member member,Item item); } diff --git a/src/main/java/com/gdsc/hearo/domain/item/service/WishService.java b/src/main/java/com/gdsc/hearo/domain/item/service/WishService.java index c46c554..83be2aa 100644 --- a/src/main/java/com/gdsc/hearo/domain/item/service/WishService.java +++ b/src/main/java/com/gdsc/hearo/domain/item/service/WishService.java @@ -10,9 +10,9 @@ import com.gdsc.hearo.domain.item.repository.WishRepository; import com.gdsc.hearo.domain.member.entity.Member; import com.gdsc.hearo.domain.member.repository.MemberRepository; -import com.gdsc.hearo.domain.member.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @@ -76,4 +76,28 @@ public WishListResponseDto getWishList(Long userId){ } + + @Transactional + public WishResponseDto removeFromWishList(Long userId, Long itemId){ + try { + Item item = itemRepository.findById(itemId) + .orElseThrow(() -> new RuntimeException("상품을 찾을 수 없습니다.")); + + + Member member = memberRepository.findById(userId) + .orElseThrow(() -> new RuntimeException("회원을 찾을 수 없습니다.")); + + wishRepository.deleteByMemberAndItem(member,item); + + return WishResponseDto.builder() + .result("위시리스트에서 상품을 삭제하였습니다.") + .build(); + }catch(Exception e) { + e.printStackTrace(); + + return WishResponseDto.builder() + .result("서버 오류") + .build(); + } + } }