feat: delete movie API

This commit is contained in:
손창현
2022-07-14 03:37:46 +09:00
parent e74095932a
commit 9f2d053a8d
4 changed files with 12 additions and 2 deletions

View File

@@ -61,6 +61,7 @@ public class MovieController {
@DeleteMapping()
@ApiOperation(value = "영화 정보 삭제")
@Secured(STAFF)
public ResponseEntity<MovieDeleteResponse> deleteMovie(@RequestBody @Valid MovieDeleteRequest request) {
DeletedMovieDTO deletedMovieDto = movieService.deleteMovie(request.getId());

View File

@@ -1,5 +1,6 @@
package com.ticketing.server.movie.application.response;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -11,4 +12,6 @@ public class MovieDeleteResponse {
private final String title;
private final LocalDateTime deletedAt;
}

View File

@@ -11,6 +11,7 @@ import com.ticketing.server.movie.service.interfaces.MovieService;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -49,6 +50,7 @@ public class MovieServiceImpl implements MovieService {
}
@Override
@Transactional
public DeletedMovieDTO deleteMovie(Long id) {
Movie movie = movieRepository.findByIdAndDeletedAtNull(id)
.orElseThrow(ErrorCode::throwMovieNotFound);

View File

@@ -2,6 +2,7 @@ package com.ticketing.server.movie.service.dto;
import com.ticketing.server.movie.application.response.MovieDeleteResponse;
import com.ticketing.server.movie.domain.Movie;
import java.time.LocalDateTime;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -14,15 +15,18 @@ public class DeletedMovieDTO {
private final String title;
private final LocalDateTime deletedAt;
public DeletedMovieDTO(Movie movie) {
this(
movie.getId(),
movie.getTitle()
movie.getTitle(),
movie.getDeletedAt()
);
}
public MovieDeleteResponse toResponse() {
return new MovieDeleteResponse(id, title);
return new MovieDeleteResponse(id, title, deletedAt);
}
}