Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions src/main/java/com/fund/stockProject/auth/service/AuthService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.fund.stockProject.auth.dto.*;
import com.fund.stockProject.user.entity.User;
import com.fund.stockProject.user.repository.UserRepository;
import com.fund.stockProject.experiment.repository.ExperimentRepository;
import com.fund.stockProject.experiment.repository.ExperimentTradeItemRepository;
import com.fund.stockProject.preference.repository.PreferenceRepository;
import com.fund.stockProject.notification.repository.NotificationRepository;
import com.fund.stockProject.notification.repository.UserDeviceTokenRepository;
Expand Down Expand Up @@ -31,6 +33,8 @@ public class AuthService {
private final PreferenceRepository preferenceRepository;
private final NotificationRepository notificationRepository;
private final UserDeviceTokenRepository userDeviceTokenRepository;
private final ExperimentRepository experimentRepository;
private final ExperimentTradeItemRepository experimentTradeItemRepository;
private final RefreshTokenRepository refreshTokenRepository;
private final S3Service s3Service;
private final PasswordEncoder passwordEncoder;
Expand Down Expand Up @@ -74,19 +78,25 @@ public void withdrawUser(String email) {

Integer userId = user.getId();

// 1. Preference 데이터 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제)
// 1. ExperimentTradeItem 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제)
experimentTradeItemRepository.deleteByUserId(userId);

// 2. Experiment 삭제
experimentRepository.deleteByUserId(userId);

// 3. Preference 데이터 삭제
preferenceRepository.deleteByUserId(userId);

// 2. Notification 데이터 삭제
// 4. Notification 데이터 삭제
notificationRepository.deleteByUserId(userId);

// 3. UserDeviceToken 데이터 삭제
// 5. UserDeviceToken 데이터 삭제
userDeviceTokenRepository.deleteByUserId(userId);

// 4. RefreshToken 데이터 삭제 (email 기반)
// 6. RefreshToken 데이터 삭제 (email 기반)
refreshTokenRepository.deleteByEmail(email);

// 5. 마지막으로 User 삭제
// 7. 마지막으로 User 삭제
userRepository.delete(user);
}

Expand Down