Completed
Push — master ( d15cf4...5163a0 )
by Valentyn
06:05
created

MovieSyncProcessor::getSubscribedTopics()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace App\Movies\Event;
4
5
use Doctrine\ORM\EntityManagerInterface;
6
use Interop\Queue\PsrMessage;
7
use Interop\Queue\PsrContext;
8
use Interop\Queue\PsrProcessor;
9
use Enqueue\Client\TopicSubscriberInterface;
10
use Psr\Log\LoggerInterface;
11
12
class MovieSyncProcessor implements PsrProcessor, TopicSubscriberInterface
13
{
14
    const ADD_MOVIES_TMDB = 'addMoviesTMDB';
15
    const UPDATE_MOVIES_TMDB = 'updateMoviesTMDB';
16
17
    private $em;
18
    private $logger;
19
20
    public function __construct(EntityManagerInterface $em, LoggerInterface $logger)
21
    {
22
        $this->em = $em;
23
        $this->logger = $logger;
24
    }
25
26
    public function process(PsrMessage $message, PsrContext $session)
27
    {
28
        $movies = $message->getBody();
29
        $movies = unserialize($movies);
30
        $moviesCount = 0;
31
32
        foreach ($movies as $movie) {
33
            $this->em->persist($movie);
34
            $moviesCount++;
35
        }
36
37
        $this->em->flush();
38
39
        $this->logger->debug("Successfully saved {$moviesCount} movies!\r\n");
40
        $this->logger->debug("Properties:\r\n", $message->getProperties());
41
42
        return self::ACK;
43
    }
44
45 1
    public static function getSubscribedTopics()
46
    {
47 1
        return [self::ADD_MOVIES_TMDB, self::UPDATE_MOVIES_TMDB];
48
    }
49
}