From 9ce94cad85f31e44f814a6b801b123ea06b01b40 Mon Sep 17 00:00:00 2001 From: Yujiseul <98597009+Yujiseul@users.noreply.github.com> Date: Wed, 29 Jun 2022 17:45:40 +0900 Subject: [PATCH] =?UTF-8?q?User=20=ED=83=88=ED=87=B4=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/bouquet/api/user/dto/UserResponse.java | 17 +++++++++++++++++ .../bouquet/api/user/service/UserService.java | 10 +++++++++- .../bouquet/api/user/web/UserController.java | 17 ++++++++++++----- 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/api/src/main/java/com/bouquet/api/user/dto/UserResponse.java b/api/src/main/java/com/bouquet/api/user/dto/UserResponse.java index e51d636..a3a50e5 100644 --- a/api/src/main/java/com/bouquet/api/user/dto/UserResponse.java +++ b/api/src/main/java/com/bouquet/api/user/dto/UserResponse.java @@ -1,9 +1,26 @@ package com.bouquet.api.user.dto; +import com.bouquet.api.post.dto.Post; +import com.bouquet.api.post.dto.PostResponse; import lombok.*; public class UserResponse { + @Getter + @Builder + @NoArgsConstructor(access = AccessLevel.PRIVATE) + @AllArgsConstructor(access = AccessLevel.PRIVATE) + public static class OnlyId { + private long id; + public static UserResponse.OnlyId build(User user) { + return UserResponse.OnlyId.builder() + .id(user.getId()) + .build(); + } + } + + + @Getter @Builder @NoArgsConstructor(access = AccessLevel.PRIVATE) diff --git a/api/src/main/java/com/bouquet/api/user/service/UserService.java b/api/src/main/java/com/bouquet/api/user/service/UserService.java index 6d479fa..7a84485 100644 --- a/api/src/main/java/com/bouquet/api/user/service/UserService.java +++ b/api/src/main/java/com/bouquet/api/user/service/UserService.java @@ -1,8 +1,12 @@ package com.bouquet.api.user.service; +import com.bouquet.api.message.dto.Message; +import com.bouquet.api.message.dto.MessageResponse; +import com.bouquet.api.message.exception.MessageNotFoundException; import com.bouquet.api.user.dto.User; import com.bouquet.api.user.dto.UserResponse; +import com.bouquet.api.user.exception.UserNotFoundException; import com.bouquet.api.user.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -37,6 +41,10 @@ public HashMap checknick(){ return result; } - + public UserResponse.OnlyId delete(Long id) { + User user = userRepository.findById(id).orElseThrow(UserNotFoundException::new); + userRepository.deleteById(id); + return UserResponse.OnlyId.build(user); + } } diff --git a/api/src/main/java/com/bouquet/api/user/web/UserController.java b/api/src/main/java/com/bouquet/api/user/web/UserController.java index aa0ed8c..af6c65b 100644 --- a/api/src/main/java/com/bouquet/api/user/web/UserController.java +++ b/api/src/main/java/com/bouquet/api/user/web/UserController.java @@ -1,6 +1,8 @@ package com.bouquet.api.user.web; +import com.bouquet.api.post.dto.PostResponse; +import com.bouquet.api.post.service.PostService; import com.bouquet.api.user.dto.KakaoTokenInfo; import com.bouquet.api.user.dto.KakaoUserInfo; import com.bouquet.api.user.dto.User; @@ -12,9 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpSession; import java.util.HashMap; @@ -29,6 +29,8 @@ public class UserController { @Autowired private UserRepository userRepository; + private final UserService userService; + //프론트에서 인증 코드를 보내주면 카카오 서버와 통신하고 사용자 정보를 조회한다. @RequestMapping("kakaoLogin") public ResponseEntity kakaoLogin(String code, HttpSession httpSession) { @@ -60,8 +62,6 @@ public ResponseEntity kakaoLogin(String code, HttpSession httpSession) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } - private final UserService userService; - @GetMapping(value = "/login/user/nickname") public ResponseEntity getUser(String nickname){ UserResponse.UserInfo response = userService.create(nickname); @@ -74,4 +74,11 @@ public ResponseEntity> loginComplete(HttpSession session) { return new ResponseEntity>(result, HttpStatus.OK); } + @DeleteMapping(value = "/user/{userId}") + public ResponseEntity delete(@PathVariable Long userId) { + UserResponse.OnlyId response = userService.delete(userId); + return ResponseEntity.ok().body(response); + } + + }