|
4 | 4 | import everTale.everTale_be.domain.character.dto.CharacterDetailResponseDto; |
5 | 5 | import everTale.everTale_be.domain.character.entity.StoryCharacter; |
6 | 6 | import everTale.everTale_be.domain.character.repository.StoryCharacterRepository; |
| 7 | +import everTale.everTale_be.domain.profile.entity.Enum.ProfileType; |
| 8 | +import everTale.everTale_be.domain.profile.entity.Profile; |
| 9 | +import everTale.everTale_be.domain.profile.service.ProfileService; |
7 | 10 | import everTale.everTale_be.domain.profile.util.ProfileHelper; |
8 | 11 | import everTale.everTale_be.global.apiPayload.code.status.ErrorStatus; |
9 | 12 | import everTale.everTale_be.global.apiPayload.exception.handler.NotFoundHandler; |
|
19 | 22 | public class CharacterService { |
20 | 23 |
|
21 | 24 | private final ProfileHelper profileHelper; |
| 25 | + private final ProfileService profileService; |
22 | 26 | private final StoryCharacterRepository characterRepository; |
23 | 27 |
|
24 | 28 | // 주인공 모음집 조회 |
25 | | - public CharacterCollectionResponseDto getMyCharacters(Pageable pageable){ |
26 | | - Long profileId = profileHelper.getAuthenticatedProfileId(); |
| 29 | + public CharacterCollectionResponseDto getCharacters(Long profileId, Pageable pageable){ |
| 30 | + Profile profile = profileHelper.getAuthenticatedProfile(); |
| 31 | + |
| 32 | + if (profile.getProfileType() == ProfileType.CHILD) { |
| 33 | + profileService.validateChildProfileAccess(profile, profileId); |
| 34 | + } else { |
| 35 | + profileService.validateParentProfileAccess(profile, profileId); |
| 36 | + } |
| 37 | + |
27 | 38 | Page<StoryCharacter> characters = characterRepository.findByStoryProfileId(profileId, pageable); |
28 | 39 | return CharacterCollectionResponseDto.from(characters); |
29 | 40 | } |
|
0 commit comments