From 923298ff5cc20633a2b8823ef61d874ccf82c5bc Mon Sep 17 00:00:00 2001 From: jiyeon Date: Sat, 9 Sep 2023 15:46:29 +0900 Subject: [PATCH] feat: Disconnect couple --- .../com/universe/uni/controller/CoupleController.java | 9 +++++++++ .../java/com/universe/uni/service/CoupleService.java | 9 +++++++++ .../com/universe/uni/service/CoupleServiceContract.java | 3 +++ 3 files changed, 21 insertions(+) diff --git a/src/main/java/com/universe/uni/controller/CoupleController.java b/src/main/java/com/universe/uni/controller/CoupleController.java index f26b67b..3514fca 100644 --- a/src/main/java/com/universe/uni/controller/CoupleController.java +++ b/src/main/java/com/universe/uni/controller/CoupleController.java @@ -2,8 +2,10 @@ import org.springframework.http.HttpStatus; import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; @@ -57,4 +59,11 @@ public CoupleConnectionResponseDto checkConnection( ) { return coupleService.checkConnection(userId); } + + @DeleteMapping("") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void disconnectCouple(@AuthenticationPrincipal Long userId) { + coupleService.disconnectCouple(userId); + } + } diff --git a/src/main/java/com/universe/uni/service/CoupleService.java b/src/main/java/com/universe/uni/service/CoupleService.java index 2854ff9..498e9f7 100644 --- a/src/main/java/com/universe/uni/service/CoupleService.java +++ b/src/main/java/com/universe/uni/service/CoupleService.java @@ -106,4 +106,13 @@ public CoupleConnectionResponseDto checkConnection(Long userId) { public void deleteCouple(Long coupleId) { coupleRepository.deleteById(coupleId); } + + @Override + @Transactional + public void disconnectCouple(Long userId) { + final User user = userRepository.findById(userId) + .orElseThrow(() -> new BadRequestException(ErrorType.USER_NOT_EXISTENT)); + final Couple couple = user.getCouple(); + deleteCouple(couple.getId()); + } } diff --git a/src/main/java/com/universe/uni/service/CoupleServiceContract.java b/src/main/java/com/universe/uni/service/CoupleServiceContract.java index b2d6427..59bde3c 100644 --- a/src/main/java/com/universe/uni/service/CoupleServiceContract.java +++ b/src/main/java/com/universe/uni/service/CoupleServiceContract.java @@ -25,4 +25,7 @@ CoupleDto createCoupleByStartDate( @Transactional void deleteCouple(Long coupleId); + + @Transactional + void disconnectCouple(Long userId); }