Skip to content

Commit

Permalink
Merge pull request #137 from onetime-with-members/feature/#132/add-an…
Browse files Browse the repository at this point in the history
…notation

[style] : 주석 및 개행 문자를 추가한다
  • Loading branch information
bbbang105 authored Dec 10, 2024
2 parents 8936f7f + 4d61fb8 commit 000dc2a
Show file tree
Hide file tree
Showing 100 changed files with 689 additions and 206 deletions.
2 changes: 1 addition & 1 deletion src/main/java/side/onetime/auth/constant/Provider.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ public enum Provider {
public String getProvider() {
return provider;
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/side/onetime/auth/dto/GoogleUserInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ public String getName() {
public String getEmail() {
return (String) attributes.get("email");
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/side/onetime/auth/dto/KakaoUserInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ public String getName() {
public String getEmail() {
return (String) ((Map) attributes.get("kakao_account")).get("email");
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/side/onetime/auth/dto/NaverUserInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ public String getName() {
public String getEmail() {
return (String) attributes.get("email");
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/side/onetime/auth/dto/OAuth2UserInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ public interface OAuth2UserInfo {
String getProvider();
String getName();
String getEmail();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,21 @@
@RequiredArgsConstructor
public class OAuthLoginFailureHandler extends SimpleUrlAuthenticationFailureHandler {

/**
* 로그인 실패 처리 메서드.
*
* 인증 실패가 발생했을 때 호출됩니다.
* 실패 원인을 로그로 기록하며, 부모 클래스의 기본 실패 처리 로직을 실행합니다.
*
* @param request HttpServletRequest 객체
* @param response HttpServletResponse 객체
* @param exception AuthenticationException 객체 (인증 실패 원인)
* @throws IOException 입출력 예외
* @throws ServletException 서블릿 예외
*/
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException {
log.error("LOGIN FAILED : {}", exception.getMessage());
super.onAuthenticationFailure(request, response, exception);

// 추후 구현
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,17 @@ public class OAuthLoginSuccessHandler extends SimpleUrlAuthenticationSuccessHand
private final UserRepository userRepository;
private final RefreshTokenRepository refreshTokenRepository;

/**
* OAuth2 인증 성공 처리 메서드.
*
* 인증 성공 시 OAuth2AuthenticationToken을 기반으로 제공자 정보를 추출하고,
* 인증 결과를 처리합니다.
*
* @param request HttpServletRequest 객체
* @param response HttpServletResponse 객체
* @param authentication 인증 성공 정보를 담은 객체
* @throws IOException 인증 처리 중 발생할 수 있는 입출력 예외
*/
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException {
OAuth2AuthenticationToken token = (OAuth2AuthenticationToken) authentication;
Expand All @@ -57,7 +68,15 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
handleAuthentication(request, response, oAuth2UserInfo, provider);
}

// OAuth2UserInfo 추출
/**
* OAuth2 사용자 정보 추출 메서드.
*
* 제공자(provider)에 따라 적합한 OAuth2UserInfo 객체를 생성합니다.
*
* @param token OAuth2AuthenticationToken 객체
* @param provider OAuth2 제공자 이름 (google, kakao, naver 등)
* @return OAuth2UserInfo 객체
*/
private OAuth2UserInfo extractOAuth2UserInfo(OAuth2AuthenticationToken token, String provider) {
switch (provider) {
case "google":
Expand All @@ -74,7 +93,17 @@ private OAuth2UserInfo extractOAuth2UserInfo(OAuth2AuthenticationToken token, St
}
}

// 인증 처리
/**
* 인증 성공 처리 메서드.
*
* 인증된 사용자의 정보를 바탕으로 신규 또는 기존 사용자를 처리합니다.
*
* @param request HttpServletRequest 객체
* @param response HttpServletResponse 객체
* @param oAuth2UserInfo OAuth2 사용자 정보 객체
* @param provider OAuth2 제공자 이름
* @throws IOException 인증 처리 중 발생할 수 있는 입출력 예외
*/
private void handleAuthentication(HttpServletRequest request, HttpServletResponse response, OAuth2UserInfo oAuth2UserInfo, String provider) throws IOException {
String providerId = oAuth2UserInfo.getProviderId();
String name = oAuth2UserInfo.getName();
Expand All @@ -83,10 +112,8 @@ private void handleAuthentication(HttpServletRequest request, HttpServletRespons
User existUser = userRepository.findByProviderId(providerId);

if (existUser == null) {
// 신규 유저 처리
handleNewUser(request, response, provider, providerId, name, email);
} else {
// 기존 유저 처리
handleExistingUser(request, response, existUser);
}

Expand All @@ -96,32 +123,60 @@ private void handleAuthentication(HttpServletRequest request, HttpServletRespons
log.info("EMAIL : {}", email);
}

// 신규 유저 처리
/**
* 신규 유저 처리 메서드.
*
* OAuth2 인증을 통해 새로 가입한 사용자를 처리하고,
* 회원가입 완료를 위한 리다이렉트를 수행합니다.
*
* @param request HttpServletRequest 객체
* @param response HttpServletResponse 객체
* @param provider OAuth2 제공자 이름
* @param providerId 제공자 고유 ID
* @param name 사용자 이름
* @param email 사용자 이메일
* @throws IOException 인증 처리 중 발생할 수 있는 입출력 예외
*/
private void handleNewUser(HttpServletRequest request, HttpServletResponse response, String provider, String providerId, String name, String email) throws IOException {
log.info("신규 유저입니다.");
String registerToken = jwtUtil.generateRegisterToken(provider, providerId, name, email, REGISTER_TOKEN_EXPIRATION_TIME);
String redirectUri = String.format(REGISTER_TOKEN_REDIRECT_URI, registerToken, URLEncoder.encode(name, StandardCharsets.UTF_8));
getRedirectStrategy().sendRedirect(request, response, redirectUri);
}

// 기존 유저 처리
/**
* 기존 유저 처리 메서드.
*
* OAuth2 인증을 통해 로그인한 기존 사용자를 처리하고,
* 액세스 및 리프레쉬 토큰을 발급하여 리다이렉트를 수행합니다.
*
* @param request HttpServletRequest 객체
* @param response HttpServletResponse 객체
* @param user 기존 사용자 정보
* @throws IOException 인증 처리 중 발생할 수 있는 입출력 예외
*/
private void handleExistingUser(HttpServletRequest request, HttpServletResponse response, User user) throws IOException {
log.info("기존 유저입니다.");
Long userId = user.getId();

// 액세스 & 리프레쉬 토큰 발급 및 저장
String accessToken = jwtUtil.generateAccessToken(userId, ACCESS_TOKEN_EXPIRATION_TIME);
String refreshToken = jwtUtil.generateRefreshToken(userId, REFRESH_TOKEN_EXPIRATION_TIME);
saveRefreshToken(userId, refreshToken);

// 리다이렉트 처리
String redirectUri = String.format(ACCESS_TOKEN_REDIRECT_URI, accessToken, refreshToken);
getRedirectStrategy().sendRedirect(request, response, redirectUri);
}

// Refresh Token 저장
/**
* Refresh Token 저장 메서드.
*
* 사용자의 리프레쉬 토큰을 데이터베이스에 저장합니다.
*
* @param userId 사용자 ID
* @param refreshToken 리프레쉬 토큰 값
*/
private void saveRefreshToken(Long userId, String refreshToken) {
RefreshToken newRefreshToken = new RefreshToken(userId, refreshToken);
refreshTokenRepository.save(newRefreshToken);
}
}
}
14 changes: 7 additions & 7 deletions src/main/java/side/onetime/controller/FixedController.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class FixedController {
private final FixedScheduleService fixedScheduleService;

/**
* 고정 이벤트 생성 및 고정 스케줄 등록 API
* 고정 이벤트 생성 및 고정 스케줄 등록 API.
*
* 이 API는 새로운 고정 이벤트를 생성하고 관련된 고정 스케줄을 등록합니다.
*
Expand All @@ -42,7 +42,7 @@ public ResponseEntity<ApiResponse<Object>> createFixedEvent(
}

/**
* 전체 고정 스케줄 조회 API
* 전체 고정 스케줄 조회 API.
*
* 이 API는 유저가 등록한 모든 고정 스케줄을 조회합니다.
*
Expand All @@ -58,7 +58,7 @@ public ResponseEntity<ApiResponse<List<FixedEventResponse>>> getAllFixedSchedule
}

/**
* 특정 고정 스케줄 상세 조회 API
* 특정 고정 스케줄 상세 조회 API.
*
* 이 API는 특정 ID에 해당하는 고정 스케줄의 상세 정보를 조회합니다.
*
Expand All @@ -76,7 +76,7 @@ public ResponseEntity<ApiResponse<FixedEventDetailResponse>> getFixedScheduleDet
}

/**
* 고정 이벤트 또는 스케줄 수정 API
* 고정 이벤트 또는 스케줄 수정 API.
*
* 이 API는 특정 고정 이벤트의 제목과 스케줄을 수정할 수 있습니다.
*
Expand All @@ -102,7 +102,7 @@ public ResponseEntity<ApiResponse<Object>> modifyFixedEvent(
}

/**
* 고정 이벤트 & 스케줄 삭제 API
* 고정 이벤트 & 스케줄 삭제 API.
*
* 이 API는 특정 ID에 해당하는 고정 이벤트와 관련된 스케줄을 삭제합니다.
*
Expand All @@ -120,7 +120,7 @@ public ResponseEntity<ApiResponse<Object>> removeFixedEvent(
}

/**
* 요일별 고정 이벤트 조회 API
* 요일별 고정 이벤트 조회 API.
*
* 이 API는 특정 요일에 해당하는 고정 이벤트 목록을 조회합니다.
*
Expand All @@ -136,4 +136,4 @@ public ResponseEntity<ApiResponse<List<FixedEventByDayResponse>>> getFixedEventB
List<FixedEventByDayResponse> response = fixedEventService.getFixedEventByDay(authorizationHeader, day);
return ApiResponse.onSuccess(SuccessStatus._GET_FIXED_EVENT_BY_DAY, response);
}
}
}
8 changes: 4 additions & 4 deletions src/main/java/side/onetime/controller/MemberController.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class MemberController {
private final MemberService memberService;

/**
* 멤버 등록 API
* 멤버 등록 API.
*
* 이 API는 새로운 멤버를 등록합니다. 멤버가 속한 이벤트 ID와 이름, PIN, 스케줄 목록을 받습니다.
*
Expand All @@ -40,7 +40,7 @@ public ResponseEntity<ApiResponse<RegisterMemberResponse>> registerMember(
}

/**
* 멤버 로그인 API
* 멤버 로그인 API.
*
* 이 API는 멤버의 로그인 정보를 확인하고, 로그인에 성공한 경우 멤버의 정보를 반환합니다.
*
Expand All @@ -56,7 +56,7 @@ public ResponseEntity<ApiResponse<LoginMemberResponse>> loginMember(
}

/**
* 이름 중복 확인 API
* 이름 중복 확인 API.
*
* 이 API는 특정 이벤트에서 지정한 이름이 중복되는지 확인합니다.
*
Expand All @@ -70,4 +70,4 @@ public ResponseEntity<ApiResponse<IsDuplicateResponse>> isDuplicate(
IsDuplicateResponse isDuplicateResponse = memberService.isDuplicate(isDuplicateRequest);
return ApiResponse.onSuccess(SuccessStatus._IS_POSSIBLE_NAME, isDuplicateResponse);
}
}
}
22 changes: 11 additions & 11 deletions src/main/java/side/onetime/controller/ScheduleController.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class ScheduleController {
private final ScheduleService scheduleService;

/**
* 요일 스케줄 등록 API
* 요일 스케줄 등록 API.
*
* 요일별 반복되는 스케줄을 등록하는 API입니다.
* 인증된 사용자와 비인증 사용자에 따라 스케줄 생성 방식이 다릅니다.
Expand All @@ -45,7 +45,7 @@ public ResponseEntity<ApiResponse<SuccessStatus>> createDaySchedules(
}

/**
* 날짜 스케줄 등록 API
* 날짜 스케줄 등록 API.
*
* 특정 날짜에 대한 스케줄을 등록하는 API입니다.
* 인증된 사용자와 비인증 사용자에 따라 스케줄 생성 방식이 다릅니다.
Expand All @@ -68,7 +68,7 @@ public ResponseEntity<ApiResponse<SuccessStatus>> createDateSchedules(
}

/**
* 전체 요일 스케줄 조회 API
* 전체 요일 스케줄 조회 API.
*
* 특정 이벤트에 등록된 모든 요일 스케줄을 조회합니다.
*
Expand All @@ -84,7 +84,7 @@ public ResponseEntity<ApiResponse<List<PerDaySchedulesResponse>>> getAllDaySched
}

/**
* 개인 요일 스케줄 조회 API (비로그인)
* 개인 요일 스케줄 조회 API (비로그인).
*
* 비로그인 사용자의 특정 이벤트에 대한 개인 요일 스케줄을 조회합니다.
*
Expand All @@ -102,7 +102,7 @@ public ResponseEntity<ApiResponse<PerDaySchedulesResponse>> getMemberDaySchedule
}

/**
* 개인 요일 스케줄 조회 API (로그인)
* 개인 요일 스케줄 조회 API (로그인).
*
* 인증된 사용자의 특정 이벤트에 대한 개인 요일 스케줄을 조회합니다.
*
Expand All @@ -120,7 +120,7 @@ public ResponseEntity<ApiResponse<PerDaySchedulesResponse>> getUserDaySchedules(
}

/**
* 멤버 필터링 요일 스케줄 조회 API
* 멤버 필터링 요일 스케줄 조회 API.
*
* 멤버 이름을 필터링하여 특정 이벤트의 요일 스케줄을 조회합니다.
*
Expand All @@ -136,7 +136,7 @@ public ResponseEntity<ApiResponse<List<PerDaySchedulesResponse>>> getFilteredDay
}

/**
* 전체 날짜 스케줄 조회 API
* 전체 날짜 스케줄 조회 API.
*
* 특정 이벤트에 등록된 모든 날짜 스케줄을 조회합니다.
*
Expand All @@ -152,7 +152,7 @@ public ResponseEntity<ApiResponse<List<PerDateSchedulesResponse>>> getAllDateSch
}

/**
* 개인 날짜 스케줄 조회 API (비로그인)
* 개인 날짜 스케줄 조회 API (비로그인).
*
* 비로그인 사용자의 특정 이벤트에 대한 개인 날짜 스케줄을 조회합니다.
*
Expand All @@ -170,7 +170,7 @@ public ResponseEntity<ApiResponse<PerDateSchedulesResponse>> getMemberDateSchedu
}

/**
* 개인 날짜 스케줄 조회 API (로그인)
* 개인 날짜 스케줄 조회 API (로그인).
*
* 인증된 사용자의 특정 이벤트에 대한 개인 날짜 스케줄을 조회합니다.
*
Expand All @@ -188,7 +188,7 @@ public ResponseEntity<ApiResponse<PerDateSchedulesResponse>> getUserDateSchedule
}

/**
* 멤버 필터링 날짜 스케줄 조회 API
* 멤버 필터링 날짜 스케줄 조회 API.
*
* 멤버 이름을 필터링하여 특정 이벤트의 날짜 스케줄을 조회합니다.
*
Expand All @@ -202,4 +202,4 @@ public ResponseEntity<ApiResponse<List<PerDateSchedulesResponse>>> getFilteredDa
List<PerDateSchedulesResponse> perDateSchedulesResponses = scheduleService.getFilteredDateSchedules(getFilteredSchedulesRequest);
return ApiResponse.onSuccess(SuccessStatus._GET_FILTERED_DATE_SCHEDULES, perDateSchedulesResponses);
}
}
}
Loading

0 comments on commit 000dc2a

Please sign in to comment.