From 75557b58e29f9e930f720c016de22e84a9008bea Mon Sep 17 00:00:00 2001 From: yslim21 Date: Wed, 7 Feb 2024 12:01:42 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EC=83=81=ED=92=88=20=EC=B0=9C=20?= =?UTF-8?q?=EC=83=81=ED=92=88=20=EC=82=AD=EC=A0=9C=20=EA=B5=AC=ED=98=841?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gdsc/hearo/HearoApplication.java | 8 ++++++ .../item/controller/WishController.java | 25 +++++++++++++++++- .../hearo/domain/item/dto/WishRequestDto.java | 1 + .../domain/item/dto/WishResponseDto.java | 2 ++ .../item/repository/WishRepository.java | 5 ++++ .../domain/item/service/WishService.java | 26 ++++++++++++++++++- 6 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gdsc/hearo/HearoApplication.java b/src/main/java/com/gdsc/hearo/HearoApplication.java index 04ef814..e7f84c0 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,7 +12,13 @@ public class HearoApplication { public static void main(String[] args) { + SpringApplication.run(HearoApplication.class, args); } + @Bean + public HiddenHttpMethodFilter hiddenHttpMethodFilter(){ + return new HiddenHttpMethodFilter(); + } + } 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(); + } + } } From 54721f2d22f4f1c7d80432e32312bfc29574c7d2 Mon Sep 17 00:00:00 2001 From: yslim21 Date: Wed, 7 Feb 2024 12:03:16 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=83=81=ED=92=88=20=EC=B0=9C=20?= =?UTF-8?q?=EC=83=81=ED=92=88=20=EC=82=AD=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/gdsc/hearo/HearoApplication.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/com/gdsc/hearo/HearoApplication.java b/src/main/java/com/gdsc/hearo/HearoApplication.java index e7f84c0..13fc47e 100644 --- a/src/main/java/com/gdsc/hearo/HearoApplication.java +++ b/src/main/java/com/gdsc/hearo/HearoApplication.java @@ -16,9 +16,4 @@ public static void main(String[] args) { SpringApplication.run(HearoApplication.class, args); } - @Bean - public HiddenHttpMethodFilter hiddenHttpMethodFilter(){ - return new HiddenHttpMethodFilter(); - } - }