refactor: changed MovieTitleResponse -> MovieInfoResponse

This commit is contained in:
손창현
2022-07-14 01:46:39 +09:00
parent 1d1485c69a
commit a98e3609f2
6 changed files with 26 additions and 20 deletions

View File

@@ -1,8 +1,10 @@
package com.ticketing.server.movie.application; package com.ticketing.server.movie.application;
import static com.ticketing.server.user.domain.UserGrade.ROLES.STAFF;
import com.ticketing.server.movie.application.request.MovieRegisterRequest; import com.ticketing.server.movie.application.request.MovieRegisterRequest;
import com.ticketing.server.movie.application.response.MovieListResponse; import com.ticketing.server.movie.application.response.MovieListResponse;
import com.ticketing.server.movie.application.response.MovieTitleResponse; import com.ticketing.server.movie.application.response.MovieInfoResponse;
import com.ticketing.server.movie.service.interfaces.MovieService; import com.ticketing.server.movie.service.interfaces.MovieService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -29,12 +31,12 @@ public class MovieController {
@PostMapping() @PostMapping()
@ApiOperation(value = "영화 정보 등록") @ApiOperation(value = "영화 정보 등록")
@Secured("ROLE_STAFF") @Secured(STAFF)
public ResponseEntity<MovieTitleResponse> registerMovie(@RequestBody @Valid MovieRegisterRequest request) { public ResponseEntity<MovieInfoResponse> registerMovie(@RequestBody @Valid MovieRegisterRequest request) {
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK)
.body( .body(
MovieTitleResponse.from( MovieInfoResponse.from(
movieService.registerMovie(request.toMovieRegisterDTO()) movieService.registerMovie(request.getTitle(), request.getRunningTime())
) )
); );
} }

View File

@@ -8,13 +8,16 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE) @AllArgsConstructor(access = AccessLevel.PRIVATE)
public class MovieTitleResponse { public class MovieInfoResponse {
@ApiModelProperty(value = "영화 ID")
private Long movieId;
@ApiModelProperty(value = "영화 제목") @ApiModelProperty(value = "영화 제목")
private String title; private String title;
public static MovieTitleResponse from(MovieDTO movieDto) { public static MovieInfoResponse from(MovieDTO movieDto) {
return new MovieTitleResponse(movieDto.getTitle()); return new MovieInfoResponse(movieDto.getMovieId(), movieDto.getTitle());
} }
} }

View File

@@ -21,11 +21,15 @@ public class MovieServiceImpl implements MovieService {
private final MovieRepository movieRepository; private final MovieRepository movieRepository;
@Override @Override
public MovieDTO registerMovie(MovieRegisterDTO movieRegisterDto) { public MovieDTO registerMovie(String title, Long runningTime) {
Optional<Movie> movie = movieRepository.findByTitle(movieRegisterDto.getTitle()); Optional<Movie> movie = movieRepository.findValidMovieWithTitle(title);
if(movie.isEmpty()) { if(movie.isEmpty()) {
return MovieDTO.from(movieRepository.save(movieRegisterDto.toMovie())); Movie newMovie = movieRepository.save(
new Movie(title, runningTime)
);
return new MovieDTO(newMovie.getId(), newMovie.getTitle());
} }
throw ErrorCode.throwDuplicateMovie(); throw ErrorCode.throwDuplicateMovie();

View File

@@ -1,18 +1,14 @@
package com.ticketing.server.movie.service.dto; package com.ticketing.server.movie.service.dto;
import com.ticketing.server.movie.domain.Movie;
import lombok.AccessLevel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@Getter @Getter
@AllArgsConstructor(access = AccessLevel.PRIVATE) @AllArgsConstructor
public class MovieDTO { public class MovieDTO {
private Long movieId;
private String title; private String title;
public static MovieDTO from(Movie movie) {
return new MovieDTO(movie.getTitle());
}
} }

View File

@@ -1,13 +1,15 @@
package com.ticketing.server.movie.service.interfaces; package com.ticketing.server.movie.service.interfaces;
import com.ticketing.server.movie.domain.Movie;
import com.ticketing.server.movie.service.dto.MovieDTO; import com.ticketing.server.movie.service.dto.MovieDTO;
import com.ticketing.server.movie.service.dto.MovieRegisterDTO; import com.ticketing.server.movie.service.dto.MovieRegisterDTO;
import java.util.List; import java.util.List;
public interface MovieService { public interface MovieService {
MovieDTO registerMovie(MovieRegisterDTO movieRegisterDto); MovieDTO registerMovie(String title, Long runningTime);
List<MovieDTO> getMovies(); List<MovieDTO> getMovies();
Movie findValidMovieWithTitle(String title);
} }

View File

@@ -13,7 +13,6 @@ import com.ticketing.server.user.application.response.UserChangePasswordResponse
import com.ticketing.server.user.application.response.UserDeleteResponse; import com.ticketing.server.user.application.response.UserDeleteResponse;
import com.ticketing.server.user.application.response.UserDetailResponse; import com.ticketing.server.user.application.response.UserDetailResponse;
import com.ticketing.server.user.domain.ChangeGradeDTO; import com.ticketing.server.user.domain.ChangeGradeDTO;
import com.ticketing.server.user.domain.UserGrade;
import com.ticketing.server.user.service.dto.ChangedPasswordUserDTO; import com.ticketing.server.user.service.dto.ChangedPasswordUserDTO;
import com.ticketing.server.user.service.dto.DeletedUserDTO; import com.ticketing.server.user.service.dto.DeletedUserDTO;
import com.ticketing.server.user.service.dto.PaymentsDTO; import com.ticketing.server.user.service.dto.PaymentsDTO;