From b349f217a7f9ea93dc5b9534ade5b5ca64c8a80e Mon Sep 17 00:00:00 2001 From: sungone <20200999@sungshin.ac.kr> Date: Mon, 17 Apr 2023 18:20:37 +0900 Subject: [PATCH] =?UTF-8?q?#3=20fix=20:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85/=EB=A1=9C=EA=B7=B8=EC=9D=B8=20POST=20RES=20=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 5 ++++ .../controller/UserController.java | 23 +++++++++++++++---- .../com/zatch/zatchserver/domain/User.java | 3 ++- .../zatch/zatchserver/dto/GetUserResDto.java | 11 +++++++++ 4 files changed, 36 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 624f988..9820aea 100644 --- a/build.gradle +++ b/build.gradle @@ -30,9 +30,14 @@ dependencies { runtimeOnly 'com.h2database:h2' implementation 'mysql:mysql-connector-java:8.0.29' + + // swagger implementation 'io.springfox:springfox-swagger2:2.9.2' implementation 'io.springfox:springfox-swagger-ui:2.9.2' + // swagger 어노테이션 라이브러리 + implementation 'io.swagger:swagger-annotations:1.5.21' + } tasks.named('test') { diff --git a/src/main/java/com/zatch/zatchserver/controller/UserController.java b/src/main/java/com/zatch/zatchserver/controller/UserController.java index 211fe7c..57827a4 100644 --- a/src/main/java/com/zatch/zatchserver/controller/UserController.java +++ b/src/main/java/com/zatch/zatchserver/controller/UserController.java @@ -7,15 +7,18 @@ import com.zatch.zatchserver.dto.*; import com.zatch.zatchserver.service.AuthService; import com.zatch.zatchserver.service.UserService; -import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import java.nio.charset.Charset; import java.util.*; @RequiredArgsConstructor @@ -25,8 +28,11 @@ public class UserController { private final UserService userService; private final AuthService authService; + @ApiResponses(value = { + @ApiResponse(code = 200, message = "Success", response = GetUserResDto.class, examples = @Example(@ExampleProperty(value = "{'property1': 'value1', 'property2': 'value2'}", mediaType = MediaType.APPLICATION_JSON_VALUE))) + }) @PostMapping("/new") - @ApiOperation(value = "회원가입", notes = "회원가입 API") + @ApiOperation(value = "회원가입", notes = "회원가입 API", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity postUser(@RequestBody PostUserReqDto postUserReqDto, HttpServletResponse response) { // 이메일을 통해 회원가입 or 로그인 check String isSignup = userService.loginOrSignup(postUserReqDto.getEmail()); @@ -40,15 +46,17 @@ public ResponseEntity postUser(@RequestBody PostUserReqDto postUserReqDto, HttpS Collections.shuffle(adjectives); Collections.shuffle(animals); + String nickname = adjectives.get(0) + " " + animals.get(0); + User newUser = new User( postUserReqDto.getName(), postUserReqDto.getEmail(), - adjectives.get(0) + " " + animals.get(0) + nickname ); userService.join(newUser); - PostUserResDto postUserResDto = new PostUserResDto(newUser.getName(), newUser.getEmail(), adjectives.get(0) + " " + animals.get(0)); + PostUserResDto postUserResDto = new PostUserResDto(newUser.getName(), newUser.getEmail(), nickname); // 토큰 String email = postUserReqDto.getEmail(); @@ -57,7 +65,12 @@ public ResponseEntity postUser(@RequestBody PostUserReqDto postUserReqDto, HttpS response.addHeader("ACCESS_TOKEN", accessToken); String token = userService.token(Long.valueOf(userId), accessToken); - return new ResponseEntity(DefaultRes.res(StatusCode.OK, ResponseMessage.CREATED_USER, postUserReqDto+" / accessToken : "+token+" / userId : "+userId), HttpStatus.OK); + HttpHeaders header = new HttpHeaders(); + header.setContentType(new MediaType("application", "json", Charset.forName("UTF-8"))); + + GetUserResDto getUserResDto = new GetUserResDto(Long.valueOf(userId), postUserReqDto.getName(), nickname, postUserReqDto.getEmail()); + + return ResponseEntity.ok().body(getUserResDto); } // 로그인 diff --git a/src/main/java/com/zatch/zatchserver/domain/User.java b/src/main/java/com/zatch/zatchserver/domain/User.java index 133cafc..0d9d3f6 100644 --- a/src/main/java/com/zatch/zatchserver/domain/User.java +++ b/src/main/java/com/zatch/zatchserver/domain/User.java @@ -1,8 +1,10 @@ package com.zatch.zatchserver.domain; import lombok.Getter; +import lombok.Setter; @Getter +@Setter public class User { private Long id; private String name; @@ -14,7 +16,6 @@ public class User { /*---Constructor---*/ public User(String name, String email, String nickname) { this.name = name; - this.nickname = nickname; this.email = email; this.nickname = nickname; } diff --git a/src/main/java/com/zatch/zatchserver/dto/GetUserResDto.java b/src/main/java/com/zatch/zatchserver/dto/GetUserResDto.java index 547a4c7..9974fe7 100644 --- a/src/main/java/com/zatch/zatchserver/dto/GetUserResDto.java +++ b/src/main/java/com/zatch/zatchserver/dto/GetUserResDto.java @@ -2,11 +2,22 @@ import lombok.AllArgsConstructor; import lombok.Getter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; @Getter @AllArgsConstructor +@ApiModel(description = "User 정보") public class GetUserResDto { + @ApiModelProperty(value = "User Id", example = "1") + private Long user_id; + + @ApiModelProperty(value = "User 이름", example = "김수정") private String name; + + @ApiModelProperty(value = "User 닉네임", example = "행복한 수달") private String nickname; + + @ApiModelProperty(value = "User 이메일", example = "email123@sungshin.ac.kr") private String email; }