Completed
Push — master ( 3bba11...039fa3 )
by Kristof
10s
created

HistoryProjector   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 8

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 8
dl 0
loc 79
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
B applyEventImportedFromUDB2() 0 30 1
A applyEventUpdatedFromUDB2() 0 12 1
A getLabelAddedClassName() 0 4 1
A getLabelRemovedClassName() 0 4 1
A getTitleTranslatedClassName() 0 4 1
A getDescriptionTranslatedClassName() 0 4 1
1
<?php
2
3
namespace CultuurNet\UDB3\Event\ReadModel\History;
4
5
use Broadway\Domain\DomainMessage;
6
use Broadway\EventHandling\EventListenerInterface;
7
use CultuurNet\UDB3\Cdb\EventItemFactory;
8
use CultuurNet\UDB3\Event\Events\DescriptionTranslated;
9
use CultuurNet\UDB3\Event\Events\EventImportedFromUDB2;
10
use CultuurNet\UDB3\Event\Events\EventUpdatedFromUDB2;
11
use CultuurNet\UDB3\Event\Events\LabelAdded;
12
use CultuurNet\UDB3\Event\Events\LabelRemoved;
13
use CultuurNet\UDB3\Event\Events\TitleTranslated;
14
use CultuurNet\UDB3\Offer\ReadModel\History\OfferHistoryProjector;
15
use ValueObjects\String\String;
16
17
class HistoryProjector extends OfferHistoryProjector implements EventListenerInterface
18
{
19
20
    protected function applyEventImportedFromUDB2(
21
        EventImportedFromUDB2 $eventImportedFromUDB2,
22
        DomainMessage $domainMessage
23
    ) {
24
        $udb2Event = EventItemFactory::createEventFromCdbXml(
25
            $eventImportedFromUDB2->getCdbXmlNamespaceUri(),
26
            $eventImportedFromUDB2->getCdbXml()
27
        );
28
29
        $this->writeHistory(
30
            $eventImportedFromUDB2->getEventId(),
31
            new Log(
32
                $this->dateFromUdb2DateString(
33
                    $udb2Event->getCreationDate()
34
                ),
35
                new String('Aangemaakt in UDB2'),
36
                new String($udb2Event->getCreatedBy())
37
            )
38
        );
39
40
        $this->writeHistory(
41
            $eventImportedFromUDB2->getEventId(),
42
            new Log(
43
                $this->domainMessageDateToNativeDate(
44
                    $domainMessage->getRecordedOn()
45
                ),
46
                new String('Geïmporteerd vanuit UDB2')
47
            )
48
        );
49
    }
50
51
    protected function applyEventUpdatedFromUDB2(
52
        EventUpdatedFromUDB2 $eventUpdatedFromUDB2,
53
        DomainMessage $domainMessage
54
    ) {
55
        $this->writeHistory(
56
            $eventUpdatedFromUDB2->getEventId(),
57
            new Log(
58
                $this->domainMessageDateToNativeDate($domainMessage->getRecordedOn()),
59
                new String('Geüpdatet vanuit UDB2')
60
            )
61
        );
62
    }
63
64
    /**
65
     * @return string
66
     */
67
    protected function getLabelAddedClassName()
68
    {
69
        return LabelAdded::class;
70
    }
71
72
    /**
73
     * @return string
74
     */
75
    protected function getLabelRemovedClassName()
76
    {
77
        return LabelRemoved::class;
78
    }
79
80
    /**
81
     * @return string
82
     */
83
    protected function getTitleTranslatedClassName()
84
    {
85
        return TitleTranslated::class;
86
    }
87
88
    /**
89
     * @return string
90
     */
91
    protected function getDescriptionTranslatedClassName()
92
    {
93
        return DescriptionTranslated::class;
94
    }
95
}
96