Skip to content

Commit 8d9cc52

Browse files
committed
fix: easterEggVoice 중복 생성 오류 해결
1 parent 5282d91 commit 8d9cc52

3 files changed

Lines changed: 8 additions & 0 deletions

File tree

src/main/java/everTale/everTale_be/domain/easterEgg/repository/EasterEggVoiceRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package everTale.everTale_be.domain.easterEgg.repository;
22

33
import everTale.everTale_be.domain.easterEgg.entity.EasterEggVoice;
4+
import everTale.everTale_be.domain.story.entity.Scene;
45
import everTale.everTale_be.domain.story.entity.Story;
56
import org.springframework.data.domain.Page;
67
import org.springframework.data.domain.Pageable;
@@ -16,6 +17,8 @@ public interface EasterEggVoiceRepository extends JpaRepository<EasterEggVoice,
1617

1718
Optional<EasterEggVoice> findByScene_Id(Long sceneId);
1819

20+
boolean existsByScene(Scene scene);
21+
1922
@Query(
2023
value = """
2124
SELECT DISTINCT s

src/main/java/everTale/everTale_be/domain/easterEgg/service/EasterEggVoiceService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import everTale.everTale_be.domain.story.entity.Story;
1717
import everTale.everTale_be.domain.story.repository.SceneRepository;
1818
import everTale.everTale_be.global.apiPayload.code.status.ErrorStatus;
19+
import everTale.everTale_be.global.apiPayload.exception.handler.BadRequestHandler;
1920
import everTale.everTale_be.global.apiPayload.exception.handler.NotFoundHandler;
2021
import everTale.everTale_be.global.s3.S3Manager;
2122
import lombok.RequiredArgsConstructor;
@@ -55,6 +56,9 @@ public YoloDetectionResponseDto getObjectFromImages(Long storyId){
5556
public void createEasterEggVoice(Long storyId, MultipartFile voiceFile, EasterEggVoiceRegisterRequestDto requestDto){
5657
Scene scene = sceneRepository.findByStoryIdAndPage(storyId, requestDto.getIndex())
5758
.orElseThrow(()-> new NotFoundHandler(ErrorStatus.SCENE_NOT_FOUND));
59+
if(easterEggVoiceRepository.existsByScene(scene)){
60+
throw new BadRequestHandler(ErrorStatus.EASTER_EGG_VOICE_ALREADY_EXISTS);
61+
}
5862
Story story = scene.getStory();
5963
Profile profile = story.getProfile();
6064

src/main/java/everTale/everTale_be/global/apiPayload/code/status/ErrorStatus.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public enum ErrorStatus implements BaseErrorCode {
6060
EASTER_EGG_LETTER_NOT_YET_AVAILABLE(HttpStatus.BAD_REQUEST,"EASTER_EGG401","이스터에그 편지를 열람할 수 없습니다."),
6161
EASTER_EGG_LETTER_ALREADY_EXISTS(HttpStatus.CONFLICT,"EASTER_EGG402","이스터에그 편지가 이미 존재합니다."),
6262
EASTER_EGG_VOICE_NOT_FOUND(HttpStatus.NOT_FOUND,"EASTER_EGG4002","이스터에그 음성을 찾을 수 없습니다."),
63+
EASTER_EGG_VOICE_ALREADY_EXISTS(HttpStatus.CONFLICT,"EASTER_EGG4022","이스터에그 음성이 이미 존재합니다."),
6364
OBJECT_NOT_DETECTED(HttpStatus.NOT_FOUND, "EASTER_EGG4003", "객체를 탐지할 수 없습니다."),
6465

6566
//Quiz 관련

0 commit comments

Comments
 (0)