From 2dd4121782127771220b4d8c92e4398276066cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=86=90=EC=B0=BD=ED=98=84?= Date: Sun, 10 Jul 2022 23:28:48 +0900 Subject: [PATCH] add: MovieRegisterDTO --- .../movie/application/MovieController.java | 7 +++++-- .../request/MovieRegisterRequest.java | 20 +++++++++++++++++++ .../response/MovieListResponse.java | 8 ++++---- .../response/MovieTimeListResponse.java | 8 ++++---- .../response/MovieTitleResponse.java | 4 ++-- .../movie/service/MovieServiceImpl.java | 11 +++++++--- .../movie/service/MovieTimeServiceImpl.java | 6 +++--- .../dto/{MovieDto.java => MovieDTO.java} | 6 +++--- .../movie/service/dto/MovieRegisterDTO.java | 20 +++++++++++++++++++ .../{MovieTimeDto.java => MovieTimeDTO.java} | 6 +++--- .../service/interfaces/MovieService.java | 4 ++-- .../service/interfaces/MovieTimeService.java | 4 ++-- .../movie/service/MovieServiceImplTest.java | 17 ++++++++-------- .../service/MovieTimeServiceImplTest.java | 10 +++++----- 14 files changed, 89 insertions(+), 42 deletions(-) create mode 100644 server/src/main/java/com/ticketing/server/movie/application/request/MovieRegisterRequest.java rename server/src/main/java/com/ticketing/server/movie/service/dto/{MovieDto.java => MovieDTO.java} (70%) create mode 100644 server/src/main/java/com/ticketing/server/movie/service/dto/MovieRegisterDTO.java rename server/src/main/java/com/ticketing/server/movie/service/dto/{MovieTimeDto.java => MovieTimeDTO.java} (78%) diff --git a/server/src/main/java/com/ticketing/server/movie/application/MovieController.java b/server/src/main/java/com/ticketing/server/movie/application/MovieController.java index 84111c2..a395f71 100644 --- a/server/src/main/java/com/ticketing/server/movie/application/MovieController.java +++ b/server/src/main/java/com/ticketing/server/movie/application/MovieController.java @@ -1,9 +1,11 @@ package com.ticketing.server.movie.application; +import com.ticketing.server.movie.application.request.MovieRegisterRequest; import com.ticketing.server.movie.application.response.MovieListResponse; import com.ticketing.server.movie.service.interfaces.MovieService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import javax.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -11,6 +13,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.access.annotation.Secured; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -26,8 +29,8 @@ public class MovieController { @PostMapping() @ApiOperation(value = "영화 정보 등록") @Secured("ROLE_STAFF") - public ResponseEntity registerMovie() { - + public ResponseEntity registerMovie(@RequestBody @Valid MovieRegisterRequest request) { + return } @GetMapping() diff --git a/server/src/main/java/com/ticketing/server/movie/application/request/MovieRegisterRequest.java b/server/src/main/java/com/ticketing/server/movie/application/request/MovieRegisterRequest.java new file mode 100644 index 0000000..74c7c49 --- /dev/null +++ b/server/src/main/java/com/ticketing/server/movie/application/request/MovieRegisterRequest.java @@ -0,0 +1,20 @@ +package com.ticketing.server.movie.application.request; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class MovieRegisterRequest { + + @NotEmpty(message = "{validation.not.empty.title}") + private String title; + + @NotNull(message = "{validation.not.null.runningTime}") + private Long runningTime; + +} diff --git a/server/src/main/java/com/ticketing/server/movie/application/response/MovieListResponse.java b/server/src/main/java/com/ticketing/server/movie/application/response/MovieListResponse.java index 56d117a..66ebe28 100644 --- a/server/src/main/java/com/ticketing/server/movie/application/response/MovieListResponse.java +++ b/server/src/main/java/com/ticketing/server/movie/application/response/MovieListResponse.java @@ -1,6 +1,6 @@ package com.ticketing.server.movie.application.response; -import com.ticketing.server.movie.service.dto.MovieDto; +import com.ticketing.server.movie.service.dto.MovieDTO; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.AccessLevel; @@ -12,10 +12,10 @@ import lombok.Getter; public class MovieListResponse { @ApiModelProperty(value = "영화 제목") - private List movieDtos; + private List movieDTOS; - public static MovieListResponse from(List movieDtos) { - return new MovieListResponse(movieDtos); + public static MovieListResponse from(List movieDTOS) { + return new MovieListResponse(movieDTOS); } } diff --git a/server/src/main/java/com/ticketing/server/movie/application/response/MovieTimeListResponse.java b/server/src/main/java/com/ticketing/server/movie/application/response/MovieTimeListResponse.java index 7793c99..8ad01f1 100644 --- a/server/src/main/java/com/ticketing/server/movie/application/response/MovieTimeListResponse.java +++ b/server/src/main/java/com/ticketing/server/movie/application/response/MovieTimeListResponse.java @@ -1,6 +1,6 @@ package com.ticketing.server.movie.application.response; -import com.ticketing.server.movie.service.dto.MovieTimeDto; +import com.ticketing.server.movie.service.dto.MovieTimeDTO; import io.swagger.annotations.ApiModelProperty; import java.util.List; import lombok.AccessLevel; @@ -12,10 +12,10 @@ import lombok.Getter; public class MovieTimeListResponse { @ApiModelProperty(value = "영화 시간표 정보") - private List movieTimeDtos; + private List movieTimeDTOS; - public static MovieTimeListResponse from(List movieTimeDtos) { - return new MovieTimeListResponse(movieTimeDtos); + public static MovieTimeListResponse from(List movieTimeDTOS) { + return new MovieTimeListResponse(movieTimeDTOS); } } diff --git a/server/src/main/java/com/ticketing/server/movie/application/response/MovieTitleResponse.java b/server/src/main/java/com/ticketing/server/movie/application/response/MovieTitleResponse.java index dc1140b..aa056df 100644 --- a/server/src/main/java/com/ticketing/server/movie/application/response/MovieTitleResponse.java +++ b/server/src/main/java/com/ticketing/server/movie/application/response/MovieTitleResponse.java @@ -1,6 +1,6 @@ package com.ticketing.server.movie.application.response; -import com.ticketing.server.movie.service.dto.MovieDto; +import com.ticketing.server.movie.service.dto.MovieDTO; import io.swagger.annotations.ApiModelProperty; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -13,7 +13,7 @@ public class MovieTitleResponse { @ApiModelProperty(value = "영화 제목") private String title; - public static MovieTitleResponse from(MovieDto movieDto) { + public static MovieTitleResponse from(MovieDTO movieDto) { return new MovieTitleResponse(movieDto.getTitle()); } 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 9ec005d..6aae950 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 @@ -1,8 +1,9 @@ package com.ticketing.server.movie.service; +import com.ticketing.server.movie.application.request.MovieRegisterRequest; import com.ticketing.server.movie.domain.Movie; import com.ticketing.server.movie.domain.repository.MovieRepository; -import com.ticketing.server.movie.service.dto.MovieDto; +import com.ticketing.server.movie.service.dto.MovieDTO; import com.ticketing.server.movie.service.interfaces.MovieService; import java.util.List; import java.util.stream.Collectors; @@ -17,11 +18,15 @@ public class MovieServiceImpl implements MovieService { private final MovieRepository movieRepository; - public List getMovies() { + public Movie registerMovie(MovieRegisterRequest request) { + + } + + public List getMovies() { List movies = movieRepository.findValidMovies(); return movies.stream() - .map(MovieDto::from) + .map(MovieDTO::from) .collect(Collectors.toList()); } diff --git a/server/src/main/java/com/ticketing/server/movie/service/MovieTimeServiceImpl.java b/server/src/main/java/com/ticketing/server/movie/service/MovieTimeServiceImpl.java index 72d2752..79ea4b0 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/MovieTimeServiceImpl.java +++ b/server/src/main/java/com/ticketing/server/movie/service/MovieTimeServiceImpl.java @@ -5,7 +5,7 @@ import com.ticketing.server.movie.domain.Movie; import com.ticketing.server.movie.domain.MovieTime; import com.ticketing.server.movie.domain.repository.MovieRepository; import com.ticketing.server.movie.domain.repository.MovieTimeRepository; -import com.ticketing.server.movie.service.dto.MovieTimeDto; +import com.ticketing.server.movie.service.dto.MovieTimeDTO; import com.ticketing.server.movie.service.interfaces.MovieTimeService; import java.time.LocalDate; import java.time.LocalDateTime; @@ -25,7 +25,7 @@ public class MovieTimeServiceImpl implements MovieTimeService { private final MovieTimeRepository movieTimeRepository; @Override - public List getMovieTimes(String title, LocalDate runningDate) { + public List getMovieTimes(String title, LocalDate runningDate) { Movie movie = movieRepository.findByTitle(title) .orElseThrow(ErrorCode::throwMovieNotFound); @@ -35,7 +35,7 @@ public class MovieTimeServiceImpl implements MovieTimeService { List movieTimes = movieTimeRepository.findValidMovieTimes(movie, startOfDay, endOfDay); return movieTimes.stream() - .map(MovieTimeDto::from) + .map(MovieTimeDTO::from) .collect(Collectors.toList()); } diff --git a/server/src/main/java/com/ticketing/server/movie/service/dto/MovieDto.java b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieDTO.java similarity index 70% rename from server/src/main/java/com/ticketing/server/movie/service/dto/MovieDto.java rename to server/src/main/java/com/ticketing/server/movie/service/dto/MovieDTO.java index cdef848..546a5f4 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/dto/MovieDto.java +++ b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieDTO.java @@ -7,12 +7,12 @@ import lombok.Getter; @Getter @AllArgsConstructor(access = AccessLevel.PRIVATE) -public class MovieDto { +public class MovieDTO { private String title; - public static MovieDto from(Movie movie) { - return new MovieDto(movie.getTitle()); + public static MovieDTO from(Movie movie) { + return new MovieDTO(movie.getTitle()); } } diff --git a/server/src/main/java/com/ticketing/server/movie/service/dto/MovieRegisterDTO.java b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieRegisterDTO.java new file mode 100644 index 0000000..787d845 --- /dev/null +++ b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieRegisterDTO.java @@ -0,0 +1,20 @@ +package com.ticketing.server.movie.service.dto; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class MovieRegisterDTO { + + @NotEmpty(message = "{validation.not.empty.title}") + private String title; + + @NotNull(message = "{validation.not.null.runningTime}") + private Long runningTime; + +} diff --git a/server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDto.java b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDTO.java similarity index 78% rename from server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDto.java rename to server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDTO.java index e8832c4..e83b1c2 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDto.java +++ b/server/src/main/java/com/ticketing/server/movie/service/dto/MovieTimeDTO.java @@ -8,7 +8,7 @@ import lombok.Getter; @Getter @AllArgsConstructor(access = AccessLevel.PRIVATE) -public class MovieTimeDto { +public class MovieTimeDTO { private Long movieTimeId; @@ -20,8 +20,8 @@ public class MovieTimeDto { private LocalDateTime endAt; - public static MovieTimeDto from(MovieTime movieTime) { - return new MovieTimeDto(movieTime.getId(), movieTime.getTheater().getTheaterNumber(), + public static MovieTimeDTO from(MovieTime movieTime) { + return new MovieTimeDTO(movieTime.getId(), movieTime.getTheater().getTheaterNumber(), movieTime.getRound(), movieTime.getStartAt(), movieTime.getEndAt()); } 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 6294731..f3055d6 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,10 +1,10 @@ package com.ticketing.server.movie.service.interfaces; -import com.ticketing.server.movie.service.dto.MovieDto; +import com.ticketing.server.movie.service.dto.MovieDTO; import java.util.List; public interface MovieService { - List getMovies(); + List getMovies(); } diff --git a/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieTimeService.java b/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieTimeService.java index feea844..0e5edb7 100644 --- a/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieTimeService.java +++ b/server/src/main/java/com/ticketing/server/movie/service/interfaces/MovieTimeService.java @@ -1,11 +1,11 @@ package com.ticketing.server.movie.service.interfaces; -import com.ticketing.server.movie.service.dto.MovieTimeDto; +import com.ticketing.server.movie.service.dto.MovieTimeDTO; import java.time.LocalDate; import java.util.List; public interface MovieTimeService { - List getMovieTimes(String title, LocalDate runningDate); + List getMovieTimes(String title, LocalDate runningDate); } diff --git a/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java b/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java index 81158bd..3e0b210 100644 --- a/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java +++ b/server/src/test/java/com/ticketing/server/movie/service/MovieServiceImplTest.java @@ -5,11 +5,10 @@ import static org.mockito.Mockito.when; import com.ticketing.server.movie.domain.Movie; import com.ticketing.server.movie.domain.repository.MovieRepository; -import com.ticketing.server.movie.service.dto.MovieDto; +import com.ticketing.server.movie.service.dto.MovieDTO; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -21,9 +20,9 @@ import org.mockito.junit.jupiter.MockitoExtension; public class MovieServiceImplTest { Movie movie; - MovieDto movieDto; + MovieDTO movieDto; List movies = new ArrayList<>(); - List movieDtos = new ArrayList<>(); + List movieDTOS = new ArrayList<>(); @Mock MovieRepository movieRepository; @@ -39,10 +38,10 @@ public class MovieServiceImplTest { .thenReturn(Collections.emptyList()); // when - List movieDtoList = movieService.getMovies(); + List movieDTOList = movieService.getMovies(); // then - assertTrue(movieDtoList.isEmpty()); + assertTrue(movieDTOList.isEmpty()); } @Test @@ -52,16 +51,16 @@ public class MovieServiceImplTest { movie = new Movie("범죄도시2", 106L); movieDto = movieDto.from(movie); movies.add(movie); - movieDtos.add(movieDto); + movieDTOS.add(movieDto); when(movieRepository.findValidMovies()) .thenReturn(movies); // when - List movieDtoList = movieService.getMovies(); + List movieDTOList = movieService.getMovies(); // then - assertTrue(!movieDtoList.isEmpty()); + assertTrue(!movieDTOList.isEmpty()); } } diff --git a/server/src/test/java/com/ticketing/server/movie/service/MovieTimeServiceImplTest.java b/server/src/test/java/com/ticketing/server/movie/service/MovieTimeServiceImplTest.java index c6236e2..b2c269b 100644 --- a/server/src/test/java/com/ticketing/server/movie/service/MovieTimeServiceImplTest.java +++ b/server/src/test/java/com/ticketing/server/movie/service/MovieTimeServiceImplTest.java @@ -9,7 +9,7 @@ import com.ticketing.server.movie.domain.MovieTime; import com.ticketing.server.movie.domain.Theater; import com.ticketing.server.movie.domain.repository.MovieRepository; import com.ticketing.server.movie.domain.repository.MovieTimeRepository; -import com.ticketing.server.movie.service.dto.MovieTimeDto; +import com.ticketing.server.movie.service.dto.MovieTimeDTO; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; @@ -51,10 +51,10 @@ public class MovieTimeServiceImplTest { .thenReturn(Collections.emptyList()); // when - List movieTimeDtoList = movieTimeService.getMovieTimes(title, LocalDate.now()); + List movieTimeDTOList = movieTimeService.getMovieTimes(title, LocalDate.now()); // then - assertTrue(movieTimeDtoList.isEmpty()); + assertTrue(movieTimeDTOList.isEmpty()); } @Test @@ -76,10 +76,10 @@ public class MovieTimeServiceImplTest { .thenReturn(movieTimes); // when - List movieTimeDtoList = movieTimeService.getMovieTimes(title, LocalDate.of(2022, 07, 01)); + List movieTimeDTOList = movieTimeService.getMovieTimes(title, LocalDate.of(2022, 07, 01)); // then - assertTrue(!movieTimeDtoList.isEmpty()); + assertTrue(!movieTimeDTOList.isEmpty()); } }