diff --git a/src/main/java/com/example/calpick/domain/dto/auth/response/KakaoUserInfoResponse.java b/src/main/java/com/example/calpick/domain/dto/auth/response/KakaoUserInfoResponse.java index d1a8a85..d15ab88 100644 --- a/src/main/java/com/example/calpick/domain/dto/auth/response/KakaoUserInfoResponse.java +++ b/src/main/java/com/example/calpick/domain/dto/auth/response/KakaoUserInfoResponse.java @@ -25,6 +25,9 @@ public class KakaoUserInfoResponse { @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public static class KakaoAccount { + @JsonProperty("email") + public String email; + @JsonProperty("profile") private Profile profile; @@ -43,7 +46,4 @@ public static class Profile { public String profileImageUrl; } } - - @JsonProperty("email") - public String email; } \ No newline at end of file diff --git a/src/main/java/com/example/calpick/domain/repository/UserRepository.java b/src/main/java/com/example/calpick/domain/repository/UserRepository.java index 7f35fc3..8f24b22 100644 --- a/src/main/java/com/example/calpick/domain/repository/UserRepository.java +++ b/src/main/java/com/example/calpick/domain/repository/UserRepository.java @@ -22,7 +22,7 @@ public interface UserRepository extends JpaRepository { @Query( value = " select user_id, email, password, name, profile_url, user_status, login_types, created_at, modified_at, deleted_at, share_token, kakao_id " + - " from users where kakao_id=:kakaoId", + " from users where kakao_id=:kakaoId and user_status='ACTIVE' ", nativeQuery = true ) Optional findByUid(@Param("kakaoId") Long kakaoId); diff --git a/src/main/java/com/example/calpick/domain/service/impl/AuthServiceImpl.java b/src/main/java/com/example/calpick/domain/service/impl/AuthServiceImpl.java index 9b902c5..09c584a 100644 --- a/src/main/java/com/example/calpick/domain/service/impl/AuthServiceImpl.java +++ b/src/main/java/com/example/calpick/domain/service/impl/AuthServiceImpl.java @@ -83,6 +83,7 @@ public void withdraw(String email, HttpServletResponse response) { // SOFT DELETE user.setDeletedAt(LocalDateTime.now()); user.setUserStatus(UserStatus.DELETED); + user.setEmail(null); userRepository.save(user); ResponseCookie deleteCookie = ResponseCookie.from("refreshToken", "") diff --git a/src/main/java/com/example/calpick/domain/service/impl/KakaoService.java b/src/main/java/com/example/calpick/domain/service/impl/KakaoService.java index 839a117..dbc4213 100644 --- a/src/main/java/com/example/calpick/domain/service/impl/KakaoService.java +++ b/src/main/java/com/example/calpick/domain/service/impl/KakaoService.java @@ -107,7 +107,7 @@ public LoginResponse kakaoLogin(User user){ @Transactional public LoginResponse kakaoSignIn(KakaoUserInfoResponse infoResponse) { // 이메일로 유저를 찾음 -> 없으면 입력받은 것으로 생성 - User user = userRepository.findByEmail(infoResponse.getEmail()) + User user = userRepository.findByEmail(infoResponse.getKakaoAccount().getEmail()) .orElseGet(()->createNewUser(infoResponse)); if (user.getKakaoId() == null){ // 카카오 로그인 한 적 없는 사람 @@ -122,7 +122,7 @@ public LoginResponse kakaoSignIn(KakaoUserInfoResponse infoResponse) { public User createNewUser(KakaoUserInfoResponse request){ LocalDateTime now = LocalDateTime.now(); return User.builder() - .email(request.getEmail()) + .email(request.getKakaoAccount().getEmail()) .name(request.getKakaoAccount().getProfile().getName()) .userStatus(UserStatus.ACTIVE) .createdAt(now) diff --git a/src/main/java/com/example/calpick/domain/service/impl/ScheduleServiceImpl.java b/src/main/java/com/example/calpick/domain/service/impl/ScheduleServiceImpl.java index 7778aaf..1fefca9 100644 --- a/src/main/java/com/example/calpick/domain/service/impl/ScheduleServiceImpl.java +++ b/src/main/java/com/example/calpick/domain/service/impl/ScheduleServiceImpl.java @@ -11,6 +11,7 @@ import com.example.calpick.domain.entity.enums.ColorTypes; import com.example.calpick.domain.entity.enums.RepeatRule; import com.example.calpick.domain.entity.enums.RepeatType; +import com.example.calpick.domain.entity.enums.UserStatus; import com.example.calpick.domain.repository.ScheduleRepository; import com.example.calpick.domain.repository.UserRepository; import com.example.calpick.domain.service.ScheduleService; @@ -127,6 +128,8 @@ public CalenderResponseDto getOwnCalendar(CustomUserDetails userDetails, LocalDa @Override public CalenderResponseDto getOtherCalendar(CustomUserDetails userDetails, Long calendarUserId, LocalDate startDate, LocalDate endDate) { User owner = userRepository.findById(calendarUserId).orElseThrow(()->new CalPickException(ErrorCode.SCHEDULE_NOT_FOUND)); + if (owner.getUserStatus() != UserStatus.ACTIVE) throw new CalPickException(ErrorCode.SCHEDULE_NOT_FOUND); + CalenderResponseDto responseDto = new CalenderResponseDto(); if (userDetails == null || !userDetails.getEmail().equals(owner.getEmail())) responseDto.setOwner(false); else responseDto.setOwner(true);