1 | <?php |
||
16 | class TmdbNormalizerService |
||
17 | { |
||
18 | private $movieManageService; |
||
19 | private $genreRepository; |
||
20 | private const IMAGE_HOST = 'https://image.tmdb.org/t/p/original'; |
||
21 | |||
22 | 13 | public function __construct(MovieManageService $movieManageService, GenreRepository $genreRepository) |
|
27 | |||
28 | /** |
||
29 | * @param array $movies |
||
30 | * @param string $locale |
||
31 | * |
||
32 | * @throws \ErrorException |
||
33 | * |
||
34 | * @return \Iterator |
||
35 | */ |
||
36 | 1 | public function normalizeMoviesToObjects(array $movies, string $locale = 'en'): \Iterator |
|
37 | { |
||
38 | 1 | foreach ($movies as $movie) { |
|
39 | 1 | $movieDTO = $this->createMovieDTO($movie); |
|
40 | 1 | $tmdb = $this->createMovieTmdbDTO($movie); |
|
41 | 1 | $locale = $this->getMovieLocale($movie, $locale); |
|
42 | |||
43 | 1 | $movieObject = $this->movieManageService->createMovieByDTO($movieDTO, $tmdb, [], [ |
|
44 | 1 | $this->createMovieTranslationDTO($locale, $movie), |
|
45 | ]); |
||
46 | |||
47 | 1 | $genresIds = $this->getGenresIds($movie); |
|
48 | 1 | $movieObject = $this->addGenres($movieObject, $genresIds); |
|
49 | |||
50 | 1 | yield $movieObject; |
|
51 | } |
||
52 | } |
||
53 | |||
54 | 2 | public function normalizeActorsToObjects(array $actors, string $locale = 'en'): \Iterator |
|
77 | |||
78 | /** |
||
79 | * @param array $movie |
||
80 | * |
||
81 | * @throws \Exception |
||
82 | * |
||
83 | * @return MovieDTO |
||
84 | */ |
||
85 | 1 | private function createMovieDTO(array $movie): MovieDTO |
|
96 | |||
97 | 1 | private function createMovieTmdbDTO(array $movie): MovieTMDB |
|
105 | |||
106 | 1 | private function createMovieTranslationDTO(string $locale, array $movie): MovieTranslationDTO |
|
110 | |||
111 | 1 | private function addGenres(Movie $movie, array $tmdbGenresIds): Movie |
|
120 | |||
121 | 1 | private function getGenresIds(array $movie): array |
|
131 | |||
132 | 1 | private function getMovieLocale(array $movie, string $defaultLocale) |
|
136 | } |
||
137 |