From 1a4171060a55affba8aa2449edfef6ef6009de1c Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sat, 13 Mar 2021 18:01:17 +0900 Subject: [PATCH] rest controller practice --- JavaOOP/src/{myObject => poly}/A.java | 0 .../controller/ApiBoardScrapController.java | 17 ++++++++++---- .../board/service/BoardService.java | 2 ++ .../board/service/BoardServiceImpl.java | 23 +++++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) rename JavaOOP/src/{myObject => poly}/A.java (100%) diff --git a/JavaOOP/src/myObject/A.java b/JavaOOP/src/poly/A.java similarity index 100% rename from JavaOOP/src/myObject/A.java rename to JavaOOP/src/poly/A.java diff --git a/rest-controller-practice/src/main/java/com/example/restcontroller/board/controller/ApiBoardScrapController.java b/rest-controller-practice/src/main/java/com/example/restcontroller/board/controller/ApiBoardScrapController.java index f8c8dd19..e92f1df7 100644 --- a/rest-controller-practice/src/main/java/com/example/restcontroller/board/controller/ApiBoardScrapController.java +++ b/rest-controller-practice/src/main/java/com/example/restcontroller/board/controller/ApiBoardScrapController.java @@ -6,10 +6,7 @@ import com.example.restcontroller.common.model.ResponseResult; import com.example.restcontroller.util.JWTUtils; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RequiredArgsConstructor @RestController @@ -30,4 +27,16 @@ public class ApiBoardScrapController { return ResponseResult.result(boardService.scrapBoard(id, email)); } + + @DeleteMapping("/api/scrap/{id}") + public ResponseEntity chapter3_16(@PathVariable Long id, + @RequestHeader("TOKEN") String token) { + String email = ""; + try { + email = JWTUtils.getIssuer(token); + } catch (JWTVerificationException e) { + return ResponseResult.fail("토큰 정보가 정확하지 않습니다."); + } + return ResponseResult.result(boardService.deleteScrapBoard(id, email)); + } } \ No newline at end of file diff --git a/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardService.java b/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardService.java index c9d9d03f..3f0da253 100644 --- a/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardService.java +++ b/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardService.java @@ -35,4 +35,6 @@ public interface BoardService { List boardReportList(); ServiceResult scrapBoard(Long id, String email); + + ServiceResult deleteScrapBoard(Long id, String email); } diff --git a/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardServiceImpl.java b/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardServiceImpl.java index 43a78a5e..24eae639 100644 --- a/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardServiceImpl.java +++ b/rest-controller-practice/src/main/java/com/example/restcontroller/board/service/BoardServiceImpl.java @@ -275,4 +275,27 @@ public class BoardServiceImpl implements BoardService { return ServiceResult.success(); } + + @Transactional + @Override + public ServiceResult deleteScrapBoard(Long id, String email) { + Optional boardScrap = boardScrapRepository.findById(id); + if (!boardScrap.isPresent()) { + return ServiceResult.fail("삭제할 스크랩이 없습니다"); + } + BoardScrap boardScrapEntity = boardScrap.get(); + + Optional optionalUser = userRepository.findByEmail(email); + if (!optionalUser.isPresent()) { + return ServiceResult.fail("회원 정보가 존재하지 않습니다"); + } + User userEntity = optionalUser.get(); + + if (boardScrapEntity.getUser().getId() != userEntity.getId()) { + return ServiceResult.fail("본인의 스크랩만 삭제할 수 있습니다"); + } + + boardScrapRepository.delete(boardScrapEntity); + return ServiceResult.success(); + } }