diff --git a/server/src/main/java/com/ticketing/server/global/exception/ErrorCode.java b/server/src/main/java/com/ticketing/server/global/exception/ErrorCode.java index 35b150a..ca5ccec 100644 --- a/server/src/main/java/com/ticketing/server/global/exception/ErrorCode.java +++ b/server/src/main/java/com/ticketing/server/global/exception/ErrorCode.java @@ -98,7 +98,7 @@ public enum ErrorCode { public static TicketingException throwDeletedEmail() { throw new TicketingException(DELETED_EMAIL); } - + public static TicketingException throwDeletedMovie() { throw new TicketingException(DELETED_MOVIE); } diff --git a/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java b/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java index 7c37ec6..5ae124b 100644 --- a/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java +++ b/server/src/main/java/com/ticketing/server/movie/domain/repository/MovieRepository.java @@ -13,6 +13,8 @@ public interface MovieRepository extends JpaRepository { Optional findByTitle(String title); + Optional findByIdAndDeletedAtNull(Long id); + @Query(value = "SELECT m " + "FROM movie m " + "WHERE title = :title " diff --git a/server/src/main/java/com/ticketing/server/movie/service/MovieServiceImpl.java b/server/src/main/java/com/ticketing/server/movie/service/MovieServiceImpl.java index 596be6e..0778c5f 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/MovieServiceImpl.java +++ b/server/src/main/java/com/ticketing/server/movie/service/MovieServiceImpl.java @@ -47,6 +47,11 @@ public class MovieServiceImpl implements MovieService { @Override public DeletedMovieDTO deleteMovie(Long id) { + Movie movie = movieRepository.findByIdAndDeletedAtNull(id) + .orElseThrow(ErrorCode::throwMovieNotFound); + Movie deletedMovie = movie.delete(); + + return new DeletedMovieDTO(deletedMovie); } } diff --git a/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieService.java b/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieService.java index 718210f..6248248 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieService.java +++ b/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieService.java @@ -1,5 +1,6 @@ package com.ticketing.server.movie.service.interfaces; +import com.ticketing.server.movie.service.dto.DeletedMovieDTO; import com.ticketing.server.movie.service.dto.MovieDTO; import com.ticketing.server.movie.service.dto.RegisteredMovieDTO; import java.util.List; @@ -9,4 +10,6 @@ public interface MovieService { RegisteredMovieDTO registerMovie(String title, Long runningTime); List getMovies(); + + DeletedMovieDTO deleteMovie(Long id); }