Skip to content

Commit

Permalink
#3 feat : Api Response
Browse files Browse the repository at this point in the history
  • Loading branch information
Suanna01 committed Mar 8, 2023
1 parent 5588fdf commit 8632798
Show file tree
Hide file tree
Showing 8 changed files with 121 additions and 46 deletions.
32 changes: 32 additions & 0 deletions src/main/java/com/zatch/zatchserver/DefaultRes.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.zatch.zatchserver;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

@Data
@AllArgsConstructor
@Builder
public class DefaultRes<T> {
private int statusCode;
private String responseMessage;
private T data;

public DefaultRes(final int statusCode, final String responseMessage) {
this.statusCode = statusCode;
this.responseMessage = responseMessage;
this.data = null;
}

public static<T> DefaultRes<T> res(final int statusCode, final String responseMessage) {
return res(statusCode, responseMessage, null);
}

public static<T> DefaultRes<T> res(final int statusCode, final String responseMessage, final T t) {
return DefaultRes.<T>builder()
.data(t)
.statusCode(statusCode)
.responseMessage(responseMessage)
.build();
}
}
13 changes: 13 additions & 0 deletions src/main/java/com/zatch/zatchserver/ResponseMessage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.zatch.zatchserver;

public class ResponseMessage {
public static final String LOGIN_SUCCESS = "로그인 성공";
public static final String LOGIN_FAIL = "로그인 실패";
public static final String READ_USER = "회원 정보 조회 성공";
public static final String NOT_FOUND_USER = "회원을 찾을 수 없습니다.";
public static final String CREATED_USER = "회원 가입 성공";
public static final String UPDATE_USER = "회원 정보 수정 성공";
public static final String DELETE_USER = "회원 탈퇴 성공";
public static final String INTERNAL_SERVER_ERROR = "서버 내부 에러";
public static final String DB_ERROR = "데이터베이스 에러";
}
14 changes: 14 additions & 0 deletions src/main/java/com/zatch/zatchserver/StatusCode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.zatch.zatchserver;

public class StatusCode {
public static final int OK = 200;
public static final int CREATED = 201;
public static final int NO_CONTENT = 204;
public static final int BAD_REQUEST = 400;
public static final int UNAUTHORIZED = 401;
public static final int FORBIDDEN = 403;
public static final int NOT_FOUND = 404;
public static final int INTERNAL_SERVER_ERROR = 500;
public static final int SERVICE_UNAVAILABLE = 503;
public static final int DB_ERROR = 600;
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse

// 예외
}
String accessToken = getJwt(request);

// accessToken이 유효하지 않을 경우
if (!jwtProvider.validate(accessToken)) {
//예외
}

addUserIdToRequest(jwtProvider.parse(accessToken), request);
filterChain.doFilter(request, response);
// String accessToken = getJwt(request);
//
// // accessToken이 유효하지 않을 경우
// if (!jwtProvider.validate(accessToken)) {
// //예외
// }
//
// addUserIdToRequest(jwtProvider.parse(accessToken), request);
// filterChain.doFilter(request, response);


}
Expand Down Expand Up @@ -71,4 +71,4 @@ private String getJwt(HttpServletRequest request) {
String authorizationHeader = request.getHeader("Authorization");
return authorizationHeader.substring(7);
}
}
}
70 changes: 37 additions & 33 deletions src/main/java/com/zatch/zatchserver/controller/UserController.java
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package com.zatch.zatchserver.controller;

import com.zatch.zatchserver.config.SessionManager;
import com.zatch.zatchserver.DefaultRes;
import com.zatch.zatchserver.ResponseMessage;
import com.zatch.zatchserver.StatusCode;
import com.zatch.zatchserver.domain.User;
import com.zatch.zatchserver.dto.*;
import com.zatch.zatchserver.repository.UserRepository;
import com.zatch.zatchserver.service.AuthService;
import com.zatch.zatchserver.service.UserService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpSession;
import java.util.*;

