add: MovieRegisterDTO
This commit is contained in:
@@ -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<MovieIdResponse> registerMovie() {
|
||||
|
||||
public ResponseEntity<MovieIdResponse> registerMovie(@RequestBody @Valid MovieRegisterRequest request) {
|
||||
return
|
||||
}
|
||||
|
||||
@GetMapping()
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<MovieDto> movieDtos;
|
||||
private List<MovieDTO> movieDTOS;
|
||||
|
||||
public static MovieListResponse from(List<MovieDto> movieDtos) {
|
||||
return new MovieListResponse(movieDtos);
|
||||
public static MovieListResponse from(List<MovieDTO> movieDTOS) {
|
||||
return new MovieListResponse(movieDTOS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<MovieTimeDto> movieTimeDtos;
|
||||
private List<MovieTimeDTO> movieTimeDTOS;
|
||||
|
||||
public static MovieTimeListResponse from(List<MovieTimeDto> movieTimeDtos) {
|
||||
return new MovieTimeListResponse(movieTimeDtos);
|
||||
public static MovieTimeListResponse from(List<MovieTimeDTO> movieTimeDTOS) {
|
||||
return new MovieTimeListResponse(movieTimeDTOS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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<MovieDto> getMovies() {
|
||||
public Movie registerMovie(MovieRegisterRequest request) {
|
||||
|
||||
}
|
||||
|
||||
public List<MovieDTO> getMovies() {
|
||||
List<Movie> movies = movieRepository.findValidMovies();
|
||||
|
||||
return movies.stream()
|
||||
.map(MovieDto::from)
|
||||
.map(MovieDTO::from)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
@@ -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<MovieTimeDto> getMovieTimes(String title, LocalDate runningDate) {
|
||||
public List<MovieTimeDTO> getMovieTimes(String title, LocalDate runningDate) {
|
||||
Movie movie = movieRepository.findByTitle(title)
|
||||
.orElseThrow(ErrorCode::throwMovieNotFound);
|
||||
|
||||
@@ -35,7 +35,7 @@ public class MovieTimeServiceImpl implements MovieTimeService {
|
||||
List<MovieTime> movieTimes = movieTimeRepository.findValidMovieTimes(movie, startOfDay, endOfDay);
|
||||
|
||||
return movieTimes.stream()
|
||||
.map(MovieTimeDto::from)
|
||||
.map(MovieTimeDTO::from)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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<MovieDto> getMovies();
|
||||
List<MovieDTO> getMovies();
|
||||
|
||||
}
|
||||
|
||||
@@ -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<MovieTimeDto> getMovieTimes(String title, LocalDate runningDate);
|
||||
List<MovieTimeDTO> getMovieTimes(String title, LocalDate runningDate);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Movie> movies = new ArrayList<>();
|
||||
List<MovieDto> movieDtos = new ArrayList<>();
|
||||
List<MovieDTO> movieDTOS = new ArrayList<>();
|
||||
|
||||
@Mock
|
||||
MovieRepository movieRepository;
|
||||
@@ -39,10 +38,10 @@ public class MovieServiceImplTest {
|
||||
.thenReturn(Collections.emptyList());
|
||||
|
||||
// when
|
||||
List<MovieDto> movieDtoList = movieService.getMovies();
|
||||
List<MovieDTO> 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<MovieDto> movieDtoList = movieService.getMovies();
|
||||
List<MovieDTO> movieDTOList = movieService.getMovies();
|
||||
|
||||
// then
|
||||
assertTrue(!movieDtoList.isEmpty());
|
||||
assertTrue(!movieDTOList.isEmpty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<MovieTimeDto> movieTimeDtoList = movieTimeService.getMovieTimes(title, LocalDate.now());
|
||||
List<MovieTimeDTO> 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<MovieTimeDto> movieTimeDtoList = movieTimeService.getMovieTimes(title, LocalDate.of(2022, 07, 01));
|
||||
List<MovieTimeDTO> movieTimeDTOList = movieTimeService.getMovieTimes(title, LocalDate.of(2022, 07, 01));
|
||||
|
||||
// then
|
||||
assertTrue(!movieTimeDtoList.isEmpty());
|
||||
assertTrue(!movieTimeDTOList.isEmpty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user