Skip to content

Commit 01d3321

Browse files
committed
refactor: 자녀/부모 프로필 검증 함수 분리하고 재사용하도록 리팩토링
1 parent d4bcb7c commit 01d3321

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/main/java/everTale/everTale_be/domain/profile/service/ProfileService.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import everTale.everTale_be.global.apiPayload.exception.handler.BadRequestHandler;
2020
import everTale.everTale_be.global.apiPayload.exception.handler.NotFoundHandler;
2121
import everTale.everTale_be.global.apiPayload.exception.handler.UnAuthorizedHandler;
22-
import org.springframework.core.io.support.SpringFactoriesLoader;
2322
import org.springframework.security.crypto.password.PasswordEncoder;
2423
import lombok.RequiredArgsConstructor;
2524
import org.springframework.stereotype.Service;
@@ -152,4 +151,17 @@ public void deleteProfile(String accessToken){
152151
tokenAuthService.addToBlackListForAccessToken(accessToken, "WITHDRAW");
153152
profileRepository.anonymizeProfile(profileId);
154153
}
154+
155+
public void validateChildProfileAccess(Profile profile, Long profileId) {
156+
if (!profile.getId().equals(profileId)) {
157+
throw new UnAuthorizedHandler(ErrorStatus.UNAUTHORIZED_PROFILE_ACCESS);
158+
}
159+
}
160+
161+
public void validateParentProfileAccess(Profile parent, Long profileId) {
162+
boolean isMyChild = profileRepository.existsByUserIdAndId(parent.getUser().getId(), profileId);
163+
if (!isMyChild) {
164+
throw new UnAuthorizedHandler(ErrorStatus.UNAUTHORIZED_PROFILE_ACCESS);
165+
}
166+
}
155167
}

src/main/java/everTale/everTale_be/domain/story/service/StoryService.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import everTale.everTale_be.domain.easterEgg.entity.EasterEggVoice;
99
import everTale.everTale_be.domain.profile.entity.Enum.ProfileType;
1010
import everTale.everTale_be.domain.profile.entity.Profile;
11-
import everTale.everTale_be.domain.profile.repository.ProfileRepository;
11+
import everTale.everTale_be.domain.profile.service.ProfileService;
1212
import everTale.everTale_be.domain.profile.util.ProfileHelper;
1313
import everTale.everTale_be.domain.story.dto.SceneResponseDTO;
1414
import everTale.everTale_be.domain.story.dto.StoryCollectionResponseDto;
@@ -21,7 +21,6 @@
2121
import everTale.everTale_be.global.apiPayload.code.status.ErrorStatus;
2222
import everTale.everTale_be.global.apiPayload.exception.handler.NotFoundHandler;
2323
import everTale.everTale_be.domain.story.external.StoryApiClient;
24-
import everTale.everTale_be.global.apiPayload.exception.handler.UnAuthorizedHandler;
2524
import everTale.everTale_be.global.s3.S3Manager;
2625
import org.springframework.data.domain.Page;
2726
import org.springframework.data.domain.Pageable;
@@ -44,7 +43,7 @@ public class StoryService {
4443
private final StoryRepository storyRepository;
4544
private final StoryCharacterRepository storyCharacterRepository;
4645
private final PersonalityRepository personalityRepository;
47-
private final ProfileRepository profileRepository;
46+
private final ProfileService profileService;
4847
private final StoryApiClient storyApiClient;
4948
private final ProfileHelper profileHelper;
5049
private final S3Manager s3Manager;
@@ -342,14 +341,9 @@ public StoryCollectionResponseDto getStories(Long profileId, Pageable pageable)
342341
Profile profile = profileHelper.getAuthenticatedProfile();
343342

344343
if (profile.getProfileType()== ProfileType.CHILD) {
345-
if (!profile.getId().equals(profileId)) {
346-
throw new UnAuthorizedHandler(ErrorStatus.UNAUTHORIZED_PROFILE_ACCESS);
347-
}
344+
profileService.validateChildProfileAccess(profile, profileId);
348345
} else {
349-
boolean isMyChild = profileRepository.existsByUserIdAndId(profile.getId(), profileId);
350-
if (!isMyChild) {
351-
throw new UnAuthorizedHandler(ErrorStatus.UNAUTHORIZED_PROFILE_ACCESS);
352-
}
346+
profileService.validateParentProfileAccess(profile, profileId);
353347
}
354348

355349
Page<Story> stories = storyRepository.findByProfileId(profileId, pageable);

0 commit comments

Comments
 (0)