@RequiredArgsConstructor
@RestController
Expand All @@ -22,41 +24,43 @@ public class UserController {
private final UserService userService;
private final AuthService authService;

@GetMapping("/{userId}")
@ApiOperation(value = "회원 조회", notes = "회원 id로 회원 조회 API")
public GetUserResDto getUser(@PathVariable("userId") Long userId) {
User findUser = userService.getOneById(userId);

return new GetUserResDto(findUser.getName(), findUser.getNickname(), findUser.getEmail());
}

@GetMapping("/all")
@ApiOperation(value = "전체 회원 조회", notes = "전체 회원 조회 API")
public List<GetUserResDto> getAllUsers() {
List<User> findUsers = userService.getAll();

List<GetUserResDto> getUserResDtos = new ArrayList<>();
for (User findUser : findUsers) {
getUserResDtos.add(new GetUserResDto(findUser.getName(), findUser.getNickname(),
findUser.getEmail()));
}

return getUserResDtos;
}

@PostMapping("/new")
@ApiOperation(value = "회원가입", notes = "회원가입 API")
public PostUserResDto postUser(@RequestBody PostUserReqDto postUserReqDto) {
public ResponseEntity postUser(@RequestBody PostUserReqDto postUserReqDto) {
List<String> adjectives = Arrays.asList("귀여운", "당황한", "어리둥절", "깜찍한", "동글동글", "초롱초롱", "배고픈", "의아한", "놀라운", "어여쁜", "차분한", "한가한", "화려한", "깨끗한",
"정직한", "활발한", "긍정적인", "낙천적인", "다정한", "단호한", "겸손한", "매력적인", "발랄한", "민첩한", "상냥한", "솔직한", "신중한", "용감한", "수줍은", "소중한");
List<String> animals = Arrays.asList("강아지", "거북이", "고래", "고양이", "공작", "기린", "까치", "낙타", "너구리", "늑대", "다람쥐", "부엉이", "사슴", "사자", "새우", "수달", "순록",
"악어", "여우", "오리", "올빼미", "청설모", "치타", "코끼리", "토끼", "팬더", "펭귄", "표범", "햄스터", "호랑이");
Collections.shuffle(adjectives);
Collections.shuffle(animals);

User newUser = new User(
postUserReqDto.getName(),
postUserReqDto.getNickname(),
postUserReqDto.getEmail(),
postUserReqDto.getPassword()
adjectives.get(0) + " " + animals.get(0)
);

userService.join(newUser);

return new PostUserResDto(newUser.getName(), newUser.getEmail());
PostUserResDto postUserResDto = new PostUserResDto(newUser.getName(), newUser.getEmail(), adjectives.get(0) + " " + animals.get(0));

return new ResponseEntity(DefaultRes.res(StatusCode.OK, ResponseMessage.CREATED_USER, postUserReqDto), HttpStatus.OK);
}

// @GetMapping("/{email}/login")
// @ApiOperation(value = "로그인", notes = "로그인 API")
// public GetUserReqDto getLogin(@PathVariable("email") String email) {
// userService.getUser(email);
// System.out.println("here : "+userService.getUser(email));
// return new GetUserReqDto(email);
// }

@GetMapping("/logout")
@ApiOperation(value="로그아웃", notes = "로그아웃 API")
public String logout(HttpServletRequest request) throws Exception{
HttpSession session = request.getSession();
session.invalidate();
return "logout";
}

@PatchMapping("/{userId}/nickname")
Expand All @@ -72,9 +76,9 @@ public PatchUserNicknameResDto patchNickname(@PathVariable("userId") Long userId

@GetMapping("/{userId}/profile")
@ApiOperation(value = "회원 프로필", notes = "회원 프로필 API")
public GetProfileResDTO getProfile(@PathVariable("userId") Long userId) {
public GetProfileResDto getProfile(@PathVariable("userId") Long userId) {
String userNickname = userService.profile(userId);
return new GetProfileResDTO(userNickname);
return new GetProfileResDto(userNickname);
}

@PostMapping("/{userId}/town")
Expand Down
5 changes: 2 additions & 3 deletions src/main/java/com/zatch/zatchserver/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@ public class User {
private String town;

/*---Constructor---*/
public User(String name, String nickname, String email, String password) {
public User(String name, String email, String nickname) {
this.name = name;
this.nickname = nickname;
this.email = email;
this.password = password;
this.nickname = nickname;
}

/*---Setter---*/
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/com/zatch/zatchserver/dto/GetUserReqDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.zatch.zatchserver.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public class GetUserReqDto {
private String email;
}
3 changes: 3 additions & 0 deletions src/main/java/com/zatch/zatchserver/dto/PostUserResDto.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.zatch.zatchserver.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

@Getter
@AllArgsConstructor
@Data
public class PostUserResDto {
String name;
String email;
String nickname;
}

0 comments on commit 8632798

Please sign in to comment.