Completed
Pull Request — master (#384)
by Kristof
03:20
created

UDB2Projector::applyOrganizerImportedFromUDB2()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace CultuurNet\UDB3\MyOrganizers\ReadModel;
4
5
use Broadway\EventHandling\EventListenerInterface;
6
use CultuurNet\UDB3\Cdb\ActorItemFactory;
7
use CultuurNet\UDB3\Cdb\ItemBaseAdapterFactory;
8
use CultuurNet\UDB3\EventHandling\DelegateEventHandlingToSpecificMethodTrait;
9
use CultuurNet\UDB3\Organizer\Events\OrganizerImportedFromUDB2;
10
11
class UDB2Projector implements EventListenerInterface
12
{
13
    use DelegateEventHandlingToSpecificMethodTrait;
14
15
    /**
16
     * @var RepositoryInterface
17
     */
18
    private $repository;
19
20
    /**
21
     * @var ItemBaseAdapterFactory
22
     */
23
    protected $itemBaseAdapterFactory;
24
25
    /**
26
     * UDB2Projector constructor.
27
     *
28
     * @param RepositoryInterface $repository
29
     * @param ItemBaseAdapterFactory $itemBaseAdapterFactory
30
     */
31
    public function __construct(
32
        RepositoryInterface $repository,
33
        ItemBaseAdapterFactory $itemBaseAdapterFactory
34
    ) {
35
        $this->repository = $repository;
36
        $this->itemBaseAdapterFactory = $itemBaseAdapterFactory;
37
    }
38
39
    public function applyOrganizerImportedFromUDB2(
40
        OrganizerImportedFromUDB2 $organizerImportedFromUDB2
41
    ) {
42
        $udb2Actor = ActorItemFactory::createActorFromCdbXml(
43
            $organizerImportedFromUDB2->getCdbXmlNamespaceUri(),
44
            $organizerImportedFromUDB2->getCdbXml()
45
        );
46
47
        $udb2ActorAdapter = $this->itemBaseAdapterFactory->create($udb2Actor);
48
49
        $this->repository->add(
50
            $udb2Actor->getCdbId(),
51
            $udb2ActorAdapter->getResolvedCreatorUserId(),
52
            $udb2ActorAdapter->getCreationDateTime()
53
        );
54
    }
55
}
56