From 2093a168c9d656694fb636388eb25dee938f33f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=90=EC=B0=BD=ED=98=84?= Date: Thu, 14 Jul 2022 03:00:52 +0900 Subject: [PATCH] add: deleteMovie() in movieService --- .../com/ticketing/server/global/exception/ErrorCode.java | 2 +- .../server/movie/domain/repository/MovieRepository.java | 2 ++ .../com/ticketing/server/movie/service/MovieServiceImpl.java | 5 +++++ .../server/movie/service/interfaces/MovieService.java | 3 +++ 4 files changed, 11 insertions(+), 1 deletion(-) 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); }