Completed
Push — master ( fca143...3e3269 )
by Valentyn
15:27
created

TmdbSyncService::getMoviesToSave()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 4
cts 4
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 1
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace App\Movies\Service;
5
6
use App\Movies\Entity\Movie;
7
use App\Movies\EventListener\MovieSyncProcessor;
8
use App\Movies\Repository\MovieRepository;
9
use Enqueue\Client\ProducerInterface;
10
11
class TmdbSyncService
12
{
13
    private $repository;
14
    private $producer;
15
16 7
    public function __construct(MovieRepository $repository, ProducerInterface $producer)
17
    {
18 7
        $this->repository = $repository;
19 7
        $this->producer = $producer;
20 7
    }
21
22
    /**
23
     * @param array|Movie[] $movies
24
     */
25 1
    public function syncMovies(array $movies): void
26
    {
27 1
        if (false === $this->isSupport(reset($movies))) {
28
            throw new \InvalidArgumentException('Unsupported array of movies provided');
29
        }
30
31 1
        $this->addMovies($movies);
32 1
    }
33
34 1
    private function addMovies(array $movies): void
35
    {
36 1
        $this->producer->sendEvent(MovieSyncProcessor::ADD_MOVIES_TMDB, serialize($movies));
37 1
    }
38
39 1
    private function isSupport($movie)
40
    {
41 1
        return $movie instanceof Movie;
42
    }
43
